Instalar aplicaciones desde la fuente

12

Me preguntaba acerca de las instalaciones genéricas de todas las aplicaciones en Linux. ¿Y qué significa eso? Bueno, cuando estaba usando Windows sabía que si quería instalar una aplicación, estaba haciendo doble clic en el archivo .exe y luego en siguiente, siguiente, siguiente.

En Linux, he entendido que tal vez hay una forma común (no genérica) de instalar cualquier aplicación. ¿Instalando desde la fuente quizás? Bueno, ¿hay algún método paso a paso que pueda usarse para instalar aplicaciones como en Windows o no?

Pregunto porque no quiero seguir preguntando al google, ¿cómo? Entonces, he logrado instalar recientemente desde el código fuente gratuito de esta guía y creo que sería un buen comienzo como método común, ¿verdad?

¡Pero la cuestión es dónde encontrar la fuente correcta y cuándo una aplicación tiene un método de instalación muy exclusivo!

gabriel
fuente
Posible duplicado de cómo instalar desde .tar.gz?
Tachyons
No, mi pregunta fue clara, creo, solo una información más profunda
gabriel
great great great how to howtogeek.com/105413/…
Mohammad Reza Rezwani

Respuestas:

14

Las instrucciones de instalación varían según los programas, aunque existen herramientas bien establecidas como autotools (incluye automake y autoconf) y cmake.

Dado que los programas pueden venir en diferentes lenguajes de programación, es difícil dar comandos genéricos que se adapten a todos los paquetes. Por ejemplo, Python a menudo tiene scripts setup.py donde los programas C a menudo usan herramientas automáticas o al menos un Makefile.

Siempre empiezo por encontrar los archivos INSTALL, README o similares. Si necesita compilar un programa desde la fuente, es probable que necesite el build-essentialpaquete que depende de compiladores y otros paquetes de desarrollo genéricos.

Dependiendo del programa que intente compilar, es posible que necesite instalar otras dependencias. Verifique el ./configurearchivo README para eso o la salida del script (un archivo ejecutable ubicado en la raíz de la fuente extraída). Por ejemplo, si dice que necesita "encabezados de desarrollo x11", intente encontrar "x11-dev" o "libx11-dev" en los repositorios (en este caso, es libx11-devlo que está buscando).

Las distribuciones de origen que se crearon con autoconf / automake se pueden extraer y configurar con:

tar xf foo-1.0.tar.gz
cd foo-1.0
./configure
make
sudo make install

Use ./configure --helppara las opciones disponibles. Por defecto, los archivos a menudo se instalan, lo /usr/localcual está perfectamente bien. A menos que vaya a empaquetar el archivo en un archivo .deb, no cambie este prefijo /usrya que puede entrar en conflicto con el sistema de administración de paquetes (dpkg).

makese supone que debe comenzar a compilar todo donde se make installinstalen los archivos en las ubicaciones designadas ( sudoes necesario para escribir en ubicaciones privilegiadas como /usr/local). Para desinstalarlo más tarde, ejecute desde el directorio de origen sudo make uninstall(siempre que el paquete se compile correctamente con autoconf / automake, que es responsabilidad del desarrollador, ¡no usted, el usuario!

Si solo está interesado en compilar un paquete del centro de software en su computadora, proceda con (reemplace packagey la versión en consecuencia):

sudo apt-get build-dep package
apt-get source package
cd package-1.0
dpkg-buildpackage -b -uc -us

Consulte las respectivas páginas del manual para obtener más detalles sobre los comandos. (por ejemplo, ejecutar man dpkg-buildpackageen una terminal). Después de ejecutar estos comandos, tendrá un archivo .deb en el directorio principal. Se recomienda utilizar los paquetes de los repositorios de Ubuntu cuando sea posible. Los pasos anteriores se muestran por motivos educativos, pero generalmente desea modificar algunos archivos antes de compilar el paquete.

Lekensteyn
fuente
De hecho, es muy útil, ¡así que el único método común es descargar el paquete (tar ??) y luego extraerlo para ver su contenido! Más tarde tengo que preguntar, estoy extrayendo los archivos y luego ejecuto todos los comandos que mencionaste anteriormente. Entonces, ¿el archivo de instalación es el que estaba trabajando con todos esos comandos? ¿O todos los directorios de archivos de la aplicación son específicos, ya sea que se instalan desde el centro o desde la fuente? Para que quede claro, solo quiero instalar la aplicación donde quiera que esté opt o / usr? Gracias
gabriel
Ver publicación actualizada. El directorio de extracción y cambio es el 99% de todos los casos. Puede ver diferentes extensiones después de .tar, como .gz, .bz2, .xz. Estos se refieren al formato de compresión. .zip es menos común ya que no puede almacenar permisos de archivos, pero se ve en al menos 7-zip. Nota: mis instrucciones son más genéricas para "compilar desde la fuente". Las rutas y la configuración no son las mismas que las del Centro de software de Ubuntu.
Lekensteyn
Por lo tanto, no importa en qué directorio estoy trabajando ./configure, make and make install. Por ejemplo, la ID que descargo y extraigo en el directorio de inicio, entonces debería ejecutar estos comandos y automáticamente el comando make install colocará los archivos de instalación en un directorio específico ¿verdad?
gabriel
No hay, entonces, un directorio específico como Windows "Archivos de programa", ¿verdad?
gabriel
Después de extraer el tarball, cambie su directorio al directorio extraído. La ubicación exacta no importa, puede hacerlo en su directorio de inicio o ~ / Descargas, solo asegúrese de que la ruta no contenga espacios en blanco, ya que rompe la mayoría de las herramientas. Por ejemplo, ~/Downloaded Sourceses una mala idea dónde ~/Downloaded-sourcesestá perfectamente bien. Para su última pregunta, consulte askubuntu.com/q/27213/6969
Lekensteyn el
7

FreeCAD está disponible en el Centro de software de Ubuntu, por lo que no fue necesario compilarlo e instalarlo desde el código fuente.

El Centro de software de Ubuntu siempre es el primer lugar donde debe buscar. Instalar es solo cuestión de hacer clic en un botón.

Hay un icono para el Centro de software de Ubuntu en la barra en el lado izquierdo de la pantalla.

Si realmente desea construir e instalar un programa desde la fuente, busque un archivo README u otras instrucciones que vienen con el programa.

Muchos paquetes de software usan herramientas automáticas GNU como sistema de compilación y se pueden construir e instalar con los siguientes comandos:

./configure
make
sudo make install

Antes de crear un programa, deberá verificar cuáles son las bibliotecas requeridas y otras dependencias (eso también debe mencionarse en la documentación del programa). En packages.ubuntu.com puede encontrar los paquetes de Ubuntu que contienen las bibliotecas necesarias.

Supongamos que el programa necesita una biblioteca llamada blah, entonces probablemente necesitará instalar el paquete libblah-dev(busque el nombre exacto en la página Paquetes de Ubuntu que mencioné anteriormente).

sudo apt-get install libblah-dev
Jesper
fuente
HAHA, sí, conozco este ícono, PERO si alguna vez has notado que hay una descripción en el centro de software en cualquier aplicación que dice "canonical no proporciona actualizaciones críticas" y la versión de freecad fue la 0.8 e instalé freecad v0.13.I solo quiero un conocimiento más profundo en sistemas Linux, no respuestas que señalen dónde está el centro de software, ¡gracias de todos modos! :-)
gabriel
¡AHORA hablas bien! ¡Y muchas gracias, ese es el conocimiento más profundo que solo quiero! ¡Continúa!
gabriel
OK, entonces, si quiero instalar la aplicación desde la fuente, las personas de esta aplicación deben proporcionar el código fuente. Por ejemplo, si quiero instalar una aplicación comercial, no puedo instalar desde la fuente, ¿verdad? ¿ESTE es el proyecto de código abierto de todos modos? Las aplicaciones tienen la fuente abierta para todos, pero no comercial.
gabriel
"si quiero instalar la aplicación desde la fuente, ¿la gente de esta aplicación debe proporcionar el código fuente?" - Sí, por supuesto, eso es lo que significa "de origen ". Y si es un programa comercial que no es de código abierto, entonces no obtienes el código fuente.
Jesper
Entonces, ¿por qué la mayoría de las aplicaciones de Windows no se pueden instalar en Linux?
gabriel
2

Solo hay dos enfoques básicos:

  1. Utilice el Centro de software o una herramienta relacionada (Synaptic apt-get, etc.). Esta es normalmente la mejor opción. Salir de este método puede generar problemas, como conflictos y dificultades con las actualizaciones, por lo que solo debe hacer otra cosa si sabe lo que está haciendo.
  2. Lea la documentación y úsela para instalar. Puede encontrarlo en el sitio web del proyecto, en el tarball o en el lugar donde obtuvo su archivo. O bien, puede que no haya documentación, en cuyo caso tiene que buscar en Google o adivinar. Hay muchas formas diferentes de instalar software. Si esto se vuelve confuso, regrese al número 1.

    Si su paquete usa el estándar ./configure; make; sudo make install, puede usarlo checkinstallpara obtener un .deb de lo que creó. De esa manera, no tiene que sacrificar la gestión de paquetes.

Scott Cesantía
fuente
Ok, hice esta pregunta porque tenía algunos problemas con el centro de software y los archivos .deb. Por ejemplo, quería instalar draftsight, un programa cad y es solo para 32 bits. Así que intenté ignorar las dependencias y los comandos de arquitectura, pero no llegó nada ¿Entonces es posible la extracción de un archivo .deb, por ejemplo, una instalación manual con make y sudo make, etc? gracias
gabriel
Si no hay .deb disponible para su arquitectura, entonces tendrá que instalar su programa de otra manera. Puedes buscar en Google cómo lo han hecho otras personas, o buscar un .dev con el arco adecuado, o construir desde la fuente. Vea mi próxima edición para algo importante.
Scott Severance
checkinstall antes de ejecutar esos comandos? y qué, aparece un .deb? ((tengo que preguntar cómo hace que sus publicaciones se vean bien y organizadas? con los comandos resaltados y el personal? ¿alguna guía para askubuntu?)) Así puedo extraer a .deb, luego compruebe la instalación y haga que se ejecute en 64 bits, por ejemplo, ¿o estoy equivocado y estúpido con esta pregunta?
gabriel
No se puede usar checkinstallen paquetes .deb existentes. Si ya tiene un .deb, técnicamente puede extraerlo e instalarlo manualmente, pero esa no es la mejor manera. checkinstalles para cuando construyes desde la fuente. Para formatear la ayuda, consulte el enlace de ayuda que siempre aparece al publicar.
Scott Severance
Por lo tanto, el archivo .deb con una arquitectura diferente a 64 bits que tengo, ¿no debería extraerse y luego instalarse manualmente? Y cuando diga "es para cuando construye desde la fuente". el archivo .deb se construye desde dónde? ¿Utiliza el mismo código fuente que usted construye desde la fuente? ¿Pregunta tonta?
gabriel
0

Instalar desde la fuente es muy difícil de soportar.

Siempre que sea posible, instálelo desde el centro de software. Ese es el equivalente de las ventanas siguiente-> siguiente-> finalizar mentalidad.

También puede instalar cosas desde la fuente en Windows. Eso no es exclusivo de Linux, es solo que más aplicaciones disponibles de origen se dirigen a Linux.

RobotHumanos
fuente
1
bueno, solo quiero entrar en mi experiencia con Linux, tengo tres años y lo que quiero es finalmente no seguir preguntando cómo y cómo, ¿me sientes? Solo para hacer que mi conocimiento de Linux sea cada vez más profundo. explícame la fuente, etc.
gabriel
linuxfromscratch.org
RobotHumans
Además, cuando una aplicación no tiene .deb en mi ubuntu, ¿cómo instalar desde el centro de software? Entonces, de nuevo, estoy listo para preguntar en askubuntu.com o google.gr '' '¿cómo instalar ESTO en ubuntu 11.10?' ''
gabriel
Si. La aplicación específica es mejor. Producen respuestas reproducibles específicas para usuarios específicos. Por lo tanto, son útiles.
RobotHumans
Bueno, eso es muy útil. Simplemente me sentiste y me diste lo que quería. PERO me gustaría preguntarte después de mucha lectura sobre Linux y Linux ¿nunca podré instalar CUALQUIER aplicación en sistemas Linux? O algo como esto no es posible de ninguna manera?
gabriel
0

Ubuntu ofrece una variedad de métodos de instalación

  1. Mediante sistema de embalaje centralizado.

    Este es el método preferido en ubuntu (pero personalmente no me gusta) software-center, synaptic y aptitude son excelentes para ello

  2. Paquete de Deb independiente: - Este método es más simple como en el caso de Windows, simplemente haga doble clic en el archivo y presione el botón de instalación Por ejemplo: Administrador de paquetes Gdebi

  3. software binario: estos son muy similares a la instalación de Windows .exe, ofrece una variedad de GUI para el instalador, generalmente son archivos .bin

    puedes usar bit rock o herramientas similares para hacer tales paquetes

  4. autopaquete y herramientas similares: estos son administradores de paquetes de terceros creados para admitir varias distribuciones de Linux

  5. código fuente: este es el primer método en la instalación del software, en este método el código fuente se convierte en ejecutables binarios, las instrucciones de instalación para estos softwares generalmente se adjuntan con el código fuente, y estas son válidas solo para código abierto s / w

Advertencia: -Estas son solo mi observación, soy un novato en Linux, así que no dudes en editar / votar si hay algo mal

Taquiones
fuente
Bueno, gracias, según mi experiencia, generalmente veo en el centro de software la descripción de una aplicación y si el canonical proporciona actualizaciones, entonces la instalo desde el centro. Si no estoy buscando en Google, es por eso que publiqué esta pregunta, y todas las respuestas fueron ver helpfull.Thanks
Gabriel
La opción 1 es mucho mejor que 3 y 4, porque puede obtener actualizaciones automáticamente. La opción 2 está bien cuando el paquete o la versión que desea no está en su repositorio (opción 1). Si es posible, evite los números 3 y 4 porque no aprovechan todos los maravillosos beneficios de la gestión de paquetes y pueden generar conflictos en el futuro. Aunque Autopackage hace su propia gestión de paquetes, sigue siendo un sistema separado y tiene el potencial de conflictos y cosas desactualizadas. Y, a menos que sea un programador, trate de evitar construir para la fuente. ¡La gestión de paquetes es algo maravilloso!
Scott Severance
Prefiero estos métodos solo porque mi conexión a Internet es lenta: p
Tachyons