Angenommen, Sie betreiben einen Server und möchten nicht von Stable (Lenny) auf Testing (Squeeze) aktualisieren, um nur ein oder zwei erforderliche Pakete zu installieren.
Was ist der beste Weg, um nur bestimmte Pakete von Testing zu installieren?
Angenommen, Sie betreiben einen Server und möchten nicht von Stable (Lenny) auf Testing (Squeeze) aktualisieren, um nur ein oder zwei erforderliche Pakete zu installieren.
Was ist der beste Weg, um nur bestimmte Pakete von Testing zu installieren?
Antworten:
Viele Menschen scheinen Angst davor zu haben, Stable mit Testing zu vermischen, aber ehrlich gesagt ist das Testen für sich genommen ziemlich stabil, und mit den richtigen Einstellungen und der Überprüfung der Lösung können Sie die "Stabilitätsverschiebung" vermeiden, die Ihre Kernpakete auf den instabilen Pfad bringt.
"Testen ist ziemlich stabil?" , du fragst. Ja. Damit ein Paket von Unstable zu Testing migriert werden kann, muss es an 10 aufeinanderfolgenden Tagen keine offenen Fehler aufweisen. Es besteht die Möglichkeit, dass jemand, insbesondere bei den populäreren Paketen, einen Fehlerbericht für eine instabile Version einreicht, wenn etwas nicht stimmt.
Auch wenn Sie die Umgebungen nicht mischen möchten, ist es immer noch schön, die Option dort zu haben, falls Sie auf etwas stoßen, das eine neuere Version erfordert als das, was in stable enthalten ist.
Folgendes empfehle ich zum Einrichten:
Erstellen Sie zunächst die folgenden Dateien in /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
(Haben Sie keine Angst vor dem instabilen / experimentellen Material hier. Die Prioritäten sind niedrig genug, dass dieses Material niemals automatisch installiert wird. Sogar der Testzweig wird sich verhalten, da nur die Pakete installiert werden, die Sie sein möchten im Test.)
Erstellen Sie nun ein passendes Set für /etc/apt/sources.list.d
:
stable.list
: Kopieren Sie von Ihrem Original /etc/apt/sources.list
. Benenne die alte Datei in so etwas wie um sources.list.orig
.
testing.list
: Wie stable.list
, außer mit testing
.
unstable.list
: Wie stable.list
, außer mit unstable
und Sicherheitslisten entfernen.
experimental.list
: Wie unstable.list
, außer mit experimental
.
Sie können auch ein oldstable
In sources.lists.d
und hinzufügen preferences.d
(verwenden Sie eine Priorität von 1), obwohl dieser Moniker dazu neigt, abzulaufen und vor dem nächsten stabilen Zyklus zu verschwinden. In solchen Fällen können Sie http://archive.debian.org/debian/
die Debian-Version (Etch, Lenny usw.) verwenden und hartcodieren.
Um die Testversion eines Pakets zu installieren, verwenden Sie einfach aptitude install lib-foobar-package/testing
oder springen Sie einfach in die Benutzeroberfläche von aptitude und wählen Sie die Version in den Paketdetails aus (drücken Sie die Eingabetaste für das betreffende Paket).
Wenn Sie Beschwerden über Paketkonflikte erhalten, schauen Sie sich zuerst die Lösungen an. In den meisten Fällen lautet die erste "Diese Version nicht installieren". Erfahren Sie, wie Sie die Auswahlmöglichkeiten für das Akzeptieren / Ablehnen von Resolvern pro Paket verwenden. Wenn Sie beispielsweise foobar-package / testing installieren und die erste Lösung "foobar-package / testing nicht installieren" lautet, markieren Sie diese Auswahl als abgelehnt, und die anderen Lösungen wechseln nie wieder auf diesen Pfad. In solchen Fällen müssen Sie wahrscheinlich ein paar andere Testpakete installieren.
Wenn es zu haarig wird (wie wenn versucht wird, libc oder den Kernel oder ein anderes großes Kernsystem zu aktualisieren), können Sie diese Upgrade-Pfade entweder ablehnen oder einfach das anfängliche Upgrade ganz beenden. Denken Sie daran, dass nur dann ein Upgrade auf Testing / Unstable durchgeführt wird, wenn Sie dies zulassen.
BEARBEITEN: Einige Prioritäts-Pins wurden behoben und die Liste aktualisiert.
apt-get update
nachdem Sie die Konfigurationsdateien erstellt haben?
sudo apt-get update
ich einen Update-Fehler bekommen. Dann neu gestartet, was gab mir Xsession error
, neu gestartet, und jetzt habe ich keine gui. das /dev/sda1/
ist jetzt voll. Toll.
In /etc/apt/apt.conf.d
den folgenden Datei
99defaultrelease
:
APT::Default-Release "stable";
in /etc/apt/sources.list.d
- füge Urls für testing / unstable Quellen
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
Lauf
apt-get update
und dann installieren, was Sie mit brauchen
apt-get -t testing install something
Seien Sie sehr, sehr vorsichtig, wenn Sie Dinge installieren, die viele Abhängigkeiten haben. Tun Sie dies vorzugsweise nicht in der Produktion.
Sie können Ihr Glück auch in Backports oder einem ähnlichen Repository versuchen .
apt_präferenzen
Definieren Sie in der Datei / etc / apt / preferences die Standardstufe, auf die das System sicher aktualisieren soll:
man apt_preferences
Mit apt_preferences kann man viel anfangen, aber der Einfachheit halber ...
Ich musste ein einzelnes Paket (autoMysqlBackup) installieren, das nur in Testing verfügbar war. Die Lösung bestand darin, Folgendes zu / etc / apt / preferences hinzuzufügen:
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
Mit mehreren zu /etc/apt/sources.list hinzugefügten Repositorys wird Aptitude jetzt nur auf die angegebene Version aktualisiert, obwohl die Repositorys der späteren Versionen aufgelistet sind (in diesem Fall "stable").
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
Um dieses Paket zu installieren, müssen Sie lediglich Folgendes tun:
$ aptitude install -t testing packageName
Für das, was es wert ist, ist der allgemeine Rat, den ich immer gesehen habe: "Mischen Sie sich nicht mit irgendetwas stabil." Die meisten Tutorials zu gemischten Systemen sind für das Mischen von Tests und Instabilitäten gedacht.
Die Argumentation scheint zu sein, dass, wenn Sie Stable mit Testing mischen, sehr einfache Pakete (wie libc6) Updates benötigen (um Software von Testing zu installieren), und sobald diese Basispakete zu Testing wechseln, kann das gesamte System auf diese Weise driften.
Hier sind zwei Alternativen:
Die Debian-Dokumentation ist umfangreich in diesem Thema und ich rate nachdrücklich, sich damit zu befassen, da sie die Schönheit des Debian-Systems wirklich enthüllen wird.
Werfen Sie einen Blick auf Wie man ein gemischtes System verwaltet . Hier erfahren Sie alles, was Sie wissen müssen.
Eine andere Möglichkeit, die verhindern könnte, dass zu viele Abhängigkeiten von Testing oder Sid installiert werden, ist folgende: Sie weisen apt-get an, die Quelle des Pakets von Testing oder Sid abzurufen und ein Paket für Ihr System mit Debian-Werkzeugen zu erstellen (Sie müssen nicht manuell basteln mit Quellen).
Zitiert von hier:
https://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable.3F
Wie portiere ich ein Sid-Paket in einen Test- oder Stable-Zustand zurück?
Installieren Sie die Debian-Quelle (und die Entwicklungstools, insbesondere debhelper, devscripts und build-essential) und erstellen Sie dann das Paket.
Schritt für Schritt:
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
Die resultierenden Debs sollten sich im aktuellen Verzeichnis befinden und können mit dpkg -i the.deb installiert werden.
Ich habe es für einen längeren Zeitraum getan, um sicher zu sein, dass es sicher genug ist und bequem gemacht werden kann. Mit dem folgenden Setup wird die stabile Version standardmäßig installiert. In Aptitude können Sie jedoch auch eine backportierte oder eine instabile Version auswählen, wenn dies gewünscht wird:
Es müssen vier Dinge bearbeitet werden, das Standard-Pinning-Release muss festgelegt werden, die Quellen müssen Backports und Unstable hinzugefügt werden, die Pinning-Priorität von Backports / Unstable-Paketen muss gesenkt werden, und die Einstellungen für die Eignungsanzeige müssen geändert werden, um das Pinning anzuzeigen.
Apt :: default-Release "stable";
# deb cdrom: [Debian GNU / Linux 6.0.0 _Squeeze_ - Offizielle Multi-Architektur 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, früher bekannt als 'volatile' deb http://ftp.us.debian.org/debian/ squeeze-updates main deb-src http://ftp.us.debian.org/debian/ squeeze-updates main # Backports quetschen # http://backports.debian.org/Instructions/ deb http://backports.debian.org/debian-backports squeeze-backports main # instabil # http://wiki.debian.org/AptPreferences deb http://ftp.us.debian.org/debian/ unstable main deb-src http://ftp.us.debian.org/debian/ unstable main # nicht frei ab. Sonne 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
Pinning-Datei bearbeiten - Wenn die Datei nicht existiert, erstelle sie.# Prioritäten beim Festlegen von Paketen # Siehe http://wiki.debian.org/AptPreferences und http://manpages.debian.net/cgi-bin/man.cgi?query=apt_preferences # # In der Nussschale wird die höchste PIN installiert # # Folgende Pining-Standardeinstellungen gelten zusätzlich zu unseren Einstellungen: # 990 - für Versionen, die nicht installiert sind, aber zu unserer `APT :: Default-Relase" stable "-Einstellung gehören. # 500 - für Versionen, die nicht installiert sind und nicht zur Zielversion gehören # 100 - für Pakete, die bereits installiert sind, bedeutet dies auch andere Versionen desselben Pakets # 1 - für experimentelle Pakete; Pakete mit "NotAutomatic: yes" # # Unsere Pinnings # 400 - Backports, die sicher installiert werden können, ohne dass andere Pakete aktualisiert werden müssen # 50 - Instabile Pakete, deren Installation im Detailfenster erzwungen wird, können zu Konflikten führen Paket: * Pin: Freigabe n = Squeeze-Backports Pin-Priorität: 400 Paket: * Pin: lasse a = instabil los
Aptitude :: UI :: Paket-Anzeige-Format "% c% a% M% p% Z% v% V% i";
source.list
sollte es Codenamen sagen jessie
statt squeeze
. Debians Politik testing
ist nahezu stabil und Pakete waren fast so neu wie aus dem unstable
Repository. Mir geht hier der Speicherplatz aus, schauen Sie sich also bitte Folgendes an: wiki.debian.org/DebianReleases , wiki.debian.org/StableUpdates und wiki.debian.org/StableProposedUpdates ; Die letzten beiden sind zusätzliche Repository-Quellen.
Wenn Ihre Paketauswahl umfangreicher ist oder die Installation auf mehreren Computern wiederholt wird, können Sie ein privates Repository einrichten, das eine Teilmenge der offiziellen Repositorys widerspiegelt. Dies erfordert ein wenig Arbeit bei der Konfiguration des Repositorys, aber die Belohnung lässt sich mit einem Minimum an Konfiguration auf jedem Client und wiederholbaren Ergebnissen bei Dutzenden von Installationen einfach verwalten. Ich finde dies hilfreich, auch wenn nur ein oder zwei Pakete installiert werden, und verwende diese Methode zur Automatisierung und Wartung von Cloud-Installationen. Ein einzelner Server auf einem billigen VPS kann Dutzende privater Repositorys verwalten.
So konfigurieren Sie Ihren privaten Repository-Server:
# 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
Konfigurieren Sie anschließend den gewünschten Webserver für die Bereitstellung der statischen Repository-Dateien. Schützen Sie das Repository möglicherweise mit einem Sicherheitszertifikat und einer grundlegenden Authentifizierung.
Um Ihr privates Repository automatisch zu verwalten und Updates vom Upstream abzurufen, fügen Sie die obigen Informationen in ein Skript ein und führen Sie sie von einem Cron-Job aus.
So konfigurieren Sie Ihren Client-Computer auf Ihrem Client-Computer:
# 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
Gehen Sie wie folgt vor, um Ihren Clientcomputer zu warten und alle Updates für Ihr privates Repository auf Ihrem Clientcomputer abzurufen:
# Update.
apt-get update
# Upgrade.
apt-get upgrade
Eine andere Möglichkeit ist, stattdessen das Quellpaket aus dem Test herunterzuladen. APT kann das Quellpaket nach dem Herunterladen automatisch erstellen. Auf diese Weise werden Ihre Stable-Pakete durch das Testen von Updates nicht beeinträchtigt. Der einzige Nachteil ist, dass es mehr Zeit braucht, als nur das Binärpaket herunterzuladen und zu installieren.
Um APT so zu konfigurieren, dass Quellpakete aus dem Test heruntergeladen werden, fügen Sie einfach Folgendes hinzu:
deb-src http://<your debian mirror here> testing main
Wenn Sie nur den aktuellen und nicht den zukünftigen Tests folgen möchten, ersetzen Sie "testing" durch den aktuellen Codenamen (ab diesem Zeitpunkt ist es "buster").