Esta guía explica qué es Apk administrador de paquetes y cómo realizar varias operaciones de administración de paquetes de Alpine Linux utilizando el administrador de paquetes de línea de comando Apk con ejemplos.
Una breve introducción al administrador de paquetes apk
APK, significa A lpino P paquete K eeper, es el administrador de paquetes predeterminado para Alpine Linux. Se utiliza para instalar, actualizar, actualizar, buscar, enumerar y eliminar paquetes en un sistema Alpine Linux en ejecución. Apk es parte de apk-tools
paquete que viene preinstalado en todas las versiones de Alpine Linux.
Apk recupera paquetes, así como información sobre los paquetes disponibles en los repositorios en línea. Cada repositorio contiene un archivo de índice especial, llamado APKINDEX.tar.gz
. Todos los paquetes de software almacenados en un repositorio están firmados digitalmente tar.gz
archivo. Tienen la extensión .apk
, y a menudo se denominan "a-packs" .
A partir de la versión 3.3 de Alpine Linux, hay dos repositorios habilitados de forma predeterminada. Ellos son - main
y community
.
El [main]
El repositorio consta de paquetes probados minuciosamente y respaldados oficialmente por el equipo central de Alpine Linux. La [community]
El repositorio contiene los paquetes compatibles con la comunidad que se aceptan de [testing]
o [edge]
repositorio. El [testing]
repositorio suelen tener los paquetes nuevos, rotos y/o desactualizados. No se proporciona soporte para este repositorio y no está incluido en las instantáneas de la versión.
Todos los repositorios están configurados en /etc/apk/repositories
expediente. Echemos un vistazo al contenido de este archivo usando cat
comando:
$ cat /etc/apk/repositories
Salida de muestra:
https://sjc.edge.kernel.org/alpine/edge/main
https://sjc.edge.kernel.org/alpine/edge/community
Cada línea en el archivo anterior indica un repositorio. Como puede ver en el resultado anterior, he habilitado [edge]
repositorio, por lo que es una versión de lanzamiento continua.
Si está utilizando una versión estable, debería haber visto el número de versión, por ejemplo, v3.12
, como a continuación:
https://sjc.edge.kernel.org/alpine/v3.12/main
https://sjc.edge.kernel.org/alpine/v3.12/community
Ejemplos de comandos Apk para instalar y administrar paquetes en Alpine Linux
La administración de paquetes usando apk en Alpine Linux es bastante simple y directa. Apk no incluye muchas opciones y la sintaxis es más fácil de recordar.
El uso típico del administrador de paquetes apk es:
apk [<OPTIONS>...] COMMAND [<ARGUMENTS>...]
Permítame mostrarle algunos comandos importantes para las operaciones diarias.
1. Mostrar la ayuda del comando apk
Si es nuevo en apk, puede ver la sección de ayuda del comando apk en cualquier momento ejecutando este comando:
$ apk --help
apk tiene muchos subcomandos para realizar una operación específica. Para mostrar la sección de ayuda de un subcomando, ejecute:
$ apk add --help
2. Actualizar lista de paquetes en Alpine Linux
Para obtener la lista de paquetes disponibles en los repositorios de Alpine Linux, simplemente ejecute:
$ sudo apk upgrade
Salida de muestra:
fetch https://sjc.edge.kernel.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
fetch https://sjc.edge.kernel.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
v20201218-310-g44bdae590f [https://sjc.edge.kernel.org/alpine/edge/main]
v20201218-333-ga9f7a8a644 [https://sjc.edge.kernel.org/alpine/edge/community]
OK: 13780 distinct packages available
Como puede ver en el resultado anterior, actualmente hay 13780 paquetes disponibles en los repositorios de Alpine. Tenga en cuenta que estos no son el número total de paquetes instalados localmente, sino el número total de paquetes disponibles.
3. Instalar paquetes en Alpine Linux
Para agregar o instalar un paquete, por ejemplo vim , en Alpine Linux, simplemente ejecute:
$ sudo apk add vim
El comando anterior instalará vim y sus dependencias.
(1/3) Installing xxd (8.2.2137-r0)
(2/3) Installing lua5.3-libs (5.3.6-r0)
(3/3) Installing vim (8.2.2137-r0)
Executing busybox-1.32.0-r8.trigger
OK: 163 MiB in 87 packages
Del mismo modo, puede agregar varios paquetes al mencionarlos con un espacio como el siguiente:
$ sudo apk PackageName1 PackageName2
3.1. Instalar paquetes locales
Si ya ha descargado un paquete, puede instalarlo como se muestra a continuación.
$ sudo apk add --allow-untrusted vim-8.2.2137-r0.apk
También puede instalar varios paquetes:
$ sudo apk add --allow-untrusted PackageName1.apk PackageName2.apk PackageName3.apk
4. Eliminar paquetes en Alpine Linux
Para desinstalar o eliminar un paquete instalado de su sistema Alpine Linux, ejecute:
$ sudo apk del vim
Este comando eliminará vim y sus dependencias.
(1/3) Purging vim (8.2.2137-r0)
(2/3) Purging xxd (8.2.2137-r0)
(3/3) Purging lua5.3-libs (5.3.6-r0)
Executing busybox-1.32.0-r8.trigger
OK: 144 MiB in 84 packages
Si desea eliminar varios paquetes, menciónelos con espacios separados.
5. Buscar paquetes en Alpine Linux
Los repositorios de Alpine Linux contienen más de 13.000 paquetes. Puede listar todos los paquetes disponibles, junto con su descripción, usando el comando:
$ apk search -v
Salida de muestra:
kleopatra-20.08.3-r0 - Certificate Manager and Unified Crypto GUI
py3-libevdev-0.9-r0 - Python3 wrapper around the evdev library
telepathy-farstream-dev-0.6.2_git20190919-r0 - Telepathy GLib-based client library that uses Farstream to handle Call channels (development files)
vulkan-loader-1.2.137-r0 - Vulkan Installable Client Driver (ICD) Loader
mtd-utils-ubi-2.1.2-r0 - MTD utils (UBI and UBIFS commands)
hwids-udev-20201207-r0 - Hardware identification databases (udev integration)
py3-rsa-4.6-r0 - Pure-Python3 RSA implementation
[...]
Para mostrar solo el número total de paquetes, canalice la salida a wc
comando como a continuación:
$ apk search -v | wc -l
También puede obtener la lista de todos los paquetes que coinciden con un patrón. Por ejemplo, el siguiente comando mostrará todos los paquetes que coincidan con el término de búsqueda "vim".
$ apk search -v 'vim*'
Si solo desea mostrar los paquetes que contienen un término específico en su descripción , ejecuta:
$ apk search -v --description 'disk'
O, brevemente, use -d
cambiar:
$ apk search -v -d 'disk'
6. Mostrar detalles del paquete en Alpine Linux
Para mostrar los detalles de un paquete específico, podemos usar info
comando como a continuación:
$ apk info vim
Verá la pequeña descripción del paquete dado y su sitio web donde está alojado.
Salida de muestra:
vim-8.2.2137-r0 description:
Improved vi-style text editor
vim-8.2.2137-r0 webpage:
https://www.vim.org/
vim-8.2.2137-r0 installed size:
18 MiB
gvim-8.2.2137-r0 description:
advanced text editor, with GUI
gvim-8.2.2137-r0 webpage:
https://www.vim.org/
gvim-8.2.2137-r0 installed size:
29 MiB
Como puede ver, este comando no solo enumera los detalles del paquete vim, sino también los detalles de los otros paquetes que contienen el patrón "vim" en su nombre.
Si desea información detallada sobre el paquete dado y sus dependencias, use -a
bandera.
$ apk info -a vim
El comando anterior mostrará los siguientes detalles:
- descripción del paquete.
- sitio web del paquete.
- tamaño instalado (es decir, el tamaño requerido por el paquete después de instalarlo).
- el contenido del paquete (es decir, la lista de archivos que instala el paquete).
- dependencias de paquetes, es decir, qué paquetes se requieren para usar este.
- qué paquetes requieren que este esté instalado.
- y más.
7. Lista de paquetes instalados en Alpine Linux
Para ver la lista de todos los paquetes instalados en su sistema Alpine Linux, ejecute:
$ apk info
Salida de muestra:
lm_sensors
man
virtualbox-guest-modules-virt
musl
libcrypto1.1
libssl1.1
apk-tools
musl-utils
busybox
alpine-baselayout
[...]
También puede enumerar los paquetes instalados con su número de versión y descripción:
$ apk info -vv
Salida de muestra:
lm_sensors-3.4.0-r6 - Collection of user space tools for general SMBus access and hardware monitoring.
man-1.14.3-r0 - dummy package for upgrade compatibility. this can safely be removed
virtualbox-guest-modules-virt-4.14.167-r0 - VirtualBox Additions kernel modules for virt
musl-1.2.2_pre6-r0 - the musl c library (libc) implementation
libcrypto1.1-1.1.1i-r0 - Crypto library from openssl
libssl1.1-1.1.1i-r0 - SSL shared libraries
apk-tools-2.12.0-r3 - Alpine Package Keeper - package manager for alpine
musl-utils-1.2.2_pre6-r0 - the musl c library (libc) implementation
busybox-1.32.0-r8 - Size optimized toolbox of many common UNIX utilities
alpine-baselayout-3.2.0-r8 - Alpine base dir structure and init scripts
[...]
Enumere solo el número total de paquetes instalados:
$ apk info | wc -l
87
8. Paquetes de actualización en Alpine Linux
Para actualizar un paquete específico, ejecute:
$ sudo apk upgrade
$ sudo apk add -u vim
O,
$ sudo apk add --upgrade vim
Para actualizar todos los paquetes instalados, ejecute:
$ sudo apk upgrade
$ sudo apk upgrade
También puede combinar el comando anterior en uno como el siguiente:
$ sudo apk -U upgrade
9. Actualice Alpine Linux
¡Actualizar un Alpine Linux en ejecución a la próxima versión disponible es fácil! Alpine Linux viene en dos ediciones:
- estable
- liberación rodante (borde)
Puede actualizar de la versión estable actual a una versión más nueva o convertir una versión estable en una versión de lanzamiento continuo.
Instrucciones más detalladas están disponibles en la siguiente guía:
- Cómo actualizar Alpine Linux a la última versión
10. Retener un paquete de actualización
A veces, desea evitar o detener la actualización automática de un paquete por algún motivo al actualizar su sistema Alpine Linux. Puede haber muchas razones para retener un paquete. Por ejemplo, una aplicación requiere una versión particular para funcionar correctamente. O el nuevo paquete puede romper su sistema. Por lo tanto, desea ignorar que los paquetes se actualicen cuando actualice el sistema.
Para detener la actualización de un paquete específico, use cualquiera de los siguientes comandos:
$ sudo apk add vim=8.2.0-r0
O,
$ sudo apk add 'vim<8.2.1'
Y luego, actualice el sistema usando el comando:
$ sudo apk upgrade
Este comando actualizará todos los paquetes, pero mantendrá el paquete vim en la versión 8.2.0 o inferior.
Más tarde puede actualizar el paquete vim a la versión disponible actualmente como se muestra a continuación:
$ sudo apk add 'vim>8.2.1'
También puede usar la coincidencia de versiones "inexactas" para fijar la versión a una versión principal/secundaria. Por ejemplo, el siguiente comando coincidirá con cualquier versión de vim que comience con 8.2.
$ sudo apk add 'vim=~8.2'
Lectura relacionada:
- Cómo ignorar la actualización de un paquete en Arch Linux
- Cómo evitar que un paquete se actualice en Debian, Ubuntu
11. Descargar paquetes en Alpine Linux
A veces, desea descargar un paquete específico pero no desea instalarlo. Por ejemplo, descarguemos el paquete vim usando el comando:
$ apk fetch vim
El comando anterior mostrará el paquete vim de los repositorios de Alpine y lo guardará en el directorio actual.
$ ls
vim-8.2.2137-r0.apk
Si desea guardar el paquete en una ruta diferente, use -o
cambiar.
$ apk fetch vim -o ~/Downloads
Tenga en cuenta que este comando no descargará todas las dependencias requeridas sino solo el paquete real.
Para descargar el paquete dado junto con todas las dependencias requeridas, use -R
(--recursive
) bandera:
$ apk fetch -R vim
Salida de muestra:
Downloading xxd-8.2.2137-r0
Downloading ncurses-libs-6.2_p20201219-r0
Downloading musl-1.2.2_pre6-r0
Downloading lua5.3-libs-5.3.6-r0
Downloading vim-8.2.2137-r0
Downloading ncurses-terminfo-base-6.2_p20201219-r0
Puede instalar los paquetes descargados localmente como se muestra en 3.1. Instalar paquetes locales sección.
12. Mostrar los detalles del repositorio de un paquete
Es posible que desee encontrar de qué repositorio proviene un paquete. Apk también tiene un subcomando para eso.
Para mostrar el repositorio de un paquete (por ejemplo, vim
) se instaló y se actualizará desde, use apk policy
comando:
$ apk policy vim
Salida de muestra:
vim policy:
8.2.2137-r0:
lib/apk/db/installed
etc/apk/cache
https://sjc.edge.kernel.org/alpine/edge/main
Como puede ver, el paquete vim se instaló desde [main]
repositorio.
13. Mostrar estadísticas de paquetes y repositorios
Podemos imprimir las estadísticas sobre los paquetes instalados y los repositorios de paquetes usando el comando:
$ apk stats
Salida de muestra:
installed:
packages: 87
dirs: 485
files: 9617
bytes: 171270144
triggers: 5
available:
names: 30975
packages: 13773
atoms:
num: 9761
14. Limpiar caché de paquetes
De forma predeterminada, todos los paquetes instalados se almacenan en caché en /etc/apk/cache/
directorio. Cuando se agregan paquetes más nuevos a la memoria caché, las versiones anteriores de los paquetes permanecen de manera predeterminada.
Si no desea las versiones anteriores de los paquetes, simplemente puede borrar el caché del paquete usando el comando:
$ sudo apk cache clean
Si desea ver qué versiones se eliminan, use el modificador -v (detallado):
$ sudo apk -v cache clean
Si accidentalmente eliminó paquetes del caché, puede descargarlos usando el comando:
$ sudo apk cache download
También puede eliminar el caché y descargar el paquete faltante con un solo comando:
$ sudo apk cache -v sync
Espero que esto ayude.