1. Introducción
Este documento describe cómo construir el software LinuxCNC y la documentación desde las fuentes. Esto es útil principalmente si eres un desarrollador que está modificando LinuxCNC. También puede ser útil si eres un usuario que está probando ramas de desarrollo, aunque también se tiene la opción de instalar paquetes únicos Debian desde buildboot: (http://buildbot.linuxcnc.org) o como un paquete normal de tu distribución Linux (https://tracker.debian.org/pkg/linuxcnc). Ciertamente, esta sección también existe por que LinuxCNC es un esfuerzo comunitario y te alentamos a contribuir al desarrollo de LinuxCNC. Generalmente, querrás compilar LinuxCNC por ti mismo para un acceso funcional inmediato
-
para un nuevo desarrollo de LinuxCNC o
-
un desarrollo nuevo que quizás quieras contribuir a LinuxCNC o ayudar a otros a completarlo.
Por lo tanto, podrías portar LinuxCNC a una nueva distribución Linux, o como es común, un desarrollador reacciona a un problema que has reportado y cuya solución quieres probar. Cualquier cambio como tal no tendrá buildbot de ayuda, o esa ayuda estará desfasada, dependiendo de la revisión de alguien mas que no quieras esperar o eres el único individuo con un hardware en particular para probar el código.
Además de los programas que controlan tu máquina que están construidos desde el árbol fuente, también puedes construir los mismos archivos PDF y/o HTML que seguramente has encontrado en línea en https://linuxcnc.org/documents/.
Si deseas contribuir a LinuxCNC pero no estas seguro de dónde empezar, por favor considera seriamente en contribuir a la documentación. Cada quien encuentra siempre algo que mejorar, y si solo dejas en el texto un "ARREGLAME: con un comentario" como referencia para ti y otros de revisar esa sección después. Además, hay traducciones a otros lenguajes distintos al inglés en https://hosted.weblate.org/projects/linuxcnc que muy probablemente se beneficiarán de tu escrutinio.
2. Descargando el árbol fuente
El repositorio git del proyecto LinuxCNC está en https://github.com/LinuxCNC/linuxcnc. Github es un popular servicio de alojamiento git y un sitio web para compartir código.
Para obtener el árbol fuente tienes dos opciones:
- Descargar tarball
-
En la página del proyecto LinuxCNC en Github encontrarás una referencia a "releases" o "tags", haz clic en esa liga y descarga el archivo .tar mas reciente. Notarás que el archivo esta comprimido como .tar.xz o tar.gz. Este archivo comúnmente conocido como un "tarball" es un archivo muy similar a un .zip. Tu escritorio de Linux sabrá como tratar ese archivo cuando hagas doble clic sobre él.
- Prepara una copia local del repositorio de LinuxCNC
-
Primero instalarías en tu máquina la herramienta "git" si no esta disponible (
sudo apt Install git). Luego prepara una instancia local del árbol fuente como a continuación: .
$ git clone https://github.com/LinuxCNC/linuxcnc.git linuxcnc-source-dir
. El primer argumento al comando git se explica por si mismo: Esto es lo que se llama un "clon" del repositorio de LinuxCNC. La ventaja es que este clon local mantiene la comunicación sobre los cambios que hayas decidido hacer en el árbol fuente.
GitHub es una infraestructura por sí solo y se explica a profundidad en otros lados. Sólo para motivarte, si no lo sabes, ofrece crear un clon para ti y hacer esa instancia disponible al público. GitHub se refiere a tal instancia adicional de otro repositorio como un "fork" (bifurcación). Puedes crear fácilmente (sin ningún costo) una bifurcación del repositorio git de LinuxCNC en GitHub, y usarla para dar seguimiento y publicar tus cambios. Después de crear tu propia bifurcación de LinuxCNC en GitHub, clónala en tu computadora de desarrollo y procede a hackear como de costumbre.
Nosotros, los del proyecto LinuxCNC, esperamos que compartas tus cambios, para que la comunidad pueda beneficiarse de tu trabajo. GitHub hace que compartir sea muy fácil: Después de pulir tus cambios y añadirlos a tu bifurcación GitHub, envíanos una solicitud de extracción (pull request).
2.1. Inicio rápido
Para los impacientes, intenten esto:
$ git clone https://github.com/LinuxCNC/linuxcnc.git linuxcnc-source-dir
$ cd linuxcnc-source-dir/src
$ ./autogen.sh
$ ./configure --with-realtime=uspace
$ make
¡Eso probablemente fallará!, lo cual no te convierte en una mala persona, solo significa que debes leer todo este documento para averiguar cómo solucionar tus problemas. Especialmente la sección sobre Satisfacer dependencias de compilación.
Si estás manejando un sistema con capacidad de tiempo real (como una instalación desde la imagen de LinuxCNC Live/Install, ve la sección Tiempo Real más abajo); se necesita un paso de construcción adicional:
$ sudo make setuid
Después de haber compilado con éxito LinuxCNC, es hora de ejecutar las pruebas:
$ source ../scripts/rip-environment
$ runtests
¡Esto también podría fallar! Lee todo este documento, pero especialmente la sección en Configuración del entorno de prueba.
3. Plataformas compatibles
El proyecto LinuxCNC apunta a distribuciones modernas basadas en Debian, que incluyen Debian, Ubuntu y Mint. Continuamente probamos en las plataformas listadas en http://buildbot.linuxcnc.org.
LinuxCNC compila en la mayoría de las otras distribuciones de Linux, aunque la gestión de dependencias será más manual y menos automática. Siempre son bienvenidos parches para mejorar la portabilidad a nuevas plataformas .
3.1. En tiempo real
LinuxCNC es un controlador de máquina herramienta, y requiere una plataforma en tiempo real para hacer este trabajo. Esta versión de LinuxCNC soporta las plataformas siguientes. Las primeras tres en la lista son sistemas operativos de tiempo real:
- RTAI
-
De https://www.rtai.org. Del archivo de Debian en https://linuxcnc.org hay disponible un kernel de Linux con el parche RTAI. Vea Obtener LinuxCNC para las instrucciones de instalación.
- Xenomai
-
De https://xenomai.org. Tendrás que compilar u obtener un kernel Xenomai por ti mismo.
- Preempt-RT
-
De https://rt.wiki.kernel.org. Un kernel de Linux con el parche Preempt-RT, que está disponible ocasionalmente en el archivo Debian en https://www.debian.org, y desde la "máquina wayback" en https://snapshot.debian.org.
- Tiempo diferido
-
LinuxCNC también puede compilarse y ser ejecutado en plataformas en tiempo no-real, como una instalación normal de Debian o Ubuntu sin ningún kernel de tiempo real especial.
En este modo LinuxCNC no es muy útil para controlar máquinas herramientas, pero es útil para simular la ejecución de código G y para probar partes del sistema en tiempo no-real (como interfaces de usuario, algunos tipos de componentes y controladores de dispositivo).
Para hacer uso de las capacidades de tiempo real de LinuxCNC, ciertas partes de él necesitan ejecutarse con privilegios de root. Para habilitar dichas partes, ejecuta este comando extra después delmakeque compila LinuxCNC:
$ sudo make setuid
4. Modos de compilación
Hay dos modos de compilar LinuxCNC en una máquina: El modo amigable con el desarrollador "ejecución en el sitio” (run in place o RIP) y el modo amigable con el usuario empaquetado Debian.
4.1. Compilación para ejecución en sitio
En una compilación Run-In-Place, los programas de LinuxCNC se compilan desde las fuentes y luego se ejecuta directamente desde el directorio de compilación. Nada queda instalado fuera del directorio de compilación. Es fácil y rápido, y adecuado para una iteración rápida de cambios. El conjunto de pruebas de LinuxCNC solo se corre en una compilación Run-In-Place. La mayoría de los desarrolladores compilan primordialmente con este modo.
Una compilación para ejecución en sitio sigue los pasos de la sección Inicio rápido en la parte superior de este documento, posiblemente con argumentos diferentes para src/configure y make.
4.1.1. Argumentos src/configure
El script src/configure configura cómo será compilado el código fuente. Admite muchos argumentos opcionales; para enlistarlos todos ejecuta:
$ cd directorio-codigo-fuente-linuxcnc/src
$ ./configure --help
Los argumentos más utilizados son:
-
--with-realtime=uspace -
Compilar para cualquier plataforma en tiempo real, o para tiempo diferido. Los ejecutables LinuxCNC resultantes se ejecutarán tanto en un kernel de Linux con parches Preempt-RT (que proporcionan control de la máquina en tiempo real) como en un kernel de Linux original (sin parches) (que proporciona simulación de código G pero sin control de máquina en tiempo real).
Si los archivos de desarrollo están instalados para Xenomai (típicamente del paquete libxenomai-dev) o RTAI (típicamente desde un paquete con un nombre que comienza por "rtai-modules"), también estará habilitado el soporte para estos kernels en tiempo real. -
--with-realtime=/usr/realtime-$VERSION -
Compilación para la plataforma RTAI en tiempo real utilizando el antiguo modelo "kernel realtime". Esto requiere tener un kernel RTAI y los módulos RTAI instalados en
/usr/realtime-$VERSION. Los ejecutables LinuxCNC resultantes solo se ejecutarán en el kernel RTAI especificado. A partir de LinuxCNC 2.7, esto produce el mejor rendimiento en tiempo real. -
--enable-build-documentation -
Construir la documentación además de los ejecutables. Esta opción aumenta significativamente el tiempo requerido para la compilación, ya que construir los documentos consumen bastante tiempo. Si no trabajas activamente en la documentación querrás omitir este argumento.
-
--disable-build-documentation-translation -
Deshabilitar la traducción de documentación para todos los lenguajes disponibles. La construcción de la documentación traducida toma una enorme cantidad de tiempo, así que se recomienda omitirla si no es realmente necesaria.
4.1.2. Argumentos make
El comando make admite dos argumentos opcionales útiles.
- Compilación paralela
-
makeadmite un argumento opcional-jN (donde N es un número). Esto permite compilación en paralelo con N procesos simultáneos, que puede acelerar significativamente tu construcción.Un valor útil para N es la cantidad de CPUs en tu sistema de compilación.
Puedes averiguar el número de CPUs ejecutando nproc.
- Construir solo un objetivo específico
-
Si quieres construir solo una parte específica de LinuxCNC, puedes nombrar lo que quieres construir en la línea de comando
make. Por ejemplo, si estás trabajando en un componente llamadofroboz, puedes construir su ejecutable con los comandos:> cd directorio-codigo-fuente-linuxcnc/src > make ../bin/froboz
4.2. Construyendo paquetes Debian
Al construir paquetes Debian, los programas LinuxCNC se compilan desde el código fuente y luego se almacenan en un paquete Debian, completado con información de dependencias. Este proceso incluye de forma predeterminada la construcción de la documentación, lo cual toma su tiempo debido a toda la E/S para muchos idiomas, pero no puede ser omitida. Entonces LinuxCNC es instalado como parte de esos paquetes en la misma máquina o en cualquier máquina con la misma arquitectura a la que se copien los archivos .deb. LinuxCNC no puede ejecutarse hasta que se instalen los paquetes Debian en una máquina destino, y hasta entonces estarán disponibles los ejecutables en /usr/bin y /usr/lib, tal y como otro software del sistema.
Este modo de compilación es principalmente útil cuando se empaqueta el software para entrega a usuarios finales, o para construir el software para una máquina que no tiene instalado el entorno de compilación, o que no tiene acceso a Internet.
Para los impacientes, intenten esto:
$ sudo apt-get install build-essential
$ git clone https://github.com/LinuxCNC/linuxcnc.git directorio-fuente-linuxcnc
$ cd directorio-fuente-linuxcnc/src
$ ./debian/configure
$ sudo apt-get build-dep .
$ DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -uc -B
La construcción de paquetes Debian se hace con la herramienta dpkg-buildpackage que viene en el paquete dpkg-dev. Para ejecutarla se tiene una serie de pre-requisitos que se detallan a continuación:
* se debe instalar la infraestructura general de construcción, p. ej. compiladores, etc.
* deben estar instaladas las dependencias de compilación, p. ej. los archivos de encabezados para las librerías de código externo utilizadas, como se describe en la sección Satisfacer dependencias de compilación.
* el archivo que describe el paquete debe estar completado y en el directorio debian
Las herramientas de compilación han sido reunidas en un paquete virtual nombrado build-essential. Para instalarlo ejecute:
$ sudo apt-get install build-essential
Una vez que se cumplen esos requisitos previos, la construcción de los paquetes Debian consiste en dos pasos.
El primer paso es generar los scripts y metadatos del paquete Debian desde el repositorio git ejecutando esto:
$ cd linuxcnc-dev
$ ./debian/configure
|
Nota
|
¡El script El script |
Una vez que los scripts del paquete Debian y los metadatos estén configurados, construir el paquete ejecutando dpkg-buildpackage:
$ dpkg-buildpackage -b -uc
|
Nota
|
Se necesita que |
4.2.1. Argumentos debian/configure de LinuxCNC
El árbol de fuentes de LinuxCNC tiene un directorio debian con toda la información de cómo armar el paquete Debian, pero algunos archivos esenciales solo se distribuyen como plantillas. La secuencia de comandos debian/configure prepara esas instrucciones de armado para las utilerías de empaquetamiento Debian habituales y por lo tanto deben ser ejecutadas antes que dpkg-checkbuilddeps o dpkg-buildpackage.
La secuencia de comandos debian/configure admite un solo argumento que especifica la subyacente plataforma de tiempo real o de tiempo no-real para la que se compila. Los valores normales para este argumento son:
-
no-docs -
Saltar construcción de documentación.
-
uspace -
Configura el paquete Debian para Preempt-RT en tiempo real o para no tiempo real (estos dos son compatibles).
-
noauto -
rtai -
xenomai -
Normalmente, se detectan automáticamente las listas de RTOS para uspace en tiempo real soportados. Sin embargo, si lo deseas, puedes especificar uno o más de estos RTOS después de
uspacepara habilitar el soporte para estos RTOS. Para deshabilitar la autodetección, especificarnoauto.Si solo quieres el tradicional "módulo de kernel" RTAI en tiempo real, usa
-ro$KERNEL_VERSIONen su lugar. -
rtai=<nombre del paquete> -
Si el paquete de desarrollo para RTAI, lxrt, no comienza con "rtai-modules", o si el primer paquete de este tipo aparece en la búsqueda de apt-cache no es el deseado, especifique explícitamente el nombre del paquete.
-
-r -
Configura el paquete Debian para el kernel RTAI actualmente en ejecución. ¡Debes ejecutar un kernel RTAI en tu máquina de compilación para que esto funcione!
-
$KERNEL_VERSION -
Configura el paquete Debian para la versión de kernel RTAI especificada (por ejemplo, "3.4.9-rtai-686-pae"). Los encabezados del kernel del paquete Debian coincidente deben estar instalados en su máquina de compilación (p. ej. "linux-headers-3.4.9-rtai-686-pae"). Tenga en cuenta que puede construir LinuxCNC en esta configuración, pero si no está ejecutando el kernel RTAI coincidente, no podrá ejecutar LinuxCNC, incluyendo el conjunto de pruebas.
4.2.2. Satisfacer dependencias de compilación
En las plataformas basadas en Debian, proporcionamos metadatos de empaquetado que saben qué paquetes de software externos deben instalarse para compilar LinuxCNC. Esas son referidas como dependencias de compilación de LinuxCNC, p. ej. aquellos paquetes que deben estar disponibles de tal manera que
-
la compilación se exitosa y
-
la compilación pueda compilarse reproduciblemente.
Puedes usar estos metadatos para enlistar fácilmente los paquetes requeridos faltantes en tu sistema de compilación. Primero, ve al árbol de fuentes LinuxCNC e inicia su auto-configuración predeterminada, si aún no se ha realizado:
$ cd linuxcnc-dev
$ ./debian/configure
Esto preparará el archivo debian/control que contiene la lista de paquetes Debian a crear con la dependencias en tiempo de ejecución para esos paquetes y, para nuestra causa, las dependencias de compilación para aquellos paquetes a ser creados.
La manera más directa de instalar todas esas dependencias de compilación es simplemente ejecutar (desde el mismo directorio):
sudo apt-get build-dep .
la cual instalará todas las dependencias requeridas, aún no instaladas, pero disponibles. El . es parte de la línea de comandos, p. ej. una instrucción para obtener a mano las dependencias para el árbol de fuentes, no para las dependencias de otro paquete. Esto completa la instalación de dependencias de compilación.
El resto de esta sección describe un enfoque semiautomático. La lista de dependencias en debian/control es larga y es tedioso comparar el estado actual de los paquetes ya instalados. Los sistemas Debian proporcionan un programa llamado dpkg-checkbuilddeps que analiza los metadatos del paquete y compara los paquetes enumerados como dependencias de compilación contra la lista de paquetes instalados, y te dice lo que falta.
Primero, instala el programa dpkg-checkbuilddeps ejecutando:
$ sudo apt-get install dpkg-dev
Esto genera el archivo debian/control en un formato legible para el usuario yaml, el cual enlista las dependencias de compilación cercanas a lo más alto. Puedes usar estos metadatos para enlistar los paquetes requeridos faltantes en tu sistema de compilación. Puedes decidir inspeccionar manualmente esos archivos si tienes un buen entendimiento de lo que ya esta instalado.
Alternativamente, los sistemas Debian proporcionan un programa llamado dpkg-checkbuilddeps que analiza los metadatos del paquete y compara los paquetes enlistados como dependencias de compilación contra la lista de paquetes instalados, y te dice qué falta. Además, dpkg-buildpackage te informará de lo que falta, y estará bien. Sin embargo, reportará las dependencias de compilación faltantes solo después de que se hayan aplicado automáticamente los parches del directorio debian/patches (si hay alguno). Si eres nuevo en la gestión de versiones en Linux y git, un inicio desde cero puede ser preferible para evitar complicaciones.
Se le puede pedir al programa dpkg-checkbuilddeps (también del paquete dpkg-dev que se instala como parte de build-essential-dependencies) que haga su trabajo (ten en cuenta que necesita ser ejecutado desde el directorio directorio-codigo-fuente-linuxcnc, no desde directorio-codigo-fuente-linuxcnc/debian):
$ dpkg-checkbuilddeps
Esto emitirá una lista de paquetes necesarios para compilar LinuxCNC en tu sistema, pero que aún no están instalados. Ahora puedes instalar las dependencias de compilación faltantes de forma
- manual
-
Se instalan todas con
sudo apt-get install, seguido de los nombres de los paquetes. Puedes volver a ejecutardpkg-checkbuilddepscuando quieras para enlistar los paquetes faltantes, lo cual no tiene efecto en el árbol de fuentes. - automatizada
-
Ejecute
sudo apt build-dep ..
En caso de duda sobre lo que trae un paquete en particular de una dependencia de compilación, revisa la descripción del paquete con ``apt-cache show``nombre-de-paquete.
4.2.3. Opciones para dpkg-buildpackage
Para un armado de paquete típico de Debian, ejecutarías dpkg-buildpackage sin argumentos. Como si señaló anteriormente, el comando tiene dos opciones extras a pasarle. Como en todas las buenas herramientas de Linux, la página del manual tiene todos los detalles con man dpkg-buildpackage.
-
-uc -
No firmar digitalmente los binarios resultantes. Querrás firmar tus paquetes con una llave GPG tuya solo si quieres distribuirlo a otros. El no tener la opción establecida y fallar la firma del paquete no afectará el archivo .deb.
-
-b -
Solo compila los paquetes dependientes de arquitectura (como los binarios de
linuxcncy GUIs). Esta es muy útil para evitar compilar lo que es dependiente de hardware. Para LinuxCNC, es la documentación, la cual esta disponible en línea de todos modos.
Si llegaras a tener dificultades con la compilación, revisa el foro de LinuxCNC en línea.
Actualmente esta surgiendo el soporte de la variable de ambiente DEB_BUILD_OPTIONS. Se le puede asignar
-
nodocs -
para omitir la construcción de la documentación, preferentemente usa en su lugar la bandera
-Bde dpkg-buildpackage. -
nocheck -
para omitir las auto-pruebas del proceso de compilación de LinuxCNC. Esto ahorra algo de tiempo y reduce la demanda de algunos paquetes de software que pudieran no estar disponibles para tu sistema. Por ejemplo, el xvfb en particular. No deberías establecer esta opción para tener más confianza en el desempeño esperado de tu compilación a menos que caigas en dificultades meramente técnicas con las dependencias de software específicas para pruebas.
Una variable de ambiente puede ser establecida junto con la ejecución del comando, p. ej.
DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -uc -B
combinará todas las opciones presentadas en esta sección.
4.2.4. Instalando paquetes Debian auto-compilados
Un paquete Debian puede ser reconocido por su extensión .deb. La herramienta que lo instala es dpkg y es parte de toda instalación Debian. Los archivos .deb creados por dpkg-buildpackage se encuentran en el directorio arriba del directorio-codigo-fuente-linuxcnc, p. ej. en ... Para ver qué archivos vienen en un paquete ejecuta
dpkg -c ../linuxcnc-uspace*.deb
La versión de LinuxCNC será parte del nombre del archivo, la que deberá estar en el lugar del asterisco. Pueden haber demasiados archivos enlistados como para que quepan en tu pantalla. Si no puedes hacer desplazamiento hacia arriba en tu terminal, agrega | more al comando para que su salida pase por lo que se llama un "paginador", del cual sales presionando la tecla "q".
Para instalar los paquetes ejecuta
sudo dpkg -i ../linuxcnc*.deb
5. Configuración del entorno
Esta sección describe los pasos especiales necesarios para configurar una máquina para ejecutar los programas LinuxCNC, incluidas las pruebas.
5.1. Aumentar el límite de memoria bloqueada
LinuxCNC intenta mejorar su latencia en tiempo real bloqueando la memoria que utiliza en la RAM. Hace esto para evitar que el sistema operativo intercambie LinuxCNC al disco, lo que tendría malos efectos sobre la latencia. Normalmente, bloquear memoria en RAM es mal visto, y el sistema operativo pone un límite estricto sobre cuánta memoria se le permite bloquear a un usuario.
Cuando se utiliza la plataforma de tiempo real Preempt-RT, LinuxCNC se ejecuta con suficiente privilegio para aumentar su límite de bloqueo de memoria. Cuando se usa la plataforma RTAI en tiempo real, no tiene suficientes privilegios, y el usuario debe elevar el límite de bloqueo de memoria.
Si LinuxCNC muestra el siguiente mensaje al inicio, el problema es el límite de memoria bloqueada configurado en tu sistema:
RTAPI: ERROR: failed to map shmem
RTAPI: Locked memory limit is 32KiB, recommended at least 20480KiB.
Para solucionar este problema, agrega un archivo llamado /etc/security/limits.d/linuxcnc.conf (como root) con tu editor de texto favorito (p. ej., sudo gedit/etc/security/limits.d/linuxcnc.conf). El archivo debe contener la línea siguiente:
* - memlock 20480
Cierra y vuelve a iniciar sesión para que los cambios surtan efecto. Verifica que el límite de bloqueo de memoria se aumentó con el comando siguiente:
$ ulimit -l
6. Compilación en Gentoo
Es posible compilar en Gentoo, pero sin soporte. Asegúrate que ejecutas un perfil de escritorio. Este proyecto usa el conjunto de Widgets Tk, asciidoc y tiene algunas otras dependencias; deben ser instaladas como 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
Puedes cambiarte de vuelta a un usuario normal para la mayoría del resto de la instalación. Como ese usuario, crea un ambiente virtual para pip y luego instala los paquetes pip:
~/src $ python -m venv --system-site-packages ~/src/venv
~/src $ . ~/src/venv/bin/activate
(venv) ~/src $ pip install yapps2
(venv) ~/src $
Entonces puedes continuar normalmente:
(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
No hay necesidad de ejecutar "make suid", solo asegúrate que tu usuario está en el grupo "dialout". Para arrancar linuxcnc, debes estar en el Ambiente Virtual Python y configurar el ambiente linuxcnc:
~ $ . ~/src/venv/bin/activate
(venv) ~ $ . ~/src/linuxcnc/scripts/rip-environment
(venv) ~ $ ~/src/linuxcnc $ scripts/linuxcnc
7. Opciones para ver el repositorio de git
Las instrucciones de Inicio rápido en la parte superior de este documento indican hacer un clon de nuestro repositorio en http://github.com/LinuxCNC/linuxcnc.git. Esta es la manera más rápida y fácil de empezar. Sin embargo, hay otras opciones a considerar.
7.1. Bifurcación en Github
El repositorio git del proyecto LinuxCNC está en https://github.com/LinuxCNC/linuxcnc. GitHub es un popular servicio de alojamiento git y un sitio web para compartir código. Puedes crear fácilmente (y sin costo) una bifurcación (una segunda instancia con una copia que tú controlas) del repositorio de git de LinuxCNC en GitHub. Entonces podrás usar esa bifurcación para rastrear y publicar tus cambios, recibir comentarios a tus cambios y aceptar parches de la comunidad. .
Después de crear tu propia bifurcación en GitHub de LinuxCNC, clónala en tu computadora de desarrollo y procede con tu hackeo como de costumbre.
Nosotros, el proyecto LinuxCNC, esperamos que compartas tus cambios, para que la comunidad pueda beneficiarse de tu trabajo. GitHub hace que compartir sea muy fácil; después de pulir tus cambios y añadirlos a tu bifurcación GitHub, envíanos una solicitud de extracción.