Difference between revisions of "Pacman/Tips and tricks (Español)"

From ArchWiki
Jump to: navigation, search
(wikify some external links, use https for archlinux.org)
(Por fecha: Añadido huérfanos)
 
(22 intermediate revisions by 8 users not shown)
Line 1: Line 1:
 +
{{Lowercase title}}
 
[[Category:Package management (Español)]]
 
[[Category:Package management (Español)]]
[[en:Pacman Tips]]
+
[[en:Pacman/Tips and tricks]]
[[it:Pacman Tips]]
+
[[fa:Pacman tips]]
[[ru:Pacman Tips]]
+
[[fr:Astuces Pacman]]
[[tr:Pacman_ipuçları]]
+
[[it:Pacman/Tips and tricks]]
[[zh-CN:Pacman Tips]]
+
[[ja:Pacman ヒント]]
{{Bad translation|Outdated and does not follow style guidelines, contrast [[Pacman_Tips#Restore_pacman.27s_local_database]]}}
+
[[ru:Pacman/Tips and tricks]]
==Cómo restaurar la base de datos local de Pacman==
+
[[zh-hans:Pacman/Tips and tricks]]
 +
{{Related articles start}}
 +
{{Related|pacman}}
 +
{{Related|Improve pacman performance}}
 +
{{Related|Mirrors}}
 +
{{Related|Creating packages}}
 +
{{Related articles end}}
 +
{{Translateme (Español)|Outdated and does not follow style guidelines, contrast [[Pacman tips#Restore pacman's local database]] }}
 +
Para métodos generales para mejorar la flexibilidad de las sugerencias proporcionadas o del propio pacman, consulte [[Core utilities]] y [[Bash]].
  
===Introducción===
+
== Mantenimiento ==
  
Algo ha ido mal con pacman. 'Pacman -Q' no da resultados en absoluto, y 'pacman -Syu' le dice que sus sistema está actualizado, pero usted sabe que no es así. Cuando intenta instalar un paquete usando 'pacman -S package', se le presenta una lista de dependencias, aunque usted sepa positivamente que ya están todas ellas instaladas.
+
=== Listando paquetes ===
  
Su problema es que la base de datos de software instalado de pacman, '/var/lib/pacman/local' se ha corrompido o borrado. Este es un problema serio, pero afortunadamente puede restaurar '/var/lib/pacman/local' siguiendo las instrucciones que se indican a continuación.
+
Es posible que desee obtener la lista de paquetes instalados con su versión, lo cual es útil cuando se reportan errores o se discuten los paquetes instalados.
 +
* Enumere todos los paquetes explícitamente instalados: pacman -Qe .
 +
*todos los paquetes nativos instalados explícitamente (es decir, presentes en la base de datos de sincronización) que no sean dependencias directas o opcionales: pacman -Qent .
 +
* Lista de todos los paquetes extranjeros (normalmente descargados e instalados manualmente): pacman -Qm .
 +
* Haga una lista de todos los paquetes nativos (instalados desde la (s) base de datos de sincronización): pacman -Qn .  
 +
* Listar paquetes por regex: pacman -Qs regex .
 +
* Lista de paquetes por regex con formato de salida personalizado: expac -s "%-30n %v" regex (necesita expac ).
  
====Ausencia de responsabilidad====
+
==== Con el tamaño ====
 +
Para obtener una lista de paquetes instalados ordenados por tamaño, lo que puede ser útil al liberar espacio en el disco duro:
 +
* Instalar expac y ejecutar expac -HM '%m\t%n' | sort -h expac -HM '%m\t%n' | sort -h .
 +
* Ejecute pacgraph con la opción -c .
 +
Para enumerar el tamaño de descarga de varios paquetes (deje packages en blanco para listar todos los paquetes):
 +
  $ Expac -S -HM '% k \ t% n' paquetes
 +
Para listar los paquetes explícitamente instalados que no están en base ni en base-devel con tamaño y descripción:
 +
  $ Expac -HM "% 011m \ t% -20n \ t% 10d" $ (comm -23 <(pacman -Qqen | sort) <(pacman -Qqg base-devel | sort)) |  Ordenar -n
  
Antes de comenzar, quiero recalcar que aunque estas instrucciones me funcionaron a mí, puede que no funcionen para usted. De hecho, sus sistema podría no volver a ser el mismo nunca más.
+
=== Eliminación de paquetes no utilizados (huérfanos) ===
  
PROCEDA ASUMIENDO EL RIESGO!
+
Para eliminar de forma ''recursiva'' los huérfanos y sus archivos de configuración:
  
====Línea de órdenes====
+
# pacman -Rns $(pacman -Qtdq)
  
La línea a continuación indica una orden tecleada por el usuario 'me' en un terminal, esto es, cualquier usuario excepto root.
+
Si no se encontraron paquetes huérfanos, aparecerán errores de pacman con {{ic|error: no targets specified}}. Esto se espera ya que no se pasaron argumentos a {{ic|pacman -Rns}}.
  
[me@linuxbox]$ ls
+
{{Note|Los argumentos {{ic|-Qt}} enumeran sólo huérfanos verdaderos. Para incluir paquetes que son ''opcionalmente'' requeridos por otro paquete, pase el indicador {{ic|-t}} dos veces (''i.e.'', {{ic|-Qtt}}).}}
  
La línea a continuación indica una orden tecleada en un terminal por el usuario 'root', esto es, el usuario con todos los derechos en su sistema.
 
  
  [root@linuxbox]# ls
+
==== Por fecha ====
 +
Para enumerar los 20 últimos paquetes instalados con expac , ejecute:
 +
  $ Expac --timefmt = '% Y-% m-% d% T' '% l \ t% n' | Ordenar |  Cola-n 20
 +
O, con segundos desde la época (1970-01-01 UTC):
 +
  $ Expac --timefmt =% s '% l \ t% n' |  Sort -n |  Cola-n 20
  
La mayoría de las instrucciones descritas a continuación suponen que tiene usted acceso como root a su sistema.
+
Lista los paquetes explícitamente instalados que no están en los grupos de base o base-devel :
 +
  $ Comm -23 <(pacman -Qeq | sort) <(pacman -Qgq base base-devel | sort)
 +
Enumere todos los paquetes instalados no requeridos por otros paquetes y que no estén en los grupos de base o de base :
 +
  $ Comm -23 <(pacman -Qqt | sort) <(pacman -Sqg base base-devel | sort)
 +
Como arriba, pero con descripciones:
 +
  $ Expac -HM '% -20n \ t% 10d' $ (comm -23 <(pacman -Qqt | sort) <(pacman -Qqg base -devel | sort)
 +
Lista todos los paquetes instalados que no están en el repositorio especificado repo_name
 +
  $ Comm -23 <(pacman -Qtq | sort) <(pacman -Slq repo_name | sort)
 +
Liste todos los paquetes instalados que están en el repositorio repo_name :
 +
  $ Comm -12 <(pacman -Qtq | sort) <(pacman -Slq repo_name | sort)
  
===Instrucciones===
+
== Optimización ==
  
*En primer lugar, tiene que asegurarse de que tiene el archivo de anotaciones de pacman.
+
=== Velocidades de acceso a la base de datos ===
 +
 +
Pacman almacena toda la información del paquete en una colección de archivos pequeños, uno para cada paquete. La mejora de las velocidades de acceso a la base de datos reduce el tiempo empleado en las tareas relacionadas con la base de datos, por ejemplo, buscar paquetes y resolver las dependencias del paquete. El método más seguro y fácil es ejecutarlo como root:
 +
  # Pacman-optimize
 +
Esto intentará poner todos los archivos pequeños juntos en una ubicación (física) en el disco duro para que la cabeza del disco duro no tenga que moverse tanto al acceder a todos los datos. Este método es seguro, pero no es infalible: depende del sistema de archivos, el uso del disco y la fragmentación del espacio vacío. Otra opción más agresiva sería eliminar primero los paquetes desinstalados del caché y eliminar los repositorios no utilizados antes de la optimización de la base de datos:
 +
  # Pacman -Sc && pacman-optimize
 +
=== Velocidades de descarga ===
 +
Nota: Si las velocidades de descarga se han reducido a un rastreo, asegúrese de que está utilizando uno de los muchos espejos y no ftp.archlinux.org, que se estrangula desde marzo de 2007 .
 +
Al descargar paquetes pacman usa los espejos en el orden en que están en /etc/pacman.d/mirrorlist . El espejo que está en la parte superior de la lista por defecto, sin embargo, puede no ser el más rápido para usted. Para seleccionar un espejo más rápido, consulte Espejos .
 +
La velocidad de Pacman en la descarga de paquetes también puede ser mejorada mediante el uso de una aplicación diferente para descargar paquetes, en lugar del descargador de archivos integrado de Pacman.
 +
En todos los casos, asegúrese de tener la última Pacman antes de hacer cualquier modificación.
 +
  # Pacman -Syu
 +
=== Powerpill ===
 +
Powerpill es un envoltorio de Pacman que utiliza la descarga paralela y segmentada para tratar de acelerar las descargas de Pacman.
 +
=== Wget ===
 +
Esto también es muy útil si necesita configuraciones proxy más potentes que las capacidades incorporadas de pacman.  
  
[me@linuxbox]$ ls /var/log/pacman.log
+
Para usar wget , primero instale el paquete wget y luego modifique /etc/pacman.conf descomentando la siguiente línea en la sección [options] :
/var/log/pacman.log
+
  XferCommand = / usr / bin / wget -c -q --show-progress --passive-ftp -O% o% u
 +
En lugar de descomentar los parámetros de wget en /etc/pacman.conf , también puede modificar el archivo de configuración de wget directamente (el archivo de todo el sistema es /etc/wgetrc , por usuario los archivos son $HOME/.wgetrc .
  
Si no existe su archivo de anotaciones de pacman, NO debe continuar. La única opción que tiene es reinstalar su sistema desde cero.
+
=== Aria2  ===
 +
Aria2 es una utilidad de descarga de peso ligero con soporte para HTTP / HTTPS y transferencias directas continuas y segmentadas. Aria2 permite múltiples y simultáneas conexiones HTTP / HTTPS y FTP a un espejo de Arch, lo que debería resultar en un aumento en las velocidades de descarga para la recuperación de archivos y paquetes.  
  
De acuerdo, su archivo '/var/log/pacman.log' existe. ¿Va a continuar?
+
Nota: El uso de aria2c en XferCommand de Pacman no dará lugar a descargas paralelas de varios paquetes. Pacman invoca el XferCommand con un solo paquete a la vez y espera a que se complete antes de invocar el siguiente. Para descargar varios paquetes en paralelo, consulte Powerpill.  
  
*cree el archivo 'pkglist.sh'.
+
Instale aria2 y luego edite /etc/pacman.conf agregando la siguiente línea a la sección [options] :
 +
  XferCommand = / usr / bin / aria2c --allow-overwrite = true --continue = true --file-allocation = ninguno --log-level = error --max-tries = 2 --max-connection-per-server = 2 --max-file-not-found = 5 --min-split-size = 5M --no-conf --remote-time = true --summary-interval = 60 --timeout = 5 --dir = / --out% o% u
  
[root@linuxbox]# touch pkglist.sh
+
Sugerencia: Esta configuración alternativa para usar pacman con aria2 intenta simplificar la configuración y añade más opciones de configuración.  
 
*Copie y pegue las líneas siguientes en su archivo 'pkglist.sh'.  
 
  
#!/bin/bash
+
Vea OPCIONES en man aria2c para las opciones de aria2c usadas.
#
+
* -d, --dir : El directorio para almacenar los archivos descargados según lo especificado por pacman .  
SEDEXP='s/^\[[^ ]* *[0-9][0-9]:[0-9][0-9]\] \([^ ]*\) *\([^ ]*\) .*/\1 \2/'
+
* -o, --out : El nombre de archivo de salida del archivo (s) descargado (s).  
GRPEXP='(upgraded)|(installed)'
+
* %o : Variable que representa el nombre de archivo local especificado por pacman.  
AWKEXP='{print $2}'
+
* %u : Variable que representa la URL de descarga especificada por pacman.
#
 
sed -e "$SEDEXP" /var/log/pacman.log | grep -E "$GRPEXP" | awk "$AWKEXP" | sort -u
 
# End
 
 
 
Gracias a 'rdt' https://bbs.archlinux.org/viewtopic.php?id=38531
 
 
 
grabe y salga.
 
 
 
*Haga al archivo 'pkglist.sh' ejecutable.
 
 
 
[root@linuxbox]# chmod 744 pkglist.sh
 
 
*Ahora ejecute 'pklglist.sh' y redireccione la salida a 'pkglist'.
 
 
 
[root@linuxbox]# ./pkglist.sh > pkglist
 
 
*'pkglist' conendrá ahora una lista de todo el software que instaló o actualizó. Edite 'pkglist' y elimine todo lo que no quiera reinstalar. Usted podría querer hacer esto si por ejemplo constryó un paquete personalizado y lo instaló con 'abs'.
 
 
 
[root@linuxbox]# vi pkglist
 
 
*Una vez esté satisfecho con el contenido de 'pkglist', puede utilizarlo para reinstalar su software, y restaurar '/var/lib/pacman/local'.
 
 
 
No hay ninguna necesidad de comprobar las dependencias, y tiene que 'forzar' la instalación dado que los programas ya existen.
 
 
 
[root@linuxbox]# pacman -Sdf `cat pkglist`
 
 
Pacman le presentará ahora una larga lista de software que va a ser instalado. Diga 'yes' y espere a que termine pacman.
 
 
 
* Finalmente, necesitará descubrir todos los archivos de configuración que han cambiado. Puede hacer esto actualizando primero la base de datos 'locate'.
 
 
 
[root@linuxbox]# updatedb
 
 
 
* Ahora puede buscar todos los archivos de configuración que hayan cambiado.
 
 
 
[root@linuxbox]# locate pacorig
 
 
 
Esto le dará una lista de todos los archivos de configuración que han sido reemplazados. Su archivo original tendrá la extensión '.pacorig'. Borre los nuevos archivos, y renombre los archivos '.pacorig' para restaurar su configuración inicial para cada paquete de software que pueda estar afectado. Pueden haber cambido también algunos permisos de directorio. Compruebe esto si algo se niega a arrancar.
 
 
 
Felicidades, acaba de restaurar con éxito su base de datos local de pacman.
 

Latest revision as of 22:33, 15 December 2017

Tango-preferences-desktop-locale.pngEste artículo o sección necesita ser traducido.Tango-preferences-desktop-locale.png

Notas: Outdated and does not follow style guidelines, contrast Pacman tips#Restore pacman's local database ‎ (Discusión)

Para métodos generales para mejorar la flexibilidad de las sugerencias proporcionadas o del propio pacman, consulte Core utilities y Bash.

Mantenimiento

Listando paquetes

Es posible que desee obtener la lista de paquetes instalados con su versión, lo cual es útil cuando se reportan errores o se discuten los paquetes instalados.

  • Enumere todos los paquetes explícitamente instalados: pacman -Qe .
  • todos los paquetes nativos instalados explícitamente (es decir, presentes en la base de datos de sincronización) que no sean dependencias directas o opcionales: pacman -Qent .
  • Lista de todos los paquetes extranjeros (normalmente descargados e instalados manualmente): pacman -Qm .
  • Haga una lista de todos los paquetes nativos (instalados desde la (s) base de datos de sincronización): pacman -Qn .
  • Listar paquetes por regex: pacman -Qs regex .
  • Lista de paquetes por regex con formato de salida personalizado: expac -s "%-30n %v" regex (necesita expac ).

Con el tamaño

Para obtener una lista de paquetes instalados ordenados por tamaño, lo que puede ser útil al liberar espacio en el disco duro:

  • Instalar expac y ejecutar expac -HM '%m\t%n' | sort -h expac -HM '%m\t%n' | sort -h .
  • Ejecute pacgraph con la opción -c .

Para enumerar el tamaño de descarga de varios paquetes (deje packages en blanco para listar todos los paquetes):

 $ Expac -S -HM '% k \ t% n' paquetes

Para listar los paquetes explícitamente instalados que no están en base ni en base-devel con tamaño y descripción:

 $ Expac -HM "% 011m \ t% -20n \ t% 10d" $ (comm -23 <(pacman -Qqen | sort) <(pacman -Qqg base-devel | sort)) |  Ordenar -n

Eliminación de paquetes no utilizados (huérfanos)

Para eliminar de forma recursiva los huérfanos y sus archivos de configuración:

# pacman -Rns $(pacman -Qtdq)

Si no se encontraron paquetes huérfanos, aparecerán errores de pacman con error: no targets specified. Esto se espera ya que no se pasaron argumentos a pacman -Rns.

Note: Los argumentos -Qt enumeran sólo huérfanos verdaderos. Para incluir paquetes que son opcionalmente requeridos por otro paquete, pase el indicador -t dos veces (i.e., -Qtt).


Por fecha

Para enumerar los 20 últimos paquetes instalados con expac , ejecute:

 $ Expac --timefmt = '% Y-% m-% d% T' '% l \ t% n' |  Ordenar |  Cola-n 20

O, con segundos desde la época (1970-01-01 UTC):

 $ Expac --timefmt =% s '% l \ t% n' |  Sort -n |  Cola-n 20

Lista los paquetes explícitamente instalados que no están en los grupos de base o base-devel :

 $ Comm -23 <(pacman -Qeq | sort) <(pacman -Qgq base base-devel | sort)

Enumere todos los paquetes instalados no requeridos por otros paquetes y que no estén en los grupos de base o de base :

 $ Comm -23 <(pacman -Qqt | sort) <(pacman -Sqg base base-devel | sort)

Como arriba, pero con descripciones:

 $ Expac -HM '% -20n \ t% 10d' $ (comm -23 <(pacman -Qqt | sort) <(pacman -Qqg base -devel | sort)

Lista todos los paquetes instalados que no están en el repositorio especificado repo_name

 $ Comm -23 <(pacman -Qtq | sort) <(pacman -Slq repo_name | sort)

Liste todos los paquetes instalados que están en el repositorio repo_name :

 $ Comm -12 <(pacman -Qtq | sort) <(pacman -Slq repo_name | sort)

Optimización

Velocidades de acceso a la base de datos

Pacman almacena toda la información del paquete en una colección de archivos pequeños, uno para cada paquete. La mejora de las velocidades de acceso a la base de datos reduce el tiempo empleado en las tareas relacionadas con la base de datos, por ejemplo, buscar paquetes y resolver las dependencias del paquete. El método más seguro y fácil es ejecutarlo como root:

 # Pacman-optimize

Esto intentará poner todos los archivos pequeños juntos en una ubicación (física) en el disco duro para que la cabeza del disco duro no tenga que moverse tanto al acceder a todos los datos. Este método es seguro, pero no es infalible: depende del sistema de archivos, el uso del disco y la fragmentación del espacio vacío. Otra opción más agresiva sería eliminar primero los paquetes desinstalados del caché y eliminar los repositorios no utilizados antes de la optimización de la base de datos:

 # Pacman -Sc && pacman-optimize

Velocidades de descarga

Nota: Si las velocidades de descarga se han reducido a un rastreo, asegúrese de que está utilizando uno de los muchos espejos y no ftp.archlinux.org, que se estrangula desde marzo de 2007 . Al descargar paquetes pacman usa los espejos en el orden en que están en /etc/pacman.d/mirrorlist . El espejo que está en la parte superior de la lista por defecto, sin embargo, puede no ser el más rápido para usted. Para seleccionar un espejo más rápido, consulte Espejos . La velocidad de Pacman en la descarga de paquetes también puede ser mejorada mediante el uso de una aplicación diferente para descargar paquetes, en lugar del descargador de archivos integrado de Pacman. En todos los casos, asegúrese de tener la última Pacman antes de hacer cualquier modificación.

 # Pacman -Syu

Powerpill

Powerpill es un envoltorio de Pacman que utiliza la descarga paralela y segmentada para tratar de acelerar las descargas de Pacman.

Wget

Esto también es muy útil si necesita configuraciones proxy más potentes que las capacidades incorporadas de pacman.

Para usar wget , primero instale el paquete wget y luego modifique /etc/pacman.conf descomentando la siguiente línea en la sección [options] :

 XferCommand = / usr / bin / wget -c -q --show-progress --passive-ftp -O% o% u

En lugar de descomentar los parámetros de wget en /etc/pacman.conf , también puede modificar el archivo de configuración de wget directamente (el archivo de todo el sistema es /etc/wgetrc , por usuario los archivos son $HOME/.wgetrc .

Aria2

Aria2 es una utilidad de descarga de peso ligero con soporte para HTTP / HTTPS y transferencias directas continuas y segmentadas. Aria2 permite múltiples y simultáneas conexiones HTTP / HTTPS y FTP a un espejo de Arch, lo que debería resultar en un aumento en las velocidades de descarga para la recuperación de archivos y paquetes.

Nota: El uso de aria2c en XferCommand de Pacman no dará lugar a descargas paralelas de varios paquetes. Pacman invoca el XferCommand con un solo paquete a la vez y espera a que se complete antes de invocar el siguiente. Para descargar varios paquetes en paralelo, consulte Powerpill.

Instale aria2 y luego edite /etc/pacman.conf agregando la siguiente línea a la sección [options] :

 XferCommand = / usr / bin / aria2c --allow-overwrite = true --continue = true --file-allocation = ninguno --log-level = error --max-tries = 2 --max-connection-per-server = 2 --max-file-not-found = 5 --min-split-size = 5M --no-conf --remote-time = true --summary-interval = 60 --timeout = 5 --dir = / --out% o% u

Sugerencia: Esta configuración alternativa para usar pacman con aria2 intenta simplificar la configuración y añade más opciones de configuración.

Vea OPCIONES en man aria2c para las opciones de aria2c usadas.

  • -d, --dir : El directorio para almacenar los archivos descargados según lo especificado por pacman .
  • -o, --out : El nombre de archivo de salida del archivo (s) descargado (s).
  •  %o : Variable que representa el nombre de archivo local especificado por pacman.
  •  %u : Variable que representa la URL de descarga especificada por pacman.