Publicidad

Rss

rss2

pronto gnu/linux Ubuntu...

Sitios de interes

 

Compartir es gratis


Lo que debes saber del APT

Enviado por JRShiller el miércoles, 19 diciembre, 2007 a las 13:29
JRShiller

Actualizando la lista de paquetes disponibles

El sistema de paquetes utiliza una base de datos para llevar un monitoreo de los paquetes instalados, los no instalados y cuales están disponibles para su futura instalación. El programa apt-get utiliza esta base de datos para averiguar como instalar los paquetes que son requeridos por el usuario y para indagar sobre que paquetes adicionales serán requeridos para que el paquete seleccionado funcione correctamente.

Para actualizar la lista, se utiliza el comando apt-get update. Este comando busca el paquete en los archivos listados en /etc/apt/sources.list; para más información acerca de este archivo, revise El archivo /etc/apt/sources.list, Sección 2.1

Es una buena costumbre ejecutar este archivo regularmente para mantenerse informado acerca de las posibilidades de actualización para el sistema, particularmente las actualizaciones de seguridad.


 Instalando paquetes

Finalmente, ¡el proceso que estaba esperando!. Con su archivo sources.list listo y su lista de paquetes disponibles al día, todo lo que necesita es ejecutar apt-get para tener el paquete que quiera instalado. Por ejemplo, puede ejecutar:

     # apt-get install xchat

APT buscará en su base de datos para encontrar la versión más reciente del paquete y lo descargará del servidor correspondiente especificado en sources.list. Si este paquete necesitara otro para funcionar -- como en este caso -- APT resolverá las dependencias e instalará los paquetes necesarios. Observe este ejemplo:

     # apt-get install nautilus
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
bonobo libmedusa0 libnautilus0
The following NEW packages will be installed:
bonobo libmedusa0 libnautilus0 nautilus
0 packages upgraded, 4 newly installed, 0 to remove and 1 not upgraded.
Need to get 8329kB of archives. After unpacking 17.2MB will be used.
Do you want to continue? [Y/n]

El paquete nautilus necesita las librerías compartidas mencionadas, así pues APT las descargará del servidor. Si se especifican antes los nombres de esas librerías con el comando apt-get APT no pregunta, si desea continuar o no; supone automáticamente que se desean instalar esos paquetes.

Esto significa que APT sólo pregunta por confirmación cuando se van a instalar paquetes que no fueron especificados en la línea de comando.

Las siguientes opciones de apt-get podrían ser útiles

     -h  This help text.
-d Download only - do NOT install or unpack archives
-f Attempt to continue if the integrity check fails
-s No-act. Perform ordering simulation
-y Assume Yes to all queries and do not prompt
-u Show a list of upgraded packages as well

Pueden seleccionarse varios paquetes para instalar en una sola línea. Los archivos descargados son almacenados en el directorio /var/cache/apt/archives para su instalación posterior.

Puede especificar también que paquetes serán eliminados en la misma línea. Sólo agregue un "-" inmediatamente después del nombre del paquete que quiere eliminar, por ejemplo:

     # apt-get install nautilus gnome-panel-
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
bonobo libmedusa0 libnautilus0
The following packages will be REMOVED:
gnome-applets gnome-panel gnome-panel-data gnome-session
The following NEW packages will be installed:
bonobo libmedusa0 libnautilus0 nautilus
0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
Need to get 8329kB of archives. After unpacking 2594kB will be used.
Do you want to continue? [Y/n]

Consulte la sección Eliminando paquetes, Sección 3.3 para más detalles acerca de la eliminación de paquetes.

Si de alguna forma daña un paquete instalado, o simplemente desea reinstalar la versión más nueva disponible del paquete, puede utilizar la opción --reinstall como se muestra:

     # apt-get --reinstall install gdm
Reading Package Lists... Done
Building Dependency Tree... Done
0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1 not
upgraded.
Need to get 0B/182kB of archives. After unpacking 0B will be used.
Do you want to continue? [Y/n]

La versión de APT al crear este documento es la 0.5.3, la cual forma parte de la versión inestable de Debian (sid) al momento de escribir. Si tiene esta versión instalada, tiene algunas opciones más a su alcance: Puede utilizar un comando como apt-get install paquete/distribución para instalar paquetes de una distribución en específico, o apt-get install package="versión." por ejemplo:

     # apt-get install nautilus/unstable

Esta instrucción instalará nautilus de la distribución inestable aun si está utilizando la estable. Los valores aceptados para distribución son stable, testing y unstable.

Podría preferir utilizar el modificador -t para especificar una distribución destino, dejando a apt-get la oportunidad de resolver a favor de esa distribución las dependencias.

IMPORTANTE: La versión "unstable" de Debian es la versión a la cual se le agregan las nuevas versiones de los paquetes de Debian. Esta distribución tiene todos los cambios por los cuales atraviesan muchos de los paquetes, ya sean cambios pequeños o grandes que afecten a unos paquetes o a todo el sistema. Por esta razón, esta versión de la distribución no deberá ser usada por usuarios novatos o por aquellos que necesitan de estabilidad.

La distribución "testing" (de prueba) es un poco mejor que la inestable, con algo de estabilidad, pero para sistemas en producción la que se debe usar es la estable.


 Eliminando paquetes

Si ya no necesita utilizar cierto paquete, puede eliminarlo de su sistema utilizando APT. Para realizar esta tarea sólo escriba: apt-get remove paquete. por ejemplo:

     # apt-get remove gnome-panel
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
gnome-applets gnome-panel gnome-panel-data gnome-session
0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
Need to get 0B of archives. After unpacking 14.6MB will be freed.
Do you want to continue? [Y/n]

Como se puede apreciar en el ejemplo anterior, APT se hace cargo de eliminar los paquetes dependientes del paquete eliminado. No hay manera de eliminar un paquete utilizando APT sin eliminar los paquetes que éste necesitaba.

Ejecutando apt-get como en el ejemplo causará que los paquetes sean eliminados, pero sus archivos de configuración, si existían, permanecerán intactos en el sistema. Para una eliminación completa del paquete, ejecute:

     # apt-get --purge remove gnome-panel
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
Need to get 0B of archives. After unpacking 14.6MB will be freed.
Do you want to continue? [Y/n]

Observe el "*" después de los nombres. Esto indica que los archivos de configuración de cada paquete serán eliminados también.

Al igual que en el caso de la instalación, puede utilizar un símbolo con la opción de "remove" para invertir el significado de un paquete en especial. En el caso de la eliminación, si agrega un "+" después del nombre del paquete, el paquete será instalado en vez de eliminarlo.

     # apt-get --purge remove gnome-panel nautilus+
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
bonobo libmedusa0 libnautilus0 nautilus
The following packages will be REMOVED:
gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
The following NEW packages will be installed:
bonobo libmedusa0 libnautilus0 nautilus
0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
Need to get 8329kB of archives. After unpacking 2594kB will be used.
Do you want to continue? [Y/n]

Observe que apt-get enlista los paquetes que serán instalados aparte de los seleccionados (esto es, aquellos que su instalación es necesaria para el funcionamiento de aquellos que son seleccionados), aquellos que serán eliminados, y aquellos que serán instalados (incluyendo los paquetes adicionales otra vez).


Actualizando paquetes

Las actualizaciones de los paquetes son un gran éxito de APT. Pueden realizarse con tan sólo un comando: apt-get upgrade. Puede utilizar esa opción para actualizar los paquetes de la distribución actual, o bien para actualizar a una nueva distribución, aunque el comando apt-get dist-upgrade es una mejor opción; para mayor información, consulte la sección Actualizando a una nueva versión, Sección 3.5.

Es muy útil utilizar este comando con la opción -u. Esta opción muestra la lista completa de paquetes que APT actualizará. Sin ella, se estaría actualizando a ciegas. APT descargará las versiones más recientes de cada paquete y las instalará de la manera más apropiada. Es muy importante ejecutar siempre apt-get update antes de probar esto. Consulte la sección Actualizando la lista de paquetes disponibles, Sección 3.1. Observe este ejemplo:

     # apt-get -u upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages have been kept back
cpp gcc lilo
The following packages will be upgraded
adduser ae apt autoconf debhelper dpkg-dev esound esound-common ftp indent
ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev
libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0
libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit procps psmisc
29 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Need to get 5055B/5055kB of archives. After unpacking 1161kB will be used.
Do you want to continue? [Y/n]

El proceso es muy fácil. Note que en las primeras líneas apt-get menciona que algunos paquetes fueron conservados. Esto significa que hay versiones nuevas de estos paquetes mas no fueron actualizados por alguna razón. Algunas razones pueden ser dependencias fallidas (el paquete del cual depende no tiene una versión nueva para actualizar) o nuevas dependencias (el paquete ahora depende de nuevos paquetes que la versión anterior).

No hay una solución clara para el primer caso. Para el segundo, es suficiente con ejecutar apt-get install para el paquete en cuestión, ya que con esto se descargarán las nuevas dependencias. Una solución aún mejor es utilizar dist-upgrade. Consulte la sección Actualizando a una nueva versión, Sección 3.5.


Actualizando a una nueva versión

Esta opción de APT permite actualizar un sistema debian en un solo paso, ya sea desde Internet o por CDs (comprado o descargado como una imagen ISO).

También es utilizado cuando son realizados cambios entre las relaciones de los paquetes instalados. Con apt-get upgrade, estos paquetes permanecerían sin modificación (conservados).

Por ejemplo, supongamos que está utilizando la revisión 0 de la versión estable de Debian, y compra el CD con la revisión 3. Puede utilizar APT para actualizar el sistema al de el CD. Para lograr esto, utilice apt-cdrom (consulte la sección Agregando un CD-ROM al archivo sources.list, Sección 2.4) para agregar el CD al archivo /etc/apt/sources.list y ejecute apt-get dist-upgrade

Es muy importante mencionar que APT siempre busca la versión más reciente de los paquetes. Así pues, si en su archivo /etc/apt/sources.list se encontrara alguna otra fuente que tuviera una versión más reciente que la del CD, APT descargaría esta versión.

En el ejemplo mostrado en la sección Actualizando paquetes, Sección 3.4, observamos que algunos paquetes eran conservados. Solucionaremos este problema ahora con el programa dist-upgrade:

     # apt-get -u dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done
The following NEW packages will be installed:
cpp-2.95 cron exim gcc-2.95 libident libopenldap-runtime libopenldap1
libpcre2 logrotate mailx
The following packages have been kept back
lilo
The following packages will be upgraded
adduser ae apt autoconf cpp debhelper dpkg-dev esound esound-common ftp gcc
indent ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0
libesd0-dev libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev
liborbit0 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit
procps psmisc
31 packages upgraded, 10 newly installed, 0 to remove and 1 not upgraded.
Need to get 0B/7098kB of archives. After unpacking 3118kB will be used.
Do you want to continue? [Y/n]

Observe que los paquetes ahora serán actualizados, y que nuevos paquetes serán instalados (las nuevas dependencias de los paquetes). Observe también que lilo sigue siendo conservado. Probablemente tiene un problema aún más serio que una dependencia. Esto lo podemos saber si ejecutamos:

     # apt-get -u install lilo
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
logrotate mailx
The following packages will be REMOVED:
debconf-tiny
The following NEW packages will be installed:
cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
logrotate mailx
The following packages will be upgraded
lilo
1 packages upgraded, 9 newly installed, 1 to remove and 31 not upgraded.
Need to get 225kB/1179kB of archives. After unpacking 2659kB will be used.
Do you want to continue? [Y/n]

Como se observa arriba, lilo tiene un nuevo conflicto con el paquete debconf-tiny, lo cual significa que no podrá ser instalado (o actualizado) sin antes eliminar debconf-tiny

Para saber que guarda o elimina un paquete puede utilizar:

     # apt-get -o Debug::pkgProblemResolver="yes" dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Starting
Starting 2
Investigating python1.5
Package python1.5 has broken dep on python1.5-base
Considering python1.5-base 0 as a solution to python1.5 0
Holding Back python1.5 rather than change python1.5-base
Investigating python1.5-dev
Package python1.5-dev has broken dep on python1.5
Considering python1.5 0 as a solution to python1.5-dev 0
Holding Back python1.5-dev rather than change python1.5
Try to Re-Instate python1.5-dev
Done
Done
The following packages have been kept back
gs python1.5-dev
0 packages upgraded, 0 newly installed, 0 to remove and 2 not upgraded.

De este modo, es fácil notar que el paquete python1.5-dev no puede ser instalado debido a una dependencia: python1.5.


 Eliminando archivos de paquete no utilizados: apt-get clean y autoclean.

Cuando APT instala un paquete, descarga los archivos necesarios de los servidores enlistados en /etc/apt/sources, estos a su vez son guardados en un depósito local (/var/cache/apt/archives/), y de ahí se procede con la instalación, consulte Instalando paquetes, Sección 3.2.

Con el tiempo el depósito puede crecer y ocupar mucho espacio en disco. Afortunadamente, APT provee de herramientas para manejar su depósito local: apt-get, clean y autoclean.

apt-get clean elimina todo excepto los archivos "lock" de /var/cache/apt/archives/ y /var/cache/apt/archives/partial/. Así, si necesita reinstalar un paquete APT, lo descargará de nueva cuenta.

apt-get autoclean elimina sólo los archivos que no pueden ser descargados de nuevo.

EL siguiente ejemplo muestra como funciona la autolimpieza de apt-get:

     # ls /var/cache/apt/archives/logrotate* /var/cache/apt/archives/gpm*
logrotate_3.5.9-7_i386.deb
logrotate_3.5.9-8_i386.deb
gpm_1.19.6-11_i386.deb

En /var/cache/apt/archives hay dos archivos para el paquete logrotatey uno para gpm.

     # apt-show-versions -p logrotate
logrotate/stable uptodate 3.5.9-8
# apt-show-versions -p gpm
gpm/stable upgradeable from 1.19.6-11 to 1.19.6-12

apt-show-versions muestra que logrotate_3.5.9-8_i386.deb provee la versión actualizada de of logrotate, así pues logrotate_3.5.9-7_i386.deb es innecesario. También gpm_1.19.6-11_i386.deb no es necesario debido a que una versión mas reciente puede ser descargada.

     # apt-get autoclean
Reading Package Lists... Done
Building Dependency Tree... Done
Del gpm 1.19.6-11 [145kB]
Del logrotate 3.5.9-7 [26.5kB]

Finalmente, apt-get autoclean elimina los archivos viejos. Consulte Cómo actualizar paquetes de versiónes específicas de Debian., Sección 3.9 para más información sobre apt-show-versions.


:P

Enviado por el 20/12/2007 a las 15:21
Pavel Cueto

sudo apt-get give -y thanksfortheinfo 

-----------------
Este usuario no tiene firma, pero pareciera no afectarle.









Suscribirse a los comentarios de este artículo en RSS

Google AdSense

Blogesfera

BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog

Personas en línea

En estos momentos hay 7 personas visitando "Seres de Silicio"

Zync

Últimas imágenes

geeko.jpg2632-2.jpgf9launch.pngscreeeen2.jpgsl_logo.pngscrenn.jpgdownloadportada.png.pngportada.png.png

Última encuesta

¿Qué software usas más?


Resultados:
  • Microsoft Office: 16 % (11 votos)
  • Open Office: 3 % (2 votos)
  • Winamp: 3 % (2 votos)
  • Amarok y variantes: 10 % (7 votos)
  • Msn: 24 % (16 votos)
  • Pidgin y variantes: 10 % (7 votos)
  • Nero : 1 % (1 voto)
  • Brasero y variantes: 0 %
  • Programas P2p ("ares,limeware,utorrent,etc").: 20 % (13 votos)
  • no tengo Pc =(.: 1 % (1 voto)
  • mi pc, no tiene nada. =).: 7 % (5 votos)

Total de votos: 65
Esta encuesta está cerrada. Estuvo disponible 100 día(s) desde el 17/03/2008.

Encuestas anteriores

Search

Google

No a la pedofilia

Creative Commons License

Esta obra es publicada bajo una licencia Creative Commons.

¡ World is yours !

Locations of visitors to this page

3X70RS10N