Digamos que está ejecutando un servidor y no desea actualizar a Testing (Squeeze) desde Stable (Lenny) para instalar un paquete requerido o dos.
¿Cuál es la mejor manera de instalar solo ciertos paquetes de Testing?
Digamos que está ejecutando un servidor y no desea actualizar a Testing (Squeeze) desde Stable (Lenny) para instalar un paquete requerido o dos.
¿Cuál es la mejor manera de instalar solo ciertos paquetes de Testing?
Respuestas:
Muchas personas parecen tener miedo de mezclar estable con pruebas, pero, francamente, las pruebas son bastante estables por sí mismas, y con las preferencias adecuadas y la verificación de la solución, puede evitar la "deriva de estabilidad" que coloca a sus paquetes principales en el camino inestable.
"¿Las pruebas son bastante estables?" , usted pregunta. Si. Para que un paquete migre de inestable a prueba, debe tener cero errores abiertos durante 10 días consecutivos. Lo más probable es que, especialmente para los paquetes más populares, alguien envíe un informe de error para una versión inestable si algo está mal.
Incluso si no desea mezclar los entornos, es bueno tener la opción allí en caso de que encuentre algo que requiera una versión más nueva que la que está en estable.
Esto es lo que recomiendo para configurar esto:
Primero, cree los siguientes archivos en /etc/apt/preferences.d
:
stable.pref
:
# 500 <= P < 990: causes a version to be installed unless there is a
# version available belonging to the target release or the installed
# version is more recent
Package: *
Pin: release a=stable
Pin-Priority: 900
testing.pref
:
# 100 <= P < 500: causes a version to be installed unless there is a
# version available belonging to some other distribution or the installed
# version is more recent
Package: *
Pin: release a=testing
Pin-Priority: 400
unstable.pref
:
# 0 < P < 100: causes a version to be installed only if there is no
# installed version of the package
Package: *
Pin: release a=unstable
Pin-Priority: 50
experimental.pref
:
# 0 < P < 100: causes a version to be installed only if there is no
# installed version of the package
Package: *
Pin: release a=experimental
Pin-Priority: 1
(No tenga miedo de las cosas inestables / experimentales aquí. Las prioridades son lo suficientemente bajas como para que nunca se instale automáticamente ninguna de esas cosas. Incluso la rama de prueba se comportará, ya que solo va a instalar los paquetes que desea ser en pruebas)
Ahora, creando un conjunto coincidente para /etc/apt/sources.list.d
:
stable.list
: Copia de tu original /etc/apt/sources.list
. Cambie el nombre del archivo antiguo a algo como sources.list.orig
.
testing.list
: Igual que stable.list
, excepto con testing
.
unstable.list
: Igual que stable.list
, excepto con unstable
, y eliminar las listas de seguridad.
experimental.list
: Igual que unstable.list
, excepto con experimental
.
También puede agregar una oldstable
en sources.lists.d
y preferences.d
(usar una prioridad de 1), aunque este apodo tenderá a punto de expirar y desaparecer antes del siguiente ciclo estable. En casos como ese, puede usar http://archive.debian.org/debian/
y "codificar" la versión de Debian (etch, lenny, etc.).
Para instalar la versión de prueba de un paquete, simplemente use aptitude install lib-foobar-package/testing
, o simplemente acceda a la GUI de aptitude y seleccione la versión dentro de los detalles del paquete (presione enter en el paquete que está viendo).
Si recibe quejas de conflictos de paquetes, primero mire las soluciones. En la mayoría de los casos, el primero será "no instale esta versión". Aprenda a usar las opciones de resolución de aceptar / rechazar por paquete. Por ejemplo, si está instalando foobar-package / testing, y la primera solución es "no instale foobar-package / testing", marque esa opción como rechazada, y las otras soluciones nunca volverán a ese camino nuevamente. En casos como estos, probablemente tendrá que instalar algunos otros paquetes de prueba.
Si se está volviendo demasiado complicado (como si estuviera tratando de actualizar libc o el kernel o algún otro sistema central enorme), puede rechazar esas rutas de actualización o simplemente abandonar la actualización inicial por completo. Recuerde que solo va a actualizar cosas a pruebas / inestables si lo permite.
EDITAR: se corrigieron algunos pines de prioridad y se actualizó la lista.
apt-get update
después de crear los archivos de configuración?
sudo apt-get update
, recibí un error de actualización. Luego reinicié, lo que me dio Xsession error
, reinicié nuevamente, y ahora no tengo interfaz gráfica de usuario. El /dev/sda1/
ahora está lleno. Excelente.
En /etc/apt/apt.conf.d
agregar el siguiente archivo
99defaultrelease
:
APT::Default-Release "stable";
en /etc/apt/sources.list.d
- agregar URL para probar / fuentes inestables
stable.list
:
deb http://ftp.de.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.de.debian.org/debian/ stable main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
testing.list
:
deb http://ftp.de.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.de.debian.org/debian/ testing main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
correr
apt-get update
y luego instala lo que necesitas con
apt-get -t testing install something
Tenga mucho cuidado si instala cosas que tienen muchas dependencias. Preferiblemente no hagas esto en producción.
También puedes probar tu suerte en backports o repositorio similar.
apt_preferences
Defina el nivel predeterminado al que el sistema debe 'actualizarse de forma segura' en el archivo / etc / apt / ferences :
man apt_preferences
Hay muchas cosas que puede hacer con apt_preferences pero por simplicidad ...
Necesitaba instalar un solo paquete (autoMysqlBackup) que solo estaba disponible en Pruebas. La solución fue agregar lo siguiente a / etc / apt /ferences:
Explanation: Uninstall or do not install any Debian-originated
Explanation: package versions other than those in the stable distro
Package: *
Pin: release a=stable
Pin-Priority: 900
Package: *
Pin: release o=Debian
Pin-Priority: -10
Con múltiples repositorios agregados a /etc/apt/sources.list, aptitude ahora solo se actualizará a su versión especificada aunque los repositorios de versiones posteriores estén listados (en este caso, 'estable').
deb http://mirror.aarnet.edu.au/debian/ lenny main
deb-src http://mirror.aarnet.edu.au/debian/ lenny main
deb http://mirror.aarnet.edu.au/debian/ squeeze main
deb-src http://mirror.aarnet.edu.au/debian/ squeeze main
Entonces, para instalar ese paquete, todo lo que tiene que hacer es:
$ aptitude install -t testing packageName
Por lo que vale, el consejo general que siempre he visto es "No mezclar estable con nada". La mayoría de los tutoriales de sistemas mixtos son para pruebas de mezcla e inestables.
El razonamiento parece ser que si combina estable con pruebas, los paquetes muy básicos (como libc6) requerirán actualizaciones (para instalar el software de las pruebas), y una vez que estos paquetes básicos pasen a las pruebas, todo el sistema puede derivar de esa manera.
Aquí hay dos alternativas:
La documentación de Debian es extensa en el tema y le recomiendo que profundice, ya que revelará realmente la belleza del sistema Debian.
Eche un vistazo a Cómo mantener un sistema mixto , le explicará todo lo que necesita saber.
Otra forma, que podría evitar la instalación de demasiadas dependencias de Testing o Sid, es esta: le dice a apt-get que obtenga la fuente del paquete de Testing o Sid y cree un paquete para su sistema utilizando las herramientas de Debian (no es necesario modificar manualmente con fuentes).
Citando desde aquí:
https://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable.3F
¿Cómo respaldo un paquete sid a prueba o estable?
Instale la fuente de Debian (y las herramientas de desarrollo, especialmente debhelper, devscripts y build-essential), y luego compile el paquete.
Paso a paso:
add a deb-src line for sid to your sources.list apt-get update apt-get build-dep PACKAGE_NAME apt-get -b source PACKAGE_NAME
Las debs resultantes deben estar en el directorio actual y pueden instalarse con dpkg -i the.deb.
Lo he estado haciendo durante un período prolongado de tiempo para estar seguro de decir que es lo suficientemente seguro y conveniente. Con la configuración a continuación, la versión estable se instalará de manera predeterminada, sin embargo, Aptitude también le permitirá elegir versiones con respaldo o inestables si así lo desea:
Hay cuatro cosas que deben editarse, la versión de fijación predeterminada debe establecerse, las fuentes necesitan backports y agregar inestable, lo que reduce la prioridad de fijación de backports / paquetes inestables, y la configuración de visualización de aptitud debe modificarse para mostrar la fijación.
Apt :: default-Release "estable";
# deb cdrom: [Debian GNU / Linux 6.0.0 _Squeeze_ - Oficial Multi-arquitectura amd64 / i386 NETINST # 1 20110205-14: 45] / squeeze main deb http://ftp.us.debian.org/debian/ squeeze main deb-src http://ftp.us.debian.org/debian/ squeeze main deb http://security.debian.org/ squeeze / updates main deb-src http://security.debian.org/ squeeze / updates main # squeeze-update, anteriormente conocido como 'volátil' deb http://ftp.us.debian.org/debian/ squeeze-updates main deb-src http://ftp.us.debian.org/debian/ squeeze-updates main # apretar backports # http://backports.debian.org/Instructions/ deb http://backports.debian.org/debian-backports squeeze-backports main # inestable # http://wiki.debian.org/AptPreferences deb http://ftp.us.debian.org/debian/ inestable main deb-src http://ftp.us.debian.org/debian/ inestable main # no libre ex. sun java #deb http://ftp.us.debian.org/debian/ squeeze non-free # deb-src http://ftp.us.debian.org/debian/ squeeze non-free
etc/apt/preferences
archivo de fijación: si el archivo no existe, créelo.# Prioridades de fijación de paquetes # Ver http://wiki.debian.org/AptPreferences y http://manpages.debian.net/cgi-bin/man.cgi?query=apt_preferences # # # En la tuerca se instala el PIN más alto # # # Los valores predeterminados de pining son los siguientes, además de nuestra configuración: # 990 - para la versión que no está instalada pero SÍ pertenece a nuestra configuración `APT :: Default-Relase" estable "`. # 500 - para versiones que no están instaladas y no pertenecen a la versión de destino # 100 - para paquetes que ya están instalados, esto también significa otras versiones del mismo paquete # 1 - para paquetes experimentales; paquetes con "NotAutomatic: yes" # # # Nuestros Pinnings # 400 - backports que se pueden instalar de forma segura sin la necesidad de actualizar otros paquetes # 50 - los paquetes inestables, la instalación forzada en la pantalla de detalles, puede generar conflictos Paquete: * Pin: liberar n = squeeze-backports Prioridad de clavija: 400 Paquete: * Pin: suelte a = inestable
Aptitude :: UI :: Package-Display-Format "% c% a% M% p% Z% v% V% i";
source.list
lo tanto, en él debería decir el nombre del código en jessie
lugar de squeeze
. La política de Debian testing
es casi estable y los paquetes han sido casi tan nuevos como desde el unstable
repositorio. Me estoy quedando sin espacio aquí, así que eche un vistazo a: wiki.debian.org/DebianReleases , wiki.debian.org/StableUpdates y wiki.debian.org/StableProposedUpdates ; los dos últimos son fuentes de repositorio adicionales.
Si su selección de paquetes es más complicada o la instalación se repetirá en varias máquinas, puede considerar configurar un repositorio privado que refleje un subconjunto de los repositorios oficiales. Esto requiere un poco de trabajo para configurar el repositorio, pero la recompensa es fácil de mantener con un mínimo de configuración en cada cliente y resultados repetibles al hacer docenas de instalaciones. Esto me resulta útil incluso cuando solo se están instalando uno o dos paquetes, y utilizo este método para automatizar y mantener las instalaciones en la nube. Un solo servidor en un VPS barato puede manejar docenas de repositorios privados.
Para configurar su servidor de repositorio privado:
# Install aptly.
apt-get install aptly
# Create local mirror (choose a source mirror near you).
aptly mirror create -filter="mirror-contains-no-packages" stretch-roundcube http://httpredir.debian.org/debian stretch main
# Configure filters for local mirror.
aptly mirror edit -filter="Name (% roundcube*)" stretch-roundcube
# Update local mirror.
aptly mirror update stretch-roundcube
# Drop previously published repositories and mirrors, if running these commands in a script.
aptly publish drop stretch
# Drop snapshot, if running these commands in a script.
aptly snapshot drop stretch-roundcube
# Create new snapshot.
aptly snapshot create stretch-roundcube from mirror stretch-roundcube
# Publish snapshot.
aptly publish snapshot -architectures=i386,amd64 -distribution=stretch -component=roundcube -label="Your Name" -origin="Your Name" stretch-roundcube
Luego configure su servidor web de elección para servir los archivos del repositorio estático. Posiblemente proteja el repositorio con un certificado de seguridad y autenticación básica.
Para mantener automáticamente su repositorio privado y obtener actualizaciones desde arriba, coloque lo anterior en un script y ejecute desde un trabajo cron.
Para configurar su máquina cliente, en su máquina cliente:
# Configure private repository without authentication.
echo 'deb http://private.repository.example.com/ stretch roundcube' > /etc/apt/sources.list.d/private.repository.example.com.list
# Configure private repository with authentication.
echo 'deb https://hostname:password@private.repository.example.com/ stretch roundcube' > /etc/apt/sources.list.d/private.repository.example.com.list
apt-get install apt-transport-https
# Update.
apt-get update
# Install package.
apt-get install roundcube
Para mantener su máquina cliente y obtener todas sus actualizaciones de repositorio privado, en su máquina cliente:
# Update.
apt-get update
# Upgrade.
apt-get upgrade
Otra opción es descargar en su lugar el paquete fuente de la prueba. APT puede construir automáticamente el paquete fuente después de descargarlo. De esta manera, sus paquetes estables no se verán afectados por las actualizaciones de prueba. La única desventaja es que tomará más tiempo que simplemente descargar e instalar el paquete binario.
Para configurar APT para descargar paquetes fuente de las pruebas, simplemente agregue:
deb-src http://<your debian mirror here> testing main
Si solo desea seguir las pruebas actuales y no las futuras, reemplace "pruebas" con el nombre de código actual (al momento de escribir esto es "buster")