Cómo instalar y eliminar paquetes usando DNF
DNF (Dandified YUM) se puede considerar como la versión actualizada de la utilidad YUM. La utilidad DNF es mucho mejor que otros administradores de paquetes cuando se trata de uso de memoria, uso de CPU y varios otros factores relacionados con el rendimiento.
En este tutorial, analicemos cómo usar la herramienta de administración de paquetes dnf para instalar y eliminar paquetes con ejemplos.
Cómo instalar paquetes
Antes de comenzar a instalar paquetes, es prudente buscar y verificar si el paquete está disponible. Hacemos esto usando la opción ‘buscar’ como se muestra a continuación.
dnf search package-name
En este ejemplo, buscamos si el paquete httpd está disponible para su instalación.
dnf search httpd
Salida de muestra
# dnf search httpd Last metadata expiration check: 0:15:31 ago on Sun 04 Feb 2018 02:36:58 PM UTC. ===================================================================== Name Exactly Matched: httpd ====================================================================== httpd.x86_64 : Apache HTTP Server ==================================================================== Summary & Name Matched: httpd ===================================================================== radicale-httpd.noarch : httpd config for Radicale drupal8-httpd.noarch : HTTPD integration for drupal8 owncloud-httpd.noarch : Httpd integration for ownCloud openqa-httpd.noarch : openQA httpd (Apache) integration iipsrv-httpd-fcgi.noarch : Apache HTTPD files for iipsrv nextcloud-httpd.noarch : Httpd integration for NextCloud libmicrohttpd-doc.noarch : Documentation for libmicrohttpd anyterm-httpd.x86_64 : Httpd proxy configuration for anyterm gambas3-gb-httpd.x86_64 : Gambas3 component package for httpd mingw32-libmicrohttpd.noarch : MinGW package for libmicrohttpd mingw64-libmicrohttpd.noarch : MinGW package for libmicrohttpd libmicrohttpd-devel.i686 : Development files for libmicrohttpd libmicrohttpd-devel.x86_64 : Development files for libmicrohttpd httpdtap.noarch : Tool for querying httpd using SystemTap scripts
En la salida anterior, se resaltan todas las posibilidades del paquete httpd.
Para instalar un paquete, inicie sesión como usuario root y ejecute el siguiente comando. En este ejemplo, estamos instalando el servidor web Apache.
$ sudo dnf install httpd
Cómo instalar paquetes desde un repositorio específico
Con el comando DNF también podemos elegir un repositorio específico para la instalación de un paquete. Primero veamos los repositorios disponibles instalados en nuestro sistema Fedora 27 ejecutando el siguiente comando.
dnf repolist
Producción
Last metadata expiration check: 0:56:19 ago on Sun 04 Feb 2018 02:36:58 PM UTC. repo id repo name status *fedora Fedora 27 - x86_64 54,801 *updates Fedora 27 - x86_64 - Updates 10,909
Instalemos ahora un paquete llamado nano desde el repositorio * fedora.
$ sudo dnf --enablerepo=*fedora install nano
Cómo eliminar paquetes
DNF también le brinda la posibilidad de eliminar paquetes que ya no necesita en su computadora. Similar al comando de instalación, todo lo que necesita hacer es identificar el paquete y luego ejecutar el comando en su terminal:
$ sudo dnf remove httpd
Después de esto, se eliminarán los paquetes relacionados con httpd.
Nota: Alternativamente, podemos usar la opción ‘borrar’ en lugar de eliminar, lo que también desinstalará los paquetes del sistema.
dnf erase httpd
El comando anterior elimina todos los paquetes relacionados con httpd y el resultado será el mismo.
Cómo eliminar todos los paquetes de un repositorio seleccionado
Para eliminar todos los paquetes de un repositorio en particular, primero necesitamos obtener su ID de repositorio. Para hacer eso, ejecutamos el siguiente comando
dnf -v repolist
Salida de muestra
Last metadata expiration check: 0:16:19 ago on Thu 08 Feb 2018 11:11:11 AM EAT. Repo-id : fedora Repo-name : Fedora 27 - x86_64 Repo-revision: 1509861107 Repo-updated : Sun 05 Nov 2017 08:51:47 AM EAT Repo-pkgs : 54,801 Repo-size : 57 G Repo-metalink: https://mirrors.fedoraproject.org/metalink?repo=fedora-27&arch=x86_64 Updated : Thu 08 Feb 2018 11:11:11 AM EAT Repo-baseurl : http://mirror.liquidtelecom.com/fedora/fedora/linux/releases/27/Everything/x86_64/os/ (9 more) Repo-expire : 604,800 second(s) (last: Thu 08 Feb 2018 11:11:11 AM EAT) Repo-filename: /etc/yum.repos.d/fedora.repo Repo-id : updates Repo-name : Fedora 27 - x86_64 - Updates Repo-revision: 1518007515 Repo-updated : Wed 07 Feb 2018 04:11:08 PM EAT Repo-pkgs : 11,334 Repo-size : 21 G Repo-metalink: https://mirrors.fedoraproject.org/metalink?repo=updates-released-f27&arch=x86_64 Updated : Thu 08 Feb 2018 11:10:29 AM EAT Repo-baseurl : http://mirror.wbs.co.za/fedora-enchilada/updates/27/x86_64/ (246 more) Repo-expire : 21,600 second(s) (last: Thu 08 Feb 2018 11:10:29 AM EAT) Repo-filename: /etc/yum.repos.d/fedora-updates.repo Total packages: 66,135
Como puede ver en el resultado anterior, tenemos 2 repo-ids -fedora y actualizaciones.
Ahora puede proceder a eliminar todos los paquetes de un repositorio específico usando el siguiente comando
dnf repository-packages repo-id remove
Por ejemplo, si queremos eliminar todos los paquetes de fedora repositorio que ejecutamos
dnf repository-packages fedora remove
Aquí, fedora es el repo-id.
Nota:
Para los identificadores de repositorios principales, recibirá una alerta en la terminal de que algunos paquetes están protegidos por el sistema. p.ej
dnf repository-packages fedora remove
Salida de muestra
Problem 1: The operation would result in removing the following protected packages: dnf, kernel-core, systemd, systemd-udev Problem 2: The operation would result in removing the following protected packages: dnf, kernel-core, systemd, systemd-udev Problem 3: The operation would result in removing the following protected packages: dnf, kernel-core, systemd, systemd-udev Problem 4: The operation would result in removing the following protected packages: dnf, kernel-core, systemd, systemd-udev
Cómo enumerar y eliminar paquetes
Puede utilizar el comando dnf list para obtener una lista de los paquetes instalados y disponibles.
Para generar una lista de paquetes instalados, ejecute el siguiente comando:
$ sudo dnf list installed | cat -n
El argumento ‘cat -n’ se usa para numerar los paquetes en la salida del terminal.
Salida de muestra
1 Last metadata expiration check: 1:22:04 ago on Sun 04 Feb 2018 02:36:58 PM UTC. 2 Installed Packages 3 GeoIP.x86_64 1.6.11-3.fc27 @anaconda 4 GeoIP-GeoLite-data.noarch 2017.10-1.fc27 @anaconda 5 acl.x86_64 2.2.52-18.fc27 @anaconda 6 apr.x86_64 1.6.3-1.fc27 @updates 7 apr-util.x86_64 1.6.1-2.fc27 @updates 8 audit.x86_64 2.7.8-1.fc27 @anaconda 9 audit-libs.x86_64 2.7.8-1.fc27 @anaconda 10 audit-libs-python3.x86_64 2.7.8-1.fc27 @anaconda 11 basesystem.noarch 11-4.fc27 @anaconda 12 bash.x86_64 4.4.12-12.fc27 @anaconda 13 bind99-libs.x86_64 9.9.11-2.fc27 @anaconda 14 bind99-license.noarch 9.9.11-2.fc27 @anaconda 15 bzip2.x86_64 1.0.6-24.fc27 @anaconda 16 bzip2-libs.x86_64 1.0.6-24.fc27 @anaconda 17 c-ares.x86_64 1.13.0-3.fc27 @anaconda
Sin embargo, si desea enumerar los paquetes disponibles para la instalación, ejecute el siguiente comando:
$ sudo dnf list available | cat -n
Nuevamente, el argumento ‘cat -n’ se usa para numerar los paquetes en la salida del terminal.
Salida de muestra
1 Last metadata expiration check: 0:08:29 ago on Mon 05 Feb 2018 02:04:09 PM EAT. 2 Available Packages 3 0ad.x86_64 0.0.22-2.fc27 fedora 4 0ad-data.noarch 0.0.22-1.fc27 fedora 5 0install.x86_64 2.12.1-1.fc27 fedora 6 0xFFFF.x86_64 0.3.9-15.fc26 fedora 7 2048-cli.x86_64 0.9.1-4.fc27 fedora 8 2048-cli-nocurses.x86_64 0.9.1-4.fc27 fedora 9 2048-cli-sdl.x86_64 0.9.1-4.fc27 fedora 10 2ping.noarch 4.1-1.fc27 fedora 11 389-admin.i686 1.1.46-1.fc27.3 fedora 12 389-admin.x86_64 1.1.46-1.fc27.3 fedora 13 389-admin-console.noarch 1.1.12-3.fc27 fedora 14 389-admin-console-doc.noarch 1.1.12-3.fc27 fedora 15 389-adminutil.i686 1.1.23-4.fc27 fedora
Opción de eliminación automática
La opción ‘autoremove’ se utiliza para desinstalar paquetes que se instalaron inicialmente como dependencias de paquetes instalados pero que ya no son necesarios para dichos paquetes. Para desinstalar las dependencias, ejecute el siguiente comando:
$ dnf autoremove
Gracias por leer y comparta sus sugerencias y pensamientos en la sección de comentarios a continuación.
Leer también: