instalar muchas aplicaciones por terminal [SOLUCIONADO]

Todo lo relacionado con la elección e instalación de las diferentes distribuciones y los problemas que se presentan durante el proceso.

Moderadores: doc, mcun

Avatar de Usuario
doc
Forista Ancestral
Forista Ancestral
Mensajes: 3477
Registrado: Mié Ago 11, 2010 10:32 am
Ubicación: Oviedo-es_ES
Contactar:

instalar muchas aplicaciones por terminal [SOLUCIONADO]

Mensaje por doc »

recuerdo que hace un tiempo Niky (como no podía ser otra) puso unos comandos para listar las aplicaciones instaladas en Debian, y luego creo recordar que esa lista se metía en un 'aptitude install', o algo así, y se podía instalar todo de golpe, por consola. Pero no encuentro el thread por ninguna parte. ¿alguien lo recuerda, o me 'refresca' cómo era esto?

(Objetivo: un día de estos quiero reinstalar desde cero mi Debian, en el que ya llevo más de un año actualizando cosas y trasteando un poco (lo tengo apuntando a testing, pero he hecho algunas incursiones por la rama sid, e incluso por la experimental) y así me queda 'nikelao' para otra temporadita, con el kernel 3.0.0.amd64, el libreoffice por defecto, etc, y quiero evitar el coñazo de andar instalando una a una, con Synaptic, las aplicaciones que suelo añadir. Creo que, como decía al principio, hay una recetilla para meterlas todas a la vez, por terminal ¿no?

¿o es contraproducente meter todas de golpe, con aptitude o con apt-get? (son unas 20 o 25, del tipo aMule, qBittorrent, pdf-shuffler, Avidemux, OpenShot, DeVeDe, Audacity, Gparted, Stellarium, alarmclock, unetbootin, etc, etc)
Última edición por doc el Mar Sep 27, 2011 1:51 am, editado 1 vez en total.

Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1817
Registrado: Dom Oct 10, 2004 7:00 am

Re: instalar muchas aplicaciones por terminal

Mensaje por neurus »

Hay varias (muchísimas) maneras, dependiendo de qué exactamente estés buscando.

Por ejemplo:

sudo dpkg --get-selections > lista.txt
Te arma una lista de todos los paquetes instalados en el sistema. Si quieres tener lo mismo en otra instalación, te llevas el archivo "lista.txt" y lo cargas:

sudo dpkg --set-selections < lista.txt

Y tienes ahora todos los paquetes cargados en la instalación nueva (sólo sus nombres, claro, no los paquetes en sí). Pero la gracia es que ahora puedes usar dselect (normalmente, hace falta instalarlo) :

sudo apt-get -y update && sudo apt-get -y dselect-upgrade

Como la lista de paquetes está cargada, esta orden "actualiza" los paquetes -que en realidad no están en la máquina- bajándolos e instalándolos.

########################################################

Si la lista, en cambio, es más acotada y la armaste a mano, puedes usar simplemente cat. Digamos que el archivo lista.txt tiene esto:

Código: Seleccionar todo

mplayer iceweasel gedit rox-filer alsamixer
Lo usas así:

sudo apt-get install `cat lista.txt`


Por último, de contraproducente no tiene nada. Es, al fin y al cabo, lo mismo que hace el cd de instalación cuando le ordenas instalar ciertos paquetes. Yo hago mis instalaciones así, desde una minimal, siempre. El único detalle, que supongo que no ignoras, es que la velocidad de instalación dependerá de tu conexión.
Última edición por neurus el Lun Sep 26, 2011 8:54 pm, editado 1 vez en total.

Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: instalar muchas aplicaciones por terminal

Mensaje por niky45 »

ya neurus te ha dicho varias maneras, pero por si quieres tirar exclusivamente de aptitude (del que como ya sabes, soy fan absoluta), te dejo mi guia de aptitude, donde encontraras alguna referencia a lo que buscas.

quiza tambien necesites un poquito de scripting. :? si es asi, y te lias, avisa.

http://man-linux.comli.com/?p=201

:D

*nota: tu hazle caso a neurus, que de esto sabe mas que yo. (y te lo digo yo :jokingly: )
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]

Avatar de Usuario
doc
Forista Ancestral
Forista Ancestral
Mensajes: 3477
Registrado: Mié Ago 11, 2010 10:32 am
Ubicación: Oviedo-es_ES
Contactar:

Re: instalar muchas aplicaciones por terminal

Mensaje por doc »

estupendo, neurus, esto es lo que quería. Gracias.

Unas preguntitas, antes de ponerle el 'solucionado': a ver, con

Código: Seleccionar todo

sudo dpkg --get-selections > lista.txt
me he creado, en la raiz, el listado de toooodos los paquetes que tengo instalados. Como yo hago una instalación 'estandar' (nada de netinstall minimal y cosas de esas, no me gusta meterme en líos) la mayor parte de estos paquetes (y aplicaciones) se me instalarán 'por defecto'. Entonces (digo yo) si en ese archivo borro todo menos aquellas aplicaciones que se que las había tenido que instalar 'a posteriori' (del tipo de las que indiqué antes), obtendré una 'lista_restringida.txt' que si aplico lo que dices de
1º: cargar la lista en la nueva instalación:

Código: Seleccionar todo

sudo dpkg --set-selections < lista_restringida.txt 
2º: instalar esos paquetes con

Código: Seleccionar todo

sudo apt-get install `cat lista_restringida.txt`
se me instalarán ¿no?

Pero tengo una pregunta derivada: veo que algunas aplicaciones tienen varios paquetes, por ejemplo...

Código: Seleccionar todo

avidemux					install
avidemux-common					install
avidemux-plugins				install
y me pregunto... ¿tengo que incluirlos todos, o con el primero basta, porque ya me buscará apt-get (¿o quizás mejor 'aptitude'?) las dependencias. (Lo digo porque si están juntos, vale, los identifico bien, pero si además avidemux necesita unas librerías que vete tu a saber que libxxxx son, me meto en un lío importante al confeccionar la 'lista_restringida.txt' ¿no?.

(y otra idea colateral: si cargo y doy a instalar "la lista completa", lista.txt? donde la mayoría de los paquetes ya estarán instalados 'por defecto' (de la instalación 'estandar' que habré hecho de Debian)... ¿pasa algo por que se reinstalen?

Bueno, Niky, ya veo que has aportado ideas, ahora las reviso, pero antes doy al 'Enviar' con mis dudas a las ideas de neurus.
Y gracias igualmente.

Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1817
Registrado: Dom Oct 10, 2004 7:00 am

Re: instalar muchas aplicaciones por terminal

Mensaje por neurus »

Fíjate que son dos métodos distintos. El primero, con dselect (el que utiliza --set-selections y --get-selections).

El otro, usando cat `lista.txt`, lo puedes usar tanto con apt-get como con aptitude, habiendo armado de antemano el archivo lista.txt. Es recomendable aptitude, por la resolución de dependencias (aunque con apt-get podrías obtener el mismo resultado, pero no viene al caso).

Por otra parte, en el primer método, a menos que haya paquetes que específicamente no quieras instalar, no tiene mucho sentido eliminar los ya instalados. Porque al hacer dpkg --set-selections < lista.txt ; simplemente le estás pasando al archivo status (/var/lib/dpkg/status , dale una mirada) el estado "install" a esa lista de paquetes. Como en la siguiente actualización, dpkg detectará que esos paquetes están instalados, pero al chequear las versiones detectará que los paquetes no están el en disco, lo que hará será descargar los archivos que faltan e instalarlos como si le hubieras ordenado instalar, directamente.

Por si no queda claro: los paquetes que realmente están instalados, no sufrirán cambios (o, a lo sumo, se actualizarán al hacer el upgrade, como siempre). Los paquetes que no están realmente instalados, pero a los cuales les has modificado el status mediante dpkg --set-selections <lista.tx, aparecerán como instalados sin estarlo. Para salvar esa incoherencia, en la siguiente actualización dselect los instala. Es el método recomendado por los desarrolladores para trasladar listas de paquetes de una instalación a otra.

De eso se trata la primera opción, que termina (acabo de editarlo para más claridad, en la línea de almohadillas).

Y si quieres armar la lista con --get-selections y luego utilizarla como lista "armada a mano", deberías quitarle el estado a los paquetes (install, deinstall...), para no sufrir errores con apt-get o aptitude. Así:

cat lista.txt|cut -f1 >nuevalista.txt

Esto último, aclaro, para el caso de que quieras usar esa lista con el método sudo aptitude -y install `cat nuevalista.txt`


Finalmente, sin ánimos de volverte loco, mira la guía de aptitude que te pasó Niky, porque está muy bien armada y puede darte alguna idea. Como esto es algo que realmente puede hacerse de muchísimas formas, no descartaría que se te ocurriera una alternativa no escrita aquí.

Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: instalar muchas aplicaciones por terminal

Mensaje por niky45 »

solcuion rapida a tu ultima pregunta: para instalar solo lo que no te instala un sistema base, instala uno, y crea una lista (imagino que habra una forma mas limpia de hacer esto, peor en fin.. voy con prisa). despues pasale un diff a las dos listas, y voila. tienes una lista con todo lo que has instalado tu.

y si intentas instalar un paquete que ya esta instalado, lo mas probable es que no pase nada (aptritude dice que ya esta instalado y listo), pero si hay una nueva version (aka, si no tienes actualziado tu sistema). simplemente lo actualizara. (ESE paquete, no todo el sistema)

*nota: hablo de aptitude. ni idea de como se comporta apt-get (igual, pero no se si actualizara)

:)
neurus escribió:Finalmente, sin ánimos de volverte loco, mira la guía de aptitude que te pasó Niky, porque está muy bien armada y puede darte alguna idea. Como esto es algo que realmente puede hacerse de muchísimas formas, no descartaría que se te ocurriera una alternativa no escrita aquí.
whoa, gracias. :roll:
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]

Avatar de Usuario
doc
Forista Ancestral
Forista Ancestral
Mensajes: 3477
Registrado: Mié Ago 11, 2010 10:32 am
Ubicación: Oviedo-es_ES
Contactar:

Re: instalar muchas aplicaciones por terminal

Mensaje por doc »

bueno pues mezclando las ideas de Niky y neurus, me he confeccionado esta 'lista_aplicaciones.txt' (Pregunta: ¿o hay que borrar eso de 'install'...?

Código: Seleccionar todo

alarm-clock					install
amule						install
amule-common					install
amule-utils					install
audacity					install
audacity-data					install
avidemux					install
avidemux-common					install
avidemux-plugins				install
avifile-divx-plugin				install
camorama					install
clamav						install
clamav-base					install
clamav-freshclam				install
computertemp					install
debian-multimedia-keyring			install
deborphan					install
devede						install
dvdauthor					install
easymp3gain-gtk					install
epiphany					install
epiphany-browser				install
epiphany-browser-data				install
epiphany-data					install
epiphany-extensions				install
ffmpeg						install
flashplugin-nonfree				install
fuse-utils					install
gnash						install
gnash-common					install
gnome-mastermind				install
gparted						install
gstreamer0.10-alsa				install
gstreamer0.10-ffmpeg				install
gstreamer0.10-fluendo-mp3			install
gstreamer0.10-lame				install
gstreamer0.10-nice				install
gstreamer0.10-plugins-bad			install
gstreamer0.10-plugins-base			install
gstreamer0.10-plugins-good			install
gstreamer0.10-plugins-ugly			install
gstreamer0.10-pulseaudio			install
gstreamer0.10-tools				install
gstreamer0.10-x					install
gtkorphan					install
gzip						install
hardinfo					install
hddtemp						install
icedove						install
icedove-l10n-es-es				install
iceweasel					install
iceweasel-l10n-es-es				install
isomaster					install
klamav						install
lm-sensors					install
localepurge					install
locales						install
mediainfo-gui					install
mencoder					install
mp3gain						install
multisystem					install
nautilus-actions				install
nautilus-data					install
nautilus-gksu					install
nautilus-image-converter			install
nautilus-open-terminal				install
nautilus-sendto					install
nautilus-sendto-empathy				install
ntfs-3g						install
openshot					install
openshot-doc					install
openssh-blacklist				install
openssh-blacklist-extra				install
openssh-client					install
openssl						install
os-prober					install
oxygen-icon-theme				install
p7zip-full					install
p7zip-rar					install
pdfshuffler					install
pulseaudio					install
pulseaudio-esound-compat			install
pulseaudio-module-x11				install
pulseaudio-utils				install
qbittorrent					install
screenlets					install
sensord						install
shotwell					install
soundconverter					install
startupmanager					install
stellarium					install
stellarium-data					install
sudo						install
unetbootin					install
unetbootin-translations				install
unzip						install
virtualbox-4.0					install
w64codecs					install
entonces,
1º instalo mi debian testing (estandar, con el CD1 y una buena conexión a internet)
2º cargo la lista con

Código: Seleccionar todo

sudo dpkg --set-selections < lista_aplicaciones.txt 
3º Mando que se instalen estas aplicaciones, con

Código: Seleccionar todo

sudo aptitude install `cat lista_aplicaciones.txt`
(¿o es con sudo aptitude -y install `cat lista_aplicaciones.txt`...?)

4º ¿Y ya está...? :?: :?:
(bueno, supongo que todo será cuestión de probarlo... a ver si la próxima semana, que quedo más libre, me meto con ello)

Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1817
Registrado: Dom Oct 10, 2004 7:00 am

Re: instalar muchas aplicaciones por terminal

Mensaje por neurus »

De nuevo: estás mezclando dos procedimientos diferentes.

1) Si cargas la lista con dpkg --set-selections <lista.txt, lo que sigue es sudo apt-get -y update && sudo apt-get -y dselect-upgrade (y probablemente debas instalar antes dselect).

2) Si, en cambio, prefieres hacerlo vía aptitude, entonces sí, le quitas "install": cat lista.txt|cut -f1 >nuevalista.txt. O mejor, por si acaso, también quitar los saltos de línea: tr \\n :blank: <nuevalista.txt > listaapt.txt.



Y ahora sí: aptitude -y install `cat listaapt.txt`

Insisto: son dos procedimientos diferentes. Tal como lo estás enunciando acá arriba, no funcionaría. O tal vez funcionaría a medias. La verdad es que no me atrevo a predecir el resultado con esa mezcla de comandos. O haces una cosa, o la otra. No la mitad de una y la mitad de otra.
Última edición por neurus el Mar Sep 27, 2011 12:44 am, editado 1 vez en total.

Avatar de Usuario
EnriqueK
Forista Medio
Forista Medio
Mensajes: 367
Registrado: Dom Sep 16, 2007 7:00 am

Re: instalar muchas aplicaciones por terminal

Mensaje por EnriqueK »

Va a tomar a "install" como un paquete a instalar, esto va a causar una demora apreciable ya que verificará cada vez que encuentre a install , por lo que tienes que eliminarlos si es que quieres usar Aptitude.
Yo aplico estos comandos para usarlo con Aptitude
1.- Creo la lista sin que figure install mediante
dpkg --get-selections | grep -v deinstall | awk '{print $1}' > lista.txt
2.- Para instalar todavía no puedes usar sudo por no tenerlo instalado ni peor configurado por lo que
su
aptitude install $(cat lista.txt)

Además de lo anterior, puedes también emplear Synaptic

Avatar de Usuario
doc
Forista Ancestral
Forista Ancestral
Mensajes: 3477
Registrado: Mié Ago 11, 2010 10:32 am
Ubicación: Oviedo-es_ES
Contactar:

Re: instalar muchas aplicaciones por terminal

Mensaje por doc »

en resumen (a ver si así ya lo voy entendiendo, y puedo copiarlo en mis 'Apuntes Tácticos')
a) creo una lista de los paquetes instalados, con

Código: Seleccionar todo

su
# dpkg --get-selections > lista.txt 
b) En esta lista, borro todo, excepto las aplicaciones que había instalado 'a posteriori' de la instalación básica de la distro. La llamo, por ejemplo, 'lista_aplicaciones.txt'
Ahora tengo dos opciones
c) opción A: con 'dpkg':
1.- 'cargo' la lista en la nueva instalación (también podría hacerlo con la 'lista.txt' inicial), con

Código: Seleccionar todo

su
# dpkg --set-selections < lista_aplicaciones.txt 
2.- instalo el paquete dselect (# apt-get install dselect) y 'ordeno' que se instalen/actualicen las aplicaciones cargadas, con

Código: Seleccionar todo

# apt-get -y update && apt-get -y dselect-upgrade
(nota: ¿puede actual el 'sudo' que lleva dentro este mandato?
d) opción B: con 'aptitude'
1.- borro, de la 'lista_aplicaciones.txt', los textos 'install' que salen, y la llamo, por ejemplo 'lista_apps.txt' con

Código: Seleccionar todo

# cat lista_aplicaciones.txt|cut -f1 >lista_apps.txt 
2.- además, y por si acaso, le quito los saltos de linea a ese nuevo archivo, con

Código: Seleccionar todo

# tr \\n :blank: <lista_apps.txt > lista_apps2.txt
3.- Y, finalmente, 'ordeno' que se instalen, con

Código: Seleccionar todo

# aptitude -y install `cat lista_apps2.txt`
Espero que mas o menos (y más bien 'mas') la cosa pueda funcionar así ¿no?

NOTA: corregido lo del 'sudo install' del punto 3, según el post final de neurus
Última edición por doc el Mar Sep 27, 2011 2:32 am, editado 1 vez en total.

Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1817
Registrado: Dom Oct 10, 2004 7:00 am

Re: instalar muchas aplicaciones por terminal

Mensaje por neurus »

Exacto.
En cuanto al segundo sudo, si vas a trabajar directamente como root, deberías borrarlo también, quedando así: # apt-get -y update && apt-get -y dselect-upgrade.
En cuanto a borrar de la lista los paquetes ya instalados, puedes hacerlo si tienes ganas de trabajar extra. A fines prácticos, no hay diferencia.

Y te garantizo que así funciona, porque yo mismo lo utilizo en mis instalaciones. De hecho, tengo en mi correo de gmail varios archivos con listas de paquetes armadas de este modo, para instalaciones con distintos propósitos, para no tener que escribir, llegado el caso, cada uno de los paquetes que quiero instalar.
Ser debianita es un camino sin retorno a la pereza consuetudinaria.

Avatar de Usuario
doc
Forista Ancestral
Forista Ancestral
Mensajes: 3477
Registrado: Mié Ago 11, 2010 10:32 am
Ubicación: Oviedo-es_ES
Contactar:

Re: instalar muchas aplicaciones por terminal

Mensaje por doc »

bufff... bueno, pongo el [SOLUCIONADO]

Gracias a todos

Avatar de Usuario
jdgr00
Ganador CSEL 2011
Ganador CSEL 2011
Mensajes: 184
Registrado: Mar May 10, 2011 9:47 pm
Ubicación: Costa Rica

Re: instalar muchas aplicaciones por terminal [SOLUCIONADO]

Mensaje por jdgr00 »

Hola...estaba haciendo este experimento pero me lanza un errorcillo

hago la lista
dpkg --get-selections | grep -v deinstall | awk '{print $1}' > lista

y la cargo
dpkg --set-selections < lista
Me dice:
dpkg: error: unexpected end of line in package name at line 1

Solo si la hago así, sin quitar install ni saltos de línea no lanza ningun error
sudo dpkg --get-selections > lista.txt
sudo dpkg --set-selections < lista.txt


Ese error algo de que preocuparse o no?

Avatar de Usuario
EnriqueK
Forista Medio
Forista Medio
Mensajes: 367
Registrado: Dom Sep 16, 2007 7:00 am

Re: instalar muchas aplicaciones por terminal [SOLUCIONADO]

Mensaje por EnriqueK »

Realiza el siguiente experimento
1.- Ejecuta
sudo dpkg --get-selections | grep -v deinstall | awk '{print $1}' > paq.txt

2.- Borra algunos paquetes, por ejemplo usando Synaptic

3.- Ejecuta
sudo aptitude install $(cat paq.txt)
Esta operación reinstalará los paquetes que has borrado en el paso 2.-
El archivo paq.txt se creará en tu carpeta de usuario y la puedes abrir y verás que no figura ningún install, si quiers la puedes eliminar.

Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1817
Registrado: Dom Oct 10, 2004 7:00 am

Re: instalar muchas aplicaciones por terminal [SOLUCIONADO]

Mensaje por neurus »

jdgr00; estás cometiendo el mismo error que doc. No tienes que quitarle los "install" si vas a pasarle la lista a dpkg.

Son dos procedimientos diferentes.

Responder
  • Temas similares
    Respuestas
    Vistas
    Último mensaje