1. Вступ

Цей документ описує, як зібрати програмне забезпечення LinuxCNC з вихідного коду. Це в першу чергу корисно, якщо ви є розробником, який модифікує LinuxCNC. Він також може бути корисним, якщо ви є користувачем, який тестує гілки розробників, хоча в цьому випадку у вас також є можливість просто встановити пакети Debian з buildbot (http://buildbot.linuxcnc.org) або як звичайний пакет з вашого дистрибутива Linux (https://tracker.debian.org/pkg/linuxcnc). Звісно, цей розділ також існує, оскільки LinuxCNC є результатом зусиль спільноти. Ми заохочуємо вас долучатися до розробки LinuxCNC. Зазвичай ви хочете самостійно скомпілювати LinuxCNC для негайного функціонального доступу

  • до нової розробки LinuxCNC або

  • нова розробка, яку ви, можливо, хочете зробити для LinuxCNC або допомогти іншим її завершити.

Наприклад, ви можете переносити LinuxCNC на якийсь новий дистрибутив Linux або, що є досить поширеним, розробник реагує на ваше повідомлення про проблему, виправлення якої ви хочете протестувати. У будь-якому з цих випадків buildbot не зможе допомогти, або допомога буде затримана, оскільки потрібно чекати на перевірку кимось іншим, а ви не хочете чекати, або ви є єдиною іншою особою, яка має конкретне обладнання для тестування коду.

Окрім програм, що керують вашою машиною та зібрані з дерева вихідного коду, ви також можете створювати ті ж PDF- та/або HTML-файли, з якими ви, ймовірно, зустрічалися в Інтернеті. https://linuxcnc.org/documents/.

Якщо ви хочете зробити свій внесок у LinuxCNC, але не знаєте, з чого почати, серйозно розгляньте можливість участі в розробці документації. Кожен завжди знайде щось, що можна поліпшити — і якщо ви залишите в тексті лише «FIXME: з коментарем» як посилання для себе та інших, щоб повернутися до цього розділу пізніше. Також переклади на інші мови, крім англійської, дуже ймовірно, виграють від вашої уважності на https://hosted.weblate.org/projects/linuxcnc/ .

2. Завантаження дерева вихідних кодів

Репозиторій git проекту LinuxCNC знаходиться за адресою https://github.com/LinuxCNC/linuxcnc. GitHub — це популярний сервіс хостингу git та веб-сайт для обміну кодом.

Щоб отримати дерево вихідних кодів, у вас є два варіанти:

Завантажити тар-архів

На сторінці проекту LinuxCNC в GitHub знайдіть посилання на «релізи» або «теги», натисніть на гіперпосилання на сторінку архіву та завантажте останній файл .tar. Ви побачите, що цей файл стиснутий у форматі .tar.xz або .tar.gz. Цей файл, який зазвичай називають «tarball», є архівом, дуже схожим на .zip. Ваш робочий стіл Linux знатиме, як обробляти цей файл, коли ви двічі клацнете по ньому.

Підготуйте локальну копію репозиторію LinuxCNC

Спочатку вам слід встановити інструмент "git" на ваш комп’ютер, якщо він ще недоступний (sudo apt install git). Потім підготуйте локальний екземпляр дерева вихідних кодів наступним чином: .

$ git clone https://github.com/LinuxCNC/linuxcnc.git linuxcnc-source-dir

. Перший аргумент команди git видає це: Це називається «клоном» репозиторію LinuxCNC. Перевага полягає в тому, що цей локальний клон підтримує обмін інформацією про зміни, які ви можете вирішити виконати в дереві джерел.

GitHub є самостійною інфраструктурою, про яку докладно розповідається в інших джерелах. Якщо ви ще не знаєте про це, то для мотивації скажімо, що GitHub пропонує виконати для вас клонування і зробити цей екземпляр загальнодоступним. GitHub називає такий додатковий екземпляр іншого репозиторію «форком». Ви можете легко (і безкоштовно) створити форк репозиторію LinuxCNC git на GitHub і використовувати його для відстеження та публікації своїх змін. Після створення власного форку LinuxCNC на GitHub клонуйте його на свою машину для розробки і продовжуйте хакерську діяльність, як зазвичай.

Ми, учасники проекту LinuxCNC, сподіваємося, що ви поділитеся з нами своїми змінами, щоб спільнота могла скористатися результатами вашої роботи. GitHub значно спрощує цей процес: після того, як ви доопрацюєте свої зміни та завантажите їх у свій форк на GitHub, надішліть нам запит на витяг (Pull Request).

2.1. Швидкий старт

Для нетерплячих спробуйте ось це:

$ git clone https://github.com/LinuxCNC/linuxcnc.git linuxcnc-source-dir
$ cd linuxcnc-source-dir/src
$ ./autogen.sh
$ ./configure --with-realtime=uspace
$ make

Це, ймовірно, не вдасться! Це не робить вас поганою людиною, це просто означає, що вам слід прочитати весь цей документ, щоб дізнатися, як вирішити свої проблеми. Особливо розділ «Задоволення залежностей збірки, задоволення залежностей збірки».

Якщо ви працюєте на системі з підтримкою реального часу (наприклад, інсталяція з образу LinuxCNC Live/Install, див. розділ Realtime нижче), на даний момент потрібен один додатковий крок збірки:

$ sudo make setuid

Після успішної збірки LinuxCNC настав час запустити тести:

$ source ../scripts/rip-environment
$ runtests

Це також може не вийти! Прочитайте весь цей документ, особливо розділ Налаштування тестового середовища.

3. Підтримувані платформи

Проект LinuxCNC орієнтований на сучасні дистрибутиви на базі Debian, включаючи Debian, Ubuntu та Mint. Ми постійно тестуємо на платформах, перелічених за посиланням http://buildbot.linuxcnc.org.

LinuxCNC базується на більшості інших дистрибутивів Linux, хоча управління залежностями буде більш ручним і менш автоматичним. Патчі для покращення переносимості на нові платформи завжди вітаються.

3.1. У режимі реального часу

LinuxCNC — це контролер верстатів, який для роботи потребує платформи реального часу. Ця версія LinuxCNC підтримує наступні платформи. Перші три з переліку — це операційні системи реального часу:

RTAI

З https://www.rtai.org. Ядро Linux з патчем RTAI доступне в архіві Debian за адресою https://linuxcnc.org. Інструкції з інсталяції див. у Getting LinuxCNC.

Xenomai

З https://xenomai.org. Вам доведеться самостійно скомпілювати або отримати ядро Xenomai.

'Preempt-RT

З https://rt.wiki.kernel.org. Ядро Linux з патчем Preempt-RT іноді доступне з архіву Debian за адресою https://www.debian.org та з машини Wayback за адресою https://snapshot.debian.org.

Не в реальному часі

LinuxCNC також можна створити та запустити на платформах, що не працюють у режимі реального часу, таких як звичайна інсталяція Debian або Ubuntu без спеціального ядра реального часу.
У цьому режимі LinuxCNC не підходить для керування верстатами, але є корисним для моделювання виконання G-коду та тестування частин системи, що не працюють у режимі реального часу (таких як інтерфейси користувача та деякі типи компонентів і драйверів пристроїв).
Щоб скористатися можливостями LinuxCNC в режимі реального часу, певні частини LinuxCNC повинні працювати з правами суперкористувача. Щоб увімкнути права суперкористувача для цих частин, виконайте цю додаткову команду після команди make, яка збирає LinuxCNC:

$ sudo make setuid

4. Режими збірки

Існує два способи зібрати LinuxCNC: зручний для розробників режим "запуску на місці" та зручний для користувача режим пакування Debian.

4.1. Будівництво для запуску на місці

У збірці Run-In-Place програми LinuxCNC компілюються з вихідного коду, а потім запускаються безпосередньо з каталогу збірки. Нічого не встановлюється за межами каталогу збірки. Це швидко і просто, а також підходить для швидкої ітерації змін. Набір тестів LinuxCNC працює тільки в збірці Run-In-Place. Більшість розробників LinuxCNC в основному використовують цей режим для збірки.

Збірка для Run-In-Place виконує кроки, описані в розділі Швидкий старт на початку цього документа, можливо, з різними аргументами для src/configure та make.

4.1.1. Аргументи src/configure

Скрипт src/configure налаштовує спосіб компіляції вихідного коду. Він приймає багато необов’язкових аргументів. Перерахуйте всі аргументи src/configure, виконавши наступне:

$ cd linuxcnc-source-dir/src
$ ./configure --help

Найчастіше використовуються такі аргументи:

'--with-realtime=uspace

Створюйте для будь-якої платформи реального часу або для нереального часу. Отримані виконувані файли LinuxCNC будуть працювати як на ядрі Linux з патчами Preempt-RT (забезпечуючи управління машиною в реальному часі), так і на звичайному (без патчів) ядрі Linux (забезпечуючи симуляцію G-коду, але без управління машиною в реальному часі).

Якщо встановлено файли розробки для Xenomai (зазвичай з пакета libxenomai-dev) або RTAI (зазвичай з пакета з назвою, що починається з «rtai-modules»), також буде ввімкнено підтримку цих ядра реального часу.
'--with-realtime=/usr/realtime-$VERSION

Створіть для платформи RTAI реального часу, використовуючи стару модель «ядра реального часу». Для цього необхідно, щоб ядро RTAI та модулі RTAI були встановлені в /usr/realtime-$VERSION. Отримані виконувані файли LinuxCNC будуть працювати тільки на вказаному ядрі RTAI. Починаючи з LinuxCNC 2.7, це забезпечує найкращу продуктивність у реальному часі.

'--enable-build-documentation

Створіть документацію, крім виконуваних файлів. Цей параметр значно збільшує час, необхідний для компіляції, оскільки створення документації є досить трудомістким процесом. Якщо ви не працюєте над документацією, ви можете пропустити цей параметр.

'--disable-build-documentation-translation

Вимкніть створення перекладеної документації для всіх доступних мов. Створення перекладеної документації займає дуже багато часу, тому рекомендується пропустити цей крок, якщо він не є дійсно необхідним.

4.1.2. make аргументи

Команда make приймає два корисних необов’язкових аргументи.

Паралельна компіляція

make приймає опціональний аргумент -j N (де N — число). Це дозволяє виконувати паралельну компіляцію з N одночасними процесами, що може значно прискорити процес побудови.

Корисним значенням для N є кількість процесорів у вашій системі збірки.

Ви можете дізнатися кількість процесорів, запустивши nproc.

Побудова лише конкретної цілі

Якщо ви хочете створити лише певну частину LinuxCNC, ви можете вказати назву того, що ви хочете створити, у командному рядку make. Наприклад, якщо ви працюєте над компонентом під назвою froboz, ви можете створити його виконуваний файл, виконавши:

$ cd linuxcnc-source-dir/src
$ make ../bin/froboz

4.2. Збірка пакетів Debian

При створенні пакетів Debian програми LinuxCNC компілюються з вихідного коду, а потім зберігаються в пакеті Debian разом з інформацією про залежності. Цей процес за замовчуванням також включає створення документації, що займає багато часу через великий обсяг вводу-виводу для багатьох мов, але це можна пропустити. Потім LinuxCNC встановлюється як частина цих пакетів на тих самих машинах або на будь-якій машині з тією ж архітектурою, на яку копіюються файли .deb. LinuxCNC не можна запустити, поки пакети Debian не будуть встановлені на цільовій машині, а потім виконувані файли не стануть доступними в /usr/bin і /usr/lib, як і інше звичайне програмне забезпечення системи.

Цей режим компіляції в першу чергу корисний при пакуванні програмного забезпечення для доставки кінцевим користувачам, а також при компіляції програмного забезпечення для машини, на якій не встановлено середовище компіляції або яка не має доступу до Інтернету.

Для нетерплячих спробуйте ось це:

$ sudo apt-get install build-essential
$ git clone https://github.com/LinuxCNC/linuxcnc.git linuxcnc-source-dir
$ cd linuxcnc-source-dir/src
$ ./debian/configure
$ sudo apt-get build-dep .
$ DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -uc -B

Збірка пакетів Debian виконується за допомогою інструменту dpkg-buildpackage, що постачається з пакетом dpkg-dev. Його виконання має ряд передумов, детально описаних нижче: * має бути встановлена загальна інфраструктура збірки, тобто компілятори тощо. * Потрібно встановити залежності часу збірки, тобто файли заголовків для зовнішніх бібліотек коду, що використовуються, як описано в розділі Задоволення залежностей збірки. * Файл у папці debian має бути повним і описувати пакет

Інструменти для збірки зібрані у віртуальний пакет під назвою build-essential. Щоб його встановити, виконайте:

$ sudo apt-get install build-essential

Після виконання цих передумов збирання пакетів Debian складається з двох кроків.

Першим кроком є генерація скриптів та метаданих пакета Debian з репозиторію git, виконавши наступну команду:

$ cd linuxcnc-dev
$ ./debian/configure
Note

Скрипт debian/configure відрізняється від скрипта src/configure!

debian/configure приймає аргументи залежно від платформи, на якій ви будуєте/для якої ви будуєте, див. розділ аргументи debian/configure. За замовчуванням LinuxCNC працює в просторі користувача ("uspace"), очікуючи, що ядро preempt_rt мінімізує затримки.

Після налаштування скриптів та метаданих пакета Debian, зберіть пакет, виконавши команду dpkg-buildpackage:

$ dpkg-buildpackage -b -uc'
Note

dpkg-buildpackage потрібно запускати з кореневого каталогу дерева джерел, який ви, можливо, назвали linuxcnc-source-dir, а не з каталогу linuxcnc-source-dir/debian.
dpkg-buildpackage приймає опціональний аргумент ``-j``N (де N — число). Це дозволяє виконувати кілька завдань одночасно.

4.2.1. Аргументи debian/configure в LinuxCNC

Дерево джерел LinuxCNC має каталог debian з усією інформацією про те, як слід будувати пакет Debian, але деякі ключові файли в ньому поширюються лише як шаблони. Скрипт debian/configure готує ці інструкції з побудови для звичайних утиліт пакування Debian і тому повинен бути запущений перед dpkg-checkbuilddeps або dpkg-buildpackage.

Скрипт debian/configure приймає один аргумент, який вказує на базову платформу реального часу або нереального часу для збірки. Звичайні значення для цього аргументу:

no-docs

Пропустити будівельну документацію.

uspace

Налаштуйте пакет Debian для роботи в режимі реального часу Preempt-RT або для роботи не в режимі реального часу (ці два варіанти сумісні).

noauto
rtai
‘xenomai`’

Зазвичай списки RTOS для підтримки uspace realtime виявляються автоматично. Однак, якщо ви бажаєте, ви можете вказати один або декілька з них після uspace, щоб увімкнути підтримку цих RTOS. Або, щоб вимкнути автоматичне виявлення, вкажіть noauto.

Якщо вам потрібен лише традиційний RTAI "модуль ядра" в режимі реального часу, використовуйте замість цього -r або $KERNEL_VERSION.

rtai=<package name>

Якщо пакет розробки для RTAI, lxrt, не починається з "rtai-modules", або якщо перший такий пакет, що відображається в списку apt-cache, не є потрібним, тоді явно вкажіть назву пакета.

-r

Налаштуйте пакет Debian для поточного запущеного ядра RTAI. Щоб це працювало, на вашому комп’ютері для збірки має бути запущено ядро RTAI!

$KERNEL_VERSION

Налаштуйте пакет Debian для вказаної версії ядра RTAI (наприклад, «3.4.9-rtai-686-pae»). На вашій машині для компіляції повинен бути встановлений відповідний пакет Debian із заголовками ядра, наприклад «linux-headers-3.4.9-rtai-686-pae». Зверніть увагу, що ви можете скомпілювати LinuxCNC у цій конфігурації, але якщо ви не використовуєте відповідне ядро RTAI, ви не зможете запустити LinuxCNC, включаючи набір тестів.

4.2.2. Задоволення залежностей збірки

На платформах на базі Debian ми надаємо метадані пакетів, які знають, які зовнішні програмні пакети потрібно встановити для побудови LinuxCNC. Вони називаються залежностями побудови LinuxCNC, тобто тими пакетами, які повинні бути доступними, щоб

  • збірка успішна, і

  • конструкцію можна зібрати відтворювано.

Ви можете використовувати ці метадані, щоб легко скласти список необхідних пакетів, яких бракує у вашій системі збірки. Спочатку перейдіть до дерева джерел LinuxCNC і запустіть його стандартну самоконфігурацію, якщо це ще не зроблено:

$ cd linuxcnc-dev
$ ./debian/configure

Це підготує файл debian/control, який містить списки пакетів Debian, що будуть створені, з залежностями виконання для цих пакетів, а також, для наших цілей, залежностями побудови для цих пакетів, що будуть створені.

Найпростіший спосіб встановити всі залежності збірки – це просто виконати (з того ж каталогу):

sudo apt-get build-dep .

що встановить усі необхідні залежності, які ще не встановлені, але доступні. Символ «.» є частиною командного рядка, тобто інструкцією для отримання залежностей для даного дерева джерел, а не для залежностей іншого пакета. На цьому встановлення залежностей для побудови завершено.

У решті цього розділу описано напівручний підхід. Список залежностей у debian/control є довгим, і порівнювати поточний стан вже встановлених пакетів з ним є нудним заняттям. Системи Debian надають програму під назвою dpkg-checkbuilddeps, яка аналізує метадані пакета і порівнює пакети, вказані як залежності для побудови, зі списком встановлених пакетів, і повідомляє вам, чого бракує.

Спочатку встановіть програму dpkg-checkbuilddeps, виконавши команду:

$ sudo apt-get install dpkg-dev

Це створює файл debian/control у форматі yaml, який можна читати користувачем і який містить список залежностей збірки у верхній частині. Ви можете використовувати ці метадані, щоб легко перелічити необхідні пакети, яких бракує у вашій системі збірки. Ви можете вирішити перевірити ці файли вручну, якщо добре розумієте, що вже встановлено.

Крім того, системи Debian надають програму під назвою dpkg-checkbuilddeps, яка аналізує метадані пакета і порівнює пакети, вказані як залежності для побудови, зі списком встановлених пакетів, і повідомляє вам, чого не вистачає. Також dpkg-buildpackage повідомить вас про те, чого не вистачає, і це повинно бути достатньо. Однак вона повідомляє про відсутні залежності для побудови лише після автоматичного застосування патчів у каталозі debian/patches (якщо такі є). Якщо ви новачок у Linux та управлінні версіями git, для уникнення ускладнень краще почати з чистого аркуша.

Програму dpkg-checkbuilddeps (також з пакета dpkg-dev, який встановлюється як частина залежностей build-essential) можна попросити виконати свою роботу (зверніть увагу, що її потрібно запускати з каталогу linuxcnc-source-dir, а не з linuxcnc-source-dir/debian):

$ dpkg-checkbuilddeps

Він видасть список пакетів, необхідних для збірки LinuxCNC на вашій системі, але ще не встановлених. Тепер ви можете встановити відсутні залежності збірки

вручну

Встановіть їх усі за допомогою команди sudo apt-get install, а потім вкажіть назви пакетів. Ви можете запустити dpkg-checkbuilddeps у будь-який час, щоб переглянути список відсутніх пакетів, що не вплине на дерево вихідного коду.

автоматизований

Виконайте команду sudo apt build-dep.

Якщо ви сумніваєтеся щодо того, що може надавати певний пакет build-dep, перегляньте опис пакета за допомогою ``apt-cache show`` packagename.

4.2.3. Параметри для dpkg-buildpackage

Для створення типового пакета Debian потрібно запустити dpkg-buildpackage без будь-яких аргументів. Як зазначено вище, до команди передаються дві додаткові опції. Як і для всіх хороших інструментів Linux, на сторінці man містяться всі деталі за допомогою команди man dpkg-buildpackage.

-uc

Не підписуйте цифровим підписом отримані бінарні файли. Ви можете підписати свої пакети своїм ключем GPG, тільки якщо хочете розповсюджувати їх серед інших. Якщо ця опція не встановлена і ви не підписуєте пакет, це не вплине на файл .deb.

-b

Компілює тільки пакети, що залежать від архітектури (такі як бінарні файли linuxcnc та графічні інтерфейси). Це дуже корисно, щоб уникнути компіляції того, що не залежить від апаратного забезпечення. Для LinuxCNC це документація, яка в будь-якому випадку доступна в Інтернеті.

Якщо у вас виникнуть труднощі під час компіляції, перегляньте онлайн-форум LinuxCNC.

Наразі з’являється підтримка змінної середовища DEB_BUILD_OPTIONS. Встановіть її на

nodocs

Щоб пропустити збірку документації, бажано використовувати прапорець -B для dpkg-buildpackage.

nocheck

щоб пропустити самотестування процесу побудови LinuxCNC. Це економить час і зменшує потребу в декількох програмних пакетах, які можуть бути недоступними для вашої системи, зокрема xvfb. Не слід встановлювати цю опцію, щоб отримати додаткову впевненість у тому, що ваша побудова працюватиме як очікується, якщо ви не стикаєтеся з суто технічними труднощами, пов’язаними із залежностями програмного забезпечення, що використовується для тестування.

Змінну середовища можна встановити разом із виконанням команди, наприклад.

DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -uc -B

поєднав би всі варіанти, представлені в цьому розділі.

4.2.4. Встановлення самостійно зібраних пакетів Debian

Пакет Debian можна впізнати за розширенням .deb. Інструмент для його встановлення, dpkg, є частиною кожної інсталяції Debian. Файли .deb, створені за допомогою dpkg-buildpackage, знаходяться в каталозі над linuxcnc-source-dir, тобто в ... Щоб побачити, які файли містяться в пакеті, запустіть

dpkg -c ../linuxcnc-uspace*.deb

Версія LinuxCNC буде частиною імені файлу, яке повинно відповідати зірочці. Можливо, на екрані не вміститься весь список файлів. Якщо ви не можете прокрутити екран термінала вгору, додайте до команди | more, щоб її вихідні дані були передані через так званий «пейджер». Вийдіть з програми за допомогою «q».

Щоб встановити пакети, запустіть

sudo dpkg -i ../linuxcnc*.deb

5. Налаштування середовища

У цьому розділі описано спеціальні кроки, необхідні для налаштування машини для запуску програм LinuxCNC, включаючи тести.

5.1. Збільште ліміт заблокованої пам’яті

LinuxCNC намагається поліпшити свою затримку в реальному часі, блокуючи пам’ять, яку він використовує, в оперативній пам’яті. Це робиться для того, щоб запобігти переміщенню LinuxCNC на диск операційною системою, що негативно вплинуло б на затримку. Зазвичай блокування пам’яті в оперативній пам’яті не схвалюється, і операційна система встановлює суворі обмеження на обсяг пам’яті, який користувач може заблокувати.

При використанні платформи реального часу Preempt-RT LinuxCNC працює з достатніми правами, щоб самостійно підвищити обмеження блокування пам’яті. При використанні платформи реального часу RTAI він не має достатніх прав, і користувач повинен підвищити обмеження блокування пам’яті.

Якщо LinuxCNC відображає таке повідомлення під час запуску, проблема полягає в налаштованому системою ліміті заблокованої пам’яті:

RTAPI: ПОМИЛКА: не вдалося зіставити shmem
RTAPI: Ліміт заблокованої пам'яті становить 32 КБ, рекомендовано щонайменше 20480 КБ.

Щоб вирішити цю проблему, додайте файл з назвою /etc/security/limits.d/linuxcnc.conf (як root) за допомогою улюбленого текстового редактора (наприклад, sudo gedit /etc/security/limits.d/linuxcnc.conf). Файл повинен містити такий рядок:

* - memlock 20480'

Вийдіть із системи та знову ввійдіть, щоб зміни набули чинності. Перевірте, чи збільшено ліміт блокування пам’яті, за допомогою такої команди:

$ ulimit -l

6. Розробка на Gentoo

Створення на базі Gentoo можливе, але не підтримується. Переконайтеся, що ви використовуєте профіль для настільних комп’ютерів. Цей проект використовує набір віджетів Tk, asciidoc та має деякі інші залежності. Вони повинні бути встановлені як root:

~ # euse -E tk imagequant
~ # emerge -uDNa world
~ # emerge -a dev-libs/libmodbus dev-lang/tk dev-tcltk/bwidget dev-tcltk/tclx
~ # emerge -a dev-python/pygobject dev-python/pyopengl dev-python/numpy
~ # emerge -a app-text/asciidoc app-shells/bash-completion

Ви можете повернутися до звичайного користувача для більшої частини решти встановлення. Як цей користувач, створіть віртуальне середовище для pip, а потім встановіть пакети pip:

~/src $ python -m venv   --system-site-packages ~/src/venv
~/src $ . ~/src/venv/bin/activate
(venv) ~/src $ pip install yapps2
(venv) ~/src $

Тоді ви можете продовжувати як завжди:

(venv) ~/src $ git clone https://github.com/LinuxCNC/linuxcnc.git
(venv) ~/src $ cd linuxcnc
(venv) ~/src $ cd src
(venv) ~/src $ ./autogen.sh
(venv) ~/src $ ./configure --enable-non-distributable=yes
(venv) ~/src $ make

Немає потреби запускати "make suid", просто переконайтеся, що ваш користувач знаходиться в групі "dialout". Щоб запустити linuxcnc, ви повинні бути у віртуальному середовищі Python та налаштувати середовище linuxcnc:

~ $ . ~/src/venv/bin/activate
(venv) ~ $ . ~/src/linuxcnc/scripts/rip-environment
(venv) ~ $ ~/src/linuxcnc $ scripts/linuxcnc

7. Варіанти перегляду репозиторію git

Інструкції «Швидкий старт» у верхній частині цього документа клонують наше git-репозиторій за адресою https://github.com/LinuxCNC/linuxcnc.git. Це найшвидший і найпростіший спосіб розпочати роботу. Однак є й інші варіанти, які варто врахувати.

7.1. Зробіть форк на GitHub

Репозиторій проекту LinuxCNC git знаходиться за адресою https://github.com/LinuxCNC/linuxcnc. GitHub — це популярний сервіс хостингу git та веб-сайт для обміну кодом. Ви можете легко (і безкоштовно) створити форк (другий екземпляр, що містить копію, яку ви контролюєте) репозиторію LinuxCNC git на GitHub. Потім ви можете використовувати цей форк для відстеження та публікації своїх змін, отримання коментарів до своїх змін та прийняття патчів від спільноти. .

Після створення власного форку LinuxCNC на GitHub, клонуйте його на свій комп’ютер розробника та продовжуйте хакінг як завжди.

Ми, учасники проекту LinuxCNC, сподіваємося, що ви поділитеся з нами своїми змінами, щоб спільнота могла скористатися результатами вашої роботи. GitHub значно спрощує цей процес: після того, як ви доопрацюєте свої зміни та завантажите їх у свій форк GitHub, надішліть нам запит на витяг (Pull Request).