En Ubuntu 11.04 o 10.04, ¿cómo puedo hacer apt-get
todo apt-cache
en uno myapt
para poder usar uno solo, como en Fedora?
Por ejemplo:
myapt search yum # same as apt-cache search
myapt remove yum # same as apt-get remove
myapt install yum # same as apt-get install
¿Alguna idea de cómo hacer un alias para esto?
Respuesta1
Podrías crear un script con el siguiente contenido.
#!/bin/bash
command="$1"; shift
case $command in
add|depends|dotty|dump|dumpavail|gencaches|madison|pkgnames|policy|rdepends|search|show|showpkg|showsrc|stats|unmet|xvcg)
apt-cache "$command" "$@"
;;
autoclean|autoremove|build-dep|check|clean|dist-upgrade|dselect-upgrade|install|purge|remove|source|update|upgrade)
apt-get "$command" "$@"
;;
esac
Supongamos que lo llamas myapt
. Luego, para seguir teniendo el beneficio de completar bash, debe agregar las siguientes líneas a ~/.bashrc
:
_myapt() {
_apt_get
tt=("${COMPREPLY[@]}")
_apt_cache
COMPREPLY+=("${tt[@]}")
return 0
} &&
complete -F _myapt $filenames myapt
Desafortunadamente, $command
debería preceder a cualquier opción, pero parece que la finalización de bash no funciona para las opciones que siguen al comando.
Respuesta2
No estoy seguro de que puedas usar un alias para eso, pero puedes usar bash para crear un script.
Ahora bien, no soy un scripter de bash, por lo que no podría decirte el código exacto para lograrlo, pero lo que podrías hacer es algo como(Esto es solo pseudocódigo, más o menos, ¡¡¡así que no esperes que funcione!!!):
var action
var input
get action, input
if action == search
then do apt-cache search input
if action == remove
then do apt-get remove input
if action == install
then do apt-get install input
Tenga en cuenta que puede escribir el script (o incluso una aplicación compilada) en cualquier idioma con el que se sienta cómodo, como Python o Ruby, por ejemplo, no tiene que ser bash.
Nuevamente, recuerda que mi ejemplo es solopseudocódigo.