it-swarm-es.tech

Cómo compilar e instalar programas desde la fuente

Este es un problema que realmente limita mi disfrute de Linux. Si la aplicación no está en un repositorio o si no tiene un script de instalación, entonces realmente me cuesta dónde y cómo instalar una aplicación desde el origen.

En comparación con Windows, es fácil. Se requiere (más o menos) usar una aplicación de instalación que haga todo el trabajo en un asistente. Con Linux ... no tanto.

Entonces, ¿tiene algún consejo o instrucciones sobre esto o hay algún sitio web que explícitamente explique cómo, por qué y dónde instalar programas Linux desde la fuente?

42
Nitrodist

Normalmente, el proyecto tendrá un sitio web con instrucciones sobre cómo construirlo e instalarlo. Google para eso primero.

En su mayor parte, usted hará:

  1. Descargue un tarball (archivo tar.gz o tar.bz2), que es una versión específica del código fuente
  2. Extrae el tarball con un comando como tar zxvf myapp.tar.gz para un tarball comprimido o tar jxvf myapp.tar.bz2 para un tarball comprimido
  3. cd en el directorio creado anteriormente
  4. correr ./configure && make && Sudo make install

O:

  1. Use git o svn o lo que sea para extraer el último código fuente de su repositorio fuente oficial
  2. cd en el directorio creado anteriormente
  3. correr ./autogen.sh && make && Sudo make install

Tanto configure como autogen.sh aceptarán un argumento --prefix para especificar dónde está instalado el software. Recomiendo echar un vistazo ¿Dónde debo colocar el software que compilo yo mismo? para obtener consejos sobre el mejor lugar para instalar software personalizado.

24
Sandy

Solo quiero agregar que hay administradores de paquetes que compilan paquetes desde el origen y manejan todas las dependencias de paquetes, marcas, etc.

En sistemas BSD es ports: sando la colección de puertos

En Debian, el apt-get el administrador de paquetes también puede instalar desde la fuente: APT HOWTO: Trabajando con paquetes fuente (Lo mismo ocurre con Ubuntu, Linux-mint y todo lo demás basado en Debian)

La distribución Gentoo utiliza el administrador de paquetes portage, que compila todo el sistema solo desde el origen: Introducción a Portage .

Slackware puede compilar paquetes, pero no sé si hay algún administrador de paquetes para esto allí ... =)

De todos modos, siempre puede compilar paquetes manualmente como Sandy mencionó anteriormente =) También debe ser posible usar apt-get o portage administradores de paquetes en cualquier otra distribución ...

4
holms

Creo que es mejor leer la documentación que viene con ese programa o aplicación específica que desea instalar. Por lo general, hay archivos Léame/READMEs dentro de los tarballs (el archivo fuente de la aplicación que generalmente puede descargar) o tal vez incluso INSTALAR archivos para leer y aprender cuál es la forma preferida de instalar dicha aplicación. En resumen: RTFM;)

2
reiche

Un resumen para usar la Colección de Puertos en FreeBSD:

Buscar puerto

Los puertos están organizados por categoría, por lo que si no sabe en qué categoría se encuentra el puerto, primero debe encontrarlo:

cd /usr/ports
make search name=myport

A veces hay demasiadas entradas de esa manera. Yo personalmente prefiero:

find /usr/ports -name myport* -print -depth 2

Utilizar el * al buscar, ya que a menudo hay varias versiones de un puerto disponibles. El argumento de profundidad garantiza que sus resultados de retorno no estén innecesariamente saturados de coincidencias que es poco probable que desee.

Configuración

A menudo, querrás hacer alguna configuración; software como Apache y Postgres prácticamente lo requieren. Hay tres opciones principales: línea de comando, entorno y hacer archivos de configuración. Para comenzar con la línea de comando:

make showconfig

esto enumerará las opciones de configuración predeterminadas. Si le gustan los valores predeterminados, está listo para compilar e instalar. Si no,

make config

aparecerá un cuadro de diálogo donde puede seleccionar las opciones que desee. (No se confunda con esto y make configure que configura su puerto con las opciones elegidas) Esto a menudo es suficiente, pero para algunos software, como Apache, a menudo hay una configuración compleja que un simple diálogo no manejará. Para esto, también debe mirar los Makefile (s) que a veces le darán algunos objetivos adicionales para hacer que le brindarán más información. Para continuar con el ejemplo de Apache

make show-modules
make show-options
make show-categories

le dará información sobre cómo configurar los módulos elegidos, las opciones de subprocesos y similares. Si los valores predeterminados de su puerto están en su mayoría bien y solo desea cambiar algunas cosas, también puede pasar pares clave = valor como variables de entorno:

make MYVBL1=MYVAL1 ... install clean

Además, puede configurar las opciones de cambio a través de -D opción:

make -D MYVAR -D MYOTHERVAR ... install clean

Sin embargo, para una configuración compleja, la línea de comando no funcionará bien y es mejor que ninguno de los dos primeros métodos sea efectivo. En este caso, puede hacer un archivo de configuración y pasarlo a make con la variable __MAKE_CONF. FreeBSD tiene un archivo de configuración predeterminado: /etc/make.conf que generalmente contiene información sobre puertos instalados previamente y otras configuraciones del sistema. Para comenzar, cree un archivo con sus opciones de puertos, llámelo ~/myport.mk y luego combina ese archivo con /etc/make.conf:

cat /etc/make.conf ~/myport.mk >> ~/make.myport.conf

luego puede verificar su configuración:

make showconfig __MAKE_CONF=~/make.port.conf

y si todo se ve bien:

make install clean __MAKE_CONF=~/make.myport.conf

¡TENER CUIDADO! Si necesita ajustar la configuración después de make configure o una instalación en su totalidad o en parte absolutamente debe borrar su configuración primero :

make rmconfig

De lo contrario, se producirán interacciones inesperadas entre el subsistema de puertos, los valores predeterminados de make de su puerto y la configuración deseada.

Eso es bastante para un resumen, pero la complejidad de la configuración se trata principalmente de la aplicación, no del puerto. Bash, por ejemplo, realmente no tiene ninguna opción.

Instalación

Esta es la parte facil:

make install clean

o tu puedes

make build
make install
make clean

lo cual es más mecanografía.

Eso es practicamente todo. Obviamente, hay más cosas que puede hacer, como enumerar recursivamente dependencias y opciones de configuración, actualizar con parches, etc. Aquí lo referiré a la sección Puertos de Manual , la página del manual del subsistema de puertos (buena información sobre objetivos adicionales de creación) y la página del manual make .

1
gvkv

Recientemente comencé a usar "Checkinstall" al instalar desde la fuente fuera de mi administrador de paquetes. Construye un "paquete" a partir de un tarball de terceros que luego puede instalarse y administrarse (y desinstalarse) a través de las herramientas del administrador de paquetes.

Consulte este artículo - http://www.linuxjournal.com/content/using-checkinstall-build-packages-source

0
aryeh