Está en la página 1de 20

Traducido del inglés al español - www.onlinedoctranslator.

com

17 – Gestión de paquetes, esta vez de verdad


CS 2043: herramientas y secuencias de comandos de Unix, primavera de 2019 [1]

Miguel Vargas-
Lombardo
Mateo Milano
4 de marzo de 2019

Universidad de Cornell
1
Tabla de contenido

1.Gestión de paquetes

2.Administradores de paquetes específicos del sistema

2
Gestión de paquetes
Descripción general de la administración de paquetes

• Si tuviera que darsolo una razonpor qué los sistemas Unix son
superiores a Windows: Gestión de paquetes.
• Puede instalar casi cualquier cosa con facilidad desde su terminal.
• Actualizar a la última versión con un solo comando.
• ¡No más descargas sin sentido del último instalador!

• Se pueden instalar varias herramientas instalando unpaquete.


• Un paquete contiene los archivos y otras instrucciones para configurar una
pieza de software.
• Muchos paquetes dependen unos de otros.
• Los administradores de paquetes de alto nivel descargan paquetes,
descubren las dependencias por usted y manejan grupos de paquetes.
• Los gerentes de bajo nivel desempaquetan paquetes individuales, ejecutan scripts
y hacen que el software se instale correctamente.

3
Muchas filosofías diferentes

• Paquetes binarios monolíticos: una gran "aplicación" con


todo incluido
• contenedores acoplables, la mayoría de los programas de Windows

• Paquetes binarios pequeños: separe el código común en


"bibliotecas" instaladas de forma independiente
• Archivos MSI, Ubuntu, la mayoría de Linux

• Paquetes basados en código fuente: ¡sin instaladores! Compila todos tus


programas
• administradores de paquetes basados en lenguaje, brew, portage

• Beneficios para todos los enfoques

• binario monolítico: instalación rápida, programas muy independientes


• binario pequeño: instalación muy rápida, menos espacio desperdiciado

• basado en fuente: código más rápido, instalación más pequeña, código


abierto fácil de usar
4
Administradores de paquetes en la naturaleza

• GNU/Linux:
• Bajo nivel: dos familias generales depaquetes binariosexiste:debutante, y
rpm.
• Administradores de paquetes de alto nivel con los que es probable que se encuentre:

• Debian/Ubuntu:apt-get, apto, aptitud.


• SUSE/OpenSUSE:cremallera
• Fedora:dnf (Fedora 22+) /mmm
• RHEL/CentOS:ñam (hasta que adoptendnf).
• Arco:pac-man
• Gentoo:Portage, emerge (mi favorito)

• Mac OS X:
• Existen otros, pero el único que debería usar eselaborar cerveza.
• No use otros (p. ej.Puerto),están desactualizados / EOSL.

5
Uso de administradores de paquetes

• Aunque la sintaxis de cada administrador de paquetes es diferente, los


conceptos son todos iguales.

• Esta conferencia se centrará enapto, dnf, emerger,yelaborar cerveza.


• LosdnfLos comandos son casi totalmente intercambiables con mmm,
por diseño.
• Tenga en cuenta queelaborar cervezaes un "copo de nieve especial", más sobre esto más adelante.

• ¿Qué te da tu administrador de paquetes? La habilidad para


• Instalar en pcnuevos paquetes que no tienes.
• retirarpaquetes que ha instalado.
• actualizarpaquetes instalados.
• actualizar las listas para buscar archivos/actualizaciones desde.
• vistadependenciasde un paquete dado.
• ¡¡¡mucho más!!!

6
Una nota sobreactualizar

• Estos “subcomandos” son por categoría, no por nombre:actualizarno


siempre se llamaactualizar
• LosactualizarEl comando tiene significados significativamente diferentes en diferentes

administradores de paquetes.

• Debe hacersenopor defecto a las actualizaciones del sistema (leer kernel de Linux).

• Fedora lo hace; la mayoría de los demás no lo hacen.

• Depende de su sistema operativo y administrador de paquetes.


• Conozca su sistema operativo y busque cuál es el comportamiento
predeterminado.

• Si su programa necesita una versión específica del kernel de Linux,


¡debe tener mucho cuidado!
• muy,muypocos programas se preocupan por la versión de su kernel.

7
Una nota sobre los nombres y sus significados

• Los nombres de los paquetes a veces especifican la arquitectura:

• [3456x]86(p.ej .i386o .i686ox86):


• Estos son los32 bitspaquetes
• x86_64oamd64:estos son los64 bitspaquetes
• noarca:estos son independientes de la arquitectura.
• Ubuntu/fedora a menudo divide los paquetes en partes más pequeñas:
• Los archivos de encabezado generalmente se llaman algo como:

• debutante:generalmente <paquete>-dev

• rpm:generalmente <paquete>-desarrollar

• La biblioteca con la que tendrá que enlazar:


• Si es aplicable,lib<paquete>o algo similar.
• Los archivos binarios (ejecutables), a menudo proporcionados por solo <paquete>.
• Más relevante paraCyC++,pero tambiénPitóny otros.
• Utilizar elbúsquedafuncionalidad de su administrador de paquetes.

8
Ejemplo de instalación de herramientas de desarrollo

• Si necesitaba compilar y enlazar contraXrandr (Biblioteca de tiempo de


ejecución X.Org X11 libXrandr) en ubuntu, tendría que instalar

• libxrandr2:la biblioteca.
• libxrandr-dev:los archivos de cabecera.
• Por lo general, no incluyen explícitamente la arquitectura (p. ej., .x86_64), se
infiere
• Si obtiene errores de enlace, intente instalar la versión explícita de 32/64
bits.

• simplemente busque en Google su error

• Dividir archivos de desarrollo más común parabinarioadministradores de

paquetes, menos para los basados en código fuente.

9
Administradores de paquetes específicos del sistema
Gestión de paquetes Debian/Ubuntu (apto)

• Instalación y desinstalación:
• Instalar un paquete:
apt install <paquete1> <paquete2> ... <paqueteN>
• Eliminar un paquete:
apt remove <paquete1> <paquete2> ... <paqueteN>
• Sólo unopaqueterequerido, pero puede especificar muchos.
• Los paquetes de "Grupo" están disponibles, pero siguen siendo el mismo comando.

• Actualización de componentes:

• Actualizar listas de paquetes disponibles:actualización adecuada.

• Sin argumentos, actualiza toda la lista (incluso si le das argumentos).

• Actualización de paquetes actualmente instalados:actualización apta.

• Especifique unpaquetename para actualizar/actualizar solo ese paquete.

• Actualizar núcleo (incl. kernel):apt dist-actualización.

• Búsqueda de paquetes:
• Comando diferente:búsqueda apt-cache <pkg> 10
Administradores de paquetes RHEL/Fedora (mmmydnf)

• Instalación y desinstalación:
• Instalar un paquete:
dnf install <paquete1> <paquete2> ... <paqueteN>
• Eliminar un paquete:
dnf eliminar <paquete1> <paquete2> ... <paqueteN>
• Sólo unopaqueterequerido, pero puede especificar muchos.
• Los paquetes de "Grupo" están disponibles, pero diferentes comandos:

• dnf groupinstall 'Nombre del grupo de paquetes'


• Actualización de componentes:

• Actualizar TODO:actualización dnf.


• actualizarexiste, pero es esencialmentepotenciar.
• Especifique unpaquetename para actualizar solo ese paquete.

• Actualización de listas de repositorios:actualización de verificación dnf


• Búsqueda de paquetes:
• Mismo comando:búsqueda dnf <paquete>

• mmmydnf (Dandified Yum)casi intercambiable: [2]. 11


administrador de paquetes Gentoo (porteoconsurgir)

• basado en fuentesadministrador de paquetes: compila tus paquetes


• simplemente ejecuta un especialintentoscript para compilar

• control muy, muy detallado sobre dependencias y características


• ¡utilice el último software especializado para su hardware!

• UTILIZAR flags control funciones especiales "opcionales"

• serían paquetes separados en ubuntu


• QuererJavaoemacs¿integración? USO = "java emacs..."
• Instalación, desinstalación y actualización
• surgirpaquete a instalar
• emerge -v --depcleanpara eliminar
• verifica explícitamente para asegurarse de que otros paquetes no lo necesiten primero

• emerge -uND @mundopara actualizar todo


• los indicadores son "actualizar", "nuevo uso" (si activó una función),
"profundo" (también verifique las dependencias para estas cosas)

12
Cuentos de advertencia

• ADVERTENCIA:si instalas el paqueteY,que instalaXcomo una


dependencia, y luegoeliminar Y
• A vecesXserá eliminado inmediatamente!
• A vecesXse eliminará durante una operación de limpieza posterior

• ¿Solución?
• Básicamente,preste atención a su administrador de paquetes.
• Instale paquetes explícitamente que necesite
• Verifique las listas de paquetes cuando retire cosas

• ¿Por qué sucede esto en absoluto?


• Linux divide las cosas en dependencias: evita muchas copias
adicionales
• Efecto secundario: las dependencias sonvisiblepara ti; puedes usar
directamente
• En windows: las dependencias sonoculto
13
La gestión de paquetes es una filosofía central

• La mayor parte de lo que hace a un Linuxdistribuciónes su administrador de paquetes

• Refleja la filosofía de Distribución


• Ubuntu: “simplemente trabaja” y no pienses demasiado
• Fedora: "todo lo último" pero mantenlo estable+no demasiado difícil
• Arch: Quiero entender cómo funciona mi distribución.
• Gentoo: yohacerentender cómo funciona mi distribución.

14
Si estás pensando en instalar Linux, por cierto…

• Ubuntu
• Beneficios: fácil instalación, configuración lista para usar, las cosas comunes

"simplemente funcionan"

• Inconvenientes: demasiada magia; Los scripts de "simplemente funcionan" del sistema se

rompen si necesita hacer demasiadas cosas poco comunes y no tiene mucho cuidado

• Fedora
• Beneficios: sigue siendo bastante fácil de instalar, muchas cosas buenas para "comenzar rápidamente".

Bueno en una máquina virtual también

• Inconvenientes: un poco menos estable; puede cambiar cosas profundas del sistema,
pero tampoco es difícil romper su sistema de esa manera.

15
Si estás pensando en instalar Linux, por cierto…

• Arco
• Beneficios: riqueza de conocimiento, realmente te ayuda a entenderpor qué
su sistema funciona y lo que lo hace funcionar
• Inconvenientes: automagia limitada. Se necesita tiempo real para configurar las
cosas o cambiar cosas importantes.

• Gentoo
• Beneficios: similar a Arch, más el administrador de paquetes Portage
basado en fuente es oro puro. Genial si está haciendo un trabajo serio de
programación/sistemas, o si realmente necesita algo de github que se
lanzó la semana pasada, o si tiene un entorno limitado. Gran manera de
aprender realmente Linux.
• Inconvenientes: absolutamente ninguna automagia. Lleva mucho tiempo configurar
las cosas, la compilación lleva mucho tiempo, todos los documentos creen que
sabes lo que estás haciendo.

dieciséis
Referencias

[1] Stephen McDowell, Bruno Abrahao, Hussam Abu-Libdeh, Nicolas


Savva, David Slater y otros a lo largo de los años. “Diapositivas
del curso anterior de Cornell CS 2043”.

[2] Jack Wallen.Lo que necesita saber sobre el cambio de Fedora


de Yum a DNF.2015. URL: https://www.linux.com/learn/
tutorials/838176-what-youneed-to-know-about-fedoras-
switch-from-yum-to-dnf.

17

También podría gustarte