Seguramente te has preguntado más de una vez a qué paquete pertenece un determinado comando en Linux, especialmente cuando no lo tienes instalado y necesitas saber qué paquete te proporcionaría un determinado comando. Para resolver estas dudas tienes a tu disposición varias utilidades en función de la distro que estés utilizando.
En este artículo, voy a suponer que estoy buscando mysql
. Algunas herramientas nos permiten saber de qué paquete es originario un comando que ya está instalado. En otras ocasiones, algunas herramientas nos permiten obtener información del paquete de origen incluso si no está instalado en nuestro sistema.
Para RHEL y derivadas como Fedora o CentOS:
# Si el paquete ya está instalado usamos rpm rpm -qf $(which mysql) # También qué paquete creó un determinado fichero rpm -qf /etc/init.d rpm -qf /etc/my.cnf # Si el paquete aún no está instalado, para ver en qué paquete se encuentra yum provides mysql yum whatprovides mysql
Debian y derivadas (Ubuntu, Mint, ElementaryOS…):
# Si el paquete está instalado hacemos uso de dpkg o apt-file dpkg -S $(which mysql) apt-file search mysql # Si no está instalado, más facil aún ya que apt-get genera un aviso # de instalación con el nombre del paquete o paquetes en los que se encuentra mysql ---------------------------------------------------------------------------------------------- The program 'mysql' can be found in the following packages: * mysql-client-core-5.5 * mariadb-client-core-5.5 * mysql-client-core-5.6 * percona-xtradb-cluster-client-5.5 Try: apt-get install <selected package>
En OpenSUSE:
# Si ya está instalado utilizamos zypper zypper se --provides --match-exact mysql --------------------------------------------------------------------------------------------------------------- Loading repository data... Reading installed packages... S | Name | Summary | Type --+------------------------+---------------------------------------+-------- | mariadb | Server part of MariaDB | package | mysql-community-server | Server part of MySQL Community Server | package # Si no está instalado podemos utilizar cnf (Command Not Found) cnf mysql --------------------------------------------------------------------------------------------------------------- The program 'mysql' can be found in following packages: * mariadb-client [ path: /usr/bin/mysql, repository: zypp (openSUSE-13.2-0) ] * mariadb-client [ path: /usr/bin/mysql, repository: zypp (download.opensuse.org-oss_1) ] * mysql-community-server-client [ path: /usr/bin/mysql, repository: zypp (download.opensuse.org-oss_1) ] * mariadb-client [ path: /usr/bin/mysql, repository: zypp (download.opensuse.org-update_1) ] Try installing with: sudo zypper install <selected_package>
Para Arch Linux y de la familia como Manjaro o Antergos:
# En cualquier caso, recomendable visitar Pacman Rosetta # https://wiki.archlinux.org/index.php/Pacman_Rosetta # Y la documentación oficial de pkgfile, echad un vistazo a los hooks para automatizar # la búsqueda de paquetes de comandos no encontrados # https://wiki.archlinux.org/index.php/Pkgfile pkgfile mysql --------------------------------------------------------------------------------------------------------------- extra/bash-completion extra/mariadb-clients community/logwatch community/percona-server-clients
Con esto creo que se cubre un gran espectro de las distros Linux disponibles… ¡Suerte con vuestras búsquedas! 🙂