Administradores de paquetes y dependencias
La mayoría de las distribuciones de Linux usan administradores de paquetes para la instalación y eliminación de software. Los administradores de paquetes brindan algunos beneficios, como la posibilidad de utilizar un repositorio central desde el cual (casi) se puede descargar cualquier pieza de software, la organización de piezas de software en paquetes que se pueden instalar como un grupo cohesivo y los principales beneficios: automático manejo de dependencias y seguimiento de los cambios que hacen los paquetes para que puedan desinstalarse.
Ciertas piezas de software pueden requerir ciertas bibliotecas u otros programas para realizar tareas que serían redundantes si se volviera a implementar en esa pieza de software. Los paquetes permiten la expresión de estas dependencias.
Diferencias: formatos y estrategias de paquetes
Existen varios gestores de paquetes diferentes. Cada uno fue creado porque los existentes no satisfacían las necesidades de algunas personas. Cada administrador de paquetes requiere paquetes en su propio formato.
Además, diferentes distribuciones tienen diferentes requisitos del software que se incluye. Hay una serie de piezas de software que pueden tener capacidades diferentes dependiendo de las opciones que se dan cuando se compila desde el código fuente en un ejecutable de la máquina. Algunas distribuciones desean proporcionar conjuntos de funciones completas y una experiencia rica, mientras que otras quieren proporcionar una experiencia lo más simple y simple posible, y hay todo lo que hay en el medio. Además, la distribución puede decidir formatear su estructura de directorio de manera diferente o usar un sistema init diferente. Pueden decidir agrupar el software de manera diferente: puede haber un paquete llamado "dev-utils" en dos distribuciones diferentes, pero una versión de eso incluyeyacc
mientras que el otro no. Debido a estas diferentes necesidades, las distribuciones eligen compilar el software de diferentes maneras.
Es por eso que incluso si tiene un paquete en el formato correcto para su administrador de paquetes, puede no funcionar si el paquete estaba destinado a una distribución diferente. Por ejemplo, ese paquete podría depender de yacc
su instalación, y expresó esa dependencia al requerir el paquete "dev-utils", pero sus "dev-utils" no incluyen yacc
. Ahora hay un paquete instalado con una dependencia insatisfecha.
No es realmente un problema.
Una gran parte de ser una distribución de Linux es mantener un repositorio central de software. La distribución se encarga de mantener todo esto para usted. En realidad, esto hace que sea muy fácil instalar software. Por lo general, usa el administrador de paquetes para buscar y seleccionar algunos paquetes, luego le dice que los instale; se encarga del resto por ti. El proceso de instalación del software de Windows incluye la búsqueda de software en sitios web de terceros, tratando de localizar el enlace de descarga apropiado, descarga, verificación de virus y ejecutar un programa de instalación que luego le hace un montón de preguntas irrelevantes. Todo ese desastre no es el estándar en Linux.
El repositorio no puede incluir todo
Ahora, puede haber casos en los que una pieza de software que necesita no está en el repositorio de su distribución. Los paquetes suministrados por un repositorio de software son una de las características diferenciadoras de las distribuciones. Cuando no puede encontrar el software que necesita en los repositorios de su distribución, hay tres vías posibles (realmente, dos más una forma de realmente arruinar las cosas).
Repositorios comunitarios
Muchas distribuciones tienen repositorios no oficiales que son mantenidos por personas no asociadas con la distribución. Ubuntu los llama PPA, Fedora los llama Repositorios de Personas Fedora. Arch Linux no tiene un nombre específico para repositorios de terceros , pero tiene su AUR, que es una colección de "recetas" para paquetes (nota: solo hay un AUR). Primero puede intentar instalar un paquete de una de estas fuentes, ya que es fácil desinstalarlos si no funcionan.
Compilar desde la fuente
Si no puede encontrar un repositorio no oficial con lo que necesita, compilar desde la fuente no es difícil. Necesita tener instalado el paquete de desarrollo de su distribución; Esto incluye cosas básicas como un compilador, un enlazador, un analizador y otras herramientas que generalmente se necesitan para compilar software. Luego encontrará el código fuente del proyecto (que casi siempre se empaqueta en un .tgz
o .tbz
(llamado "tarball"). Descárguelo en su propio directorio en algún lugar, extráigalo (usando tar -xf filename.tgz
, y generalmente vaya al único directorio que creó). ese directorio puede ser un archivo llamado README
o INSTALL
. Si existe, continúe y léalo; la mayoría de ellos le dicen que haga lo mismo. Los siguientes pasos se realizan en una línea de comando. Ejecute ls
y busque un archivo ejecutable llamadoconfigure
. Si existe, ejecútelo haciendo ./configure
; Puede tomar un par de minutos a veces. Por lo general, ejecuta algunas pruebas para determinar cómo su distribución tiene configuradas las cosas, y se asegura de que tenga las herramientas necesarias para compilar este software. El siguiente paso es correr make
. En realidad, esto compila el software, y es probable que tome algo de tiempo, desde unos minutos hasta horas, dependiendo del tamaño del software que está compilando. Una vez hecho eso, corres make install
. Esto instala el software, que implica copiar los productos de la compilación en los lugares apropiados de su sistema de archivos. Después de eso, el software está disponible para su uso.
Esta fue una sección larga, pero se resume como "README, ./configure, make, make install" . Esa es la rutina para recordar.
Instale un paquete desde otra distribución (no haga esto)
Enumero esto solo porque es una alternativa, pero es casi seguro que no terminará bien. Es posible instalar paquetes para otras distribuciones, y es posible que desee hacerlo. Pues no lo hagas. No lo haga hasta que comprenda muy bien su sistema. De hecho, no voy a poner ningún comando aquí que muestre cómo hacerlo, aunque sea posible. Si llega a ese punto donde parece que esta es la única opción, no instale el paquete usando el administrador de paquetes; en su lugar, extraiga las cosas del paquete y colóquelas en su sistema manualmente, junto con notas sobre lo que ha hecho para que pueda deshacerlo si es necesario.
El bit de línea de comando
Algunas personas prefieren la línea de comando por las ventajas que les brinda. Estos se pueden resumir en tres cosas:
- Facilidad de automatización.
- Velocidad (en comparación con hacer clic en todo el lugar en una interfaz gráfica de usuario)
- Expresividad
El más grande de estos es la expresividad; Hay cosas que se pueden hacer en una línea de comandos que no son posibles en una interfaz gráfica.
Finalmente, las instrucciones de la línea de comandos se dan con frecuencia en foros útiles como este porque es mucho más fácil transmitir la información correcta que dar instrucciones de tipo "haga clic aquí-luego-allí-luego-allí".
Las diferentes distribuciones tienen diferentes requisitos previos de instalación. Sin embargo, hay RPM o DEB (u otros paquetes para otros sistemas de administración de paquetes), que funcionan para más de una distribución. La filosofía de Linux hace que los códigos fuente estén fácilmente disponibles. Al compilar su propio software, es casi la misma rutina en todas las distribuciones, y siempre es el mismo
.tar.gz
archivo que usa.Los RPM compilados son más como parte del sistema; una aplicación en sí, como entidad independiente, debe distribuirse y compilarse en cada destino.
Su segunda pregunta es algo completamente diferente ... Bueno, "muchos usuarios de Linux" prefieren las aplicaciones CLI por muchas razones diferentes, la huella de memoria pequeña es solo una de las razones. Cuando se usa SSH, las aplicaciones CLI tienen más sentido, especialmente cuando se trabaja fuera del sitio en servidores. La mayoría de las veces, esos servidores no tienen instalados entornos gráficos. Cuando se ejecutan programas no demonizados, son muy fáciles de abortar. Ctrl- c, y el programa se fue. Además, muchos programas inician sesión en la consola, por lo que es más fácil de depurar. Al programar, estás haciendo la mayor parte de la compilación en la consola. Simplemente tiene más sentido para la depuración rápida de compilación. Es eso o leer archivos de registro, a veces, leer la consola es más rápido.
fuente
Arco. O FreeBSD, que se desarrolla como un todo. (RHEL, SLES y similares son $ upported en su conjunto).
Uso del portátil: menta
Hackabilidad utilizable: Arch.
Hackabilidad sádica: Genoo.
Hackability divertido: LFS.
Compatibilidad (servidor): RHEL, Ubuntu LTS, FreeBSD (diferente de Linux).
fuente