PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pinning Modus von apt-get? Wie kann man Debian updaten ohne nach unstable zu wechseln



Catonga
05.01.02, 03:13
Hallo,


Im moment bin ich grad dabei Debian (Woody 3.0) auszuprobieren.

Nun habe ich aber folgendes Problem.


Ich habe hier z.b. unter Woody noch eine alte Version von Mozilla 0.9.1.
Wenn ich aber

$ apt-get install mozilla

aufrufe, findet er keine neuere Version von Mozilla im Woody Baum.

Mozilla gibt es anscheinend nicht mehr in Woody als Paket, diese 0.9.1 Version ist eine cvs Version die auf der Debian CD-Rom (vom Linuxtag) drauf wahr.



Nun würde ich aber gerne Mozilla auf Version 0.9.7 updaten.
Das Problem dabei, Mozilla 0.9.7 gibt es als Paket nur in Debian unstable (also Debian Sid). (Woody ist testing, Debian Potato ist stable)


Jetzt habe ich aber in der WoodyChangelog (http://www.debian.org/releases/testing/i386/release-notes.en.txt) folgendes gelesen:





The Debian package management tools apt and dpkg have been improved
considerably in this release. Now apt supports "pinning" in which the
user can opt to download certain packages from different
distributions, e.g. testing or unstable, while still keeping the bulk
of his installation in the stable distribution. APT will
automagically download and install appropriate dependent packages from
the advanced distribution as required. An apt "pinning" howto is
available here.



Das heißt apt-get bietet jetzt eine Möglichkeit an z.b. auf einer stable Version z.b. ein Paket von einer unstable Debian Version zu installieren, ohne dabei die ganze Distribution von stable (hier testing, also Woody) auf unstable (hier Sid) upgraden zu müssen.


Der Befehl um so etwas zu machen lautet angeblich so:

$ apt-get install Mozilla/unstable

Allgemein:
$ apt-get install Paketname/Debian-Version

(für den Punkt "Debian Version" sind die Werte: "testing", "unstable" und "stable" gültig)

(Mehr dazu über diese Paket/Version Option gibt es hier: http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html)


Mein Problem ist jetzt aber, das ich in
/etc/apt/sources.list
Keinen Mirror für Debian Sid (unstable) angegeben habe,
daher findet apt-get gar keine neueren Mozilla Pakete als meine bisherige 0.9.1 Version.

Die Frage ist jetzt nun, bzw. die Befürchtung:

Wenn ich jetzt diese unstable Url angebe und dann ein
$ apt-get update
ausführe, dann wird doch meine komplette Datenbank aktualisiert.

Wenn ich jetzt aber irgendwann einmal
$ apt-get upgrade

eingeben würde, dann würde ja meine komplette Debian Woody Distribution auf Sid unstable upgedated werden.
Wie kann ich aber genau das verhindern?


Jedes mal explizit beim updaten den Distribution Versionnamen anzugeben, also z.b:
$ apt-get upgrade */stable

kann es ja nicht sein, bzw. funktioniert sowieso nicht.



Also wie kann ich
$ apt-get install Paketname/unstable
nutzen (inklsuive eintrag in /etc/apt/sources.list so das es überhaupt funktioniert und apt-get die pakete findet) ohne
meine komplette Distri beim nächsten

$ apt-get upgrade
komplett ungewollt upzugraden.
(ist es nicht so, das wenn eine unstable einmal in der sources.list drinsteht das auf diese dann auch upgedated wird)



Angeblich gibt es noch eine andere Möglichkeit mit einer Konfiurationsdatei in /etc/apt/preferences
in der man das Einstellen kann.
Aber die Man Page von apt-get ist leider nicht besonders hilfreich dabei und auch nicht besonders leicht verständlich.
Die Datei /etc/apt/preferences ist zudem nicht vorhanden, man muß diese also erst noch selber anlegen.



Kann mir das jemand näher erklären, wie löse ich dieses Problem?

Also bestimmte Pakete upzudaten ohne die ganze Distri updaten
zu müssen?


Woody würde ich gerne behalten und nur ganz bestimmte Pakete aus der unstable (sid) installieren, auf die Möglichkeit Woody ansich mit Woody eigenen Paketen upzudaten (z.b. für security fixes) will ich aber nicht verzichten. (es muß also verhindert werden das bei einem $ apt-get upgrade aufruf Woody auf Sid upgedated wird).

Jedesmal die unstable url auszukommentieren, wenn ich Woody wieder auf den neusten stand bringen möchte kann es ja wohl auch nicht sein.



Was Mozilla an sich betrifft, ne Lösung wie ich Mozilla 0.9.7 per Binary Installer oder Sourcen installieren kann brauche ich nicht.
Weil sonst könnte ich auch gleich auf das ganze apt-get Zeugts und Debian ansich verzichten und gleich bei Slackware 8.0 bleiben.

Trillian
05.01.02, 03:20
-unstable sourcen in sources.list schreiben
-apt-get update
-apt-get install mozilla-browser (so heisst das paket in unstable)
-apt-get install andere_pakete-die_ich_upgraden_will
-unstable sourcen aus sources.list raus
-apt-get update

Das is die lahme Methode, so mache ich das, weil ich zu faul bin, mir die Features von APT in diesem Bereich anzugucken.

taylor
22.08.02, 18:15
Hi!

Ich krame de Thread mal wieder raus, es ist ja einige Zeit vergangen.
Die Situation bei mir ist: Sarge läuft, mit einigen Paketen aus Unstable (lieber wäre mir fast Woody + Unstable).
Nun würde ich gerne das Pinning hinbekommen:

Gelesen habe ich die Manpages zu apt_preferences und apt sowie die Punkte der Debian User de FAQ und der #debian FAQ.

http://dugfaq.sylence.net/dug-faq.htm/ch-packet.htm#s4.15
http://channel.debian.de/faq/ch-dpkgundco.html

In /etc/apt/apt.conf sieht's so aus:


// $Id: apt.conf,v 1.43 1999/12/06 02:19:38 jgg Exp $
APT
{
Get
{
Download-Only "false";
};

};

Acquire
{
Retries "0";
};

DSelect
{
Clean "never"; // always|auto|prompt|never
};

DPkg
{
Options {"--force-overwrite";}
}
APT::Default-Release "testing";

Ausserdem habe ich in /etc/apt/preferences das hier:


Package: *
Pin: release a=stable
Pin-Priority: 900

Package: *
Pin: release o=Debian
Pin-Priority: -10

In meiner /etc/apt/sources.list stehen diese Einträge:


#
# Sarge Pakete
#
deb ftp://ftp.uni-erlangen.de/pub/Linux/debian/ sarge main
deb-src ftp://ftp.uni-erlangen.de/pub/Linux/debian/ sarge main
deb http://non-us.debian.org/debian-non-US sarge/non-US main
deb-src http://non-us.debian.org/debian-non-US sarge/non-US main

#
# Sid Pakete
#
deb http://ftp.fr.debian.org/debian unstable main
#deb-src http://ftp.fr.debian.org/debian sid main
deb http://ftp.fr.debian.org/debian-non-US unstable/non-US main
#deb-src http://ftp.fr.debian.org/debian-non-US sid/non-US main

Soweit ich durch Lesen und Suchen gekommen bin, sollte das funktionieren, tut es aber nicht.

Zunächst habe ich ein 'apt-get update' laufen lassen.
Das darauffolgende 'apt-get -u upgrade' zeigt mir einen Haufen Pakete an, und wenn ich das Update starte...


Do you want to continue? [Y/n]
Get:1 http://ftp.fr.debian.org unstable/main abiword 1.0.2+cvs.2002.08.21-1 [12.6kB]

...sehe ich leider, dass er sich aus dem SID Pool bedient.
Das tut er sogar, wenn ich ihn mit 'apt-get -t sarge update' zu Sarge zwingen will.

Falls hier irgendjemand das laufen hat, wäre schön das Hinzubekommen...

Gruß,
Taylor

BeS
22.08.02, 18:24
Hi,
also ich habe in meiner /etc/apt/apt.conf Folgendes stehen:



// Pre-configure all packages with debconf before they are installed.
// If you don't like it, comment it out.
DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt || true";};

APT{
Default-Release "testing";

Get{
Purge "true";
};
};


das müsste eigentlich funktionieren.

bernie
22.08.02, 18:25
Hi,

zu "pinning" kann ich nichts sagen, aber Trillian hat es eh schon gesagt. Nachdem der Mozilla ja nicht auf viele andere Pakete dependet kannst es ja einfach so machen. sources.list austauschen, updaten, apt-get install, sources.list austauschen, upaten. fertig.

Ciao, Bernie

BeS
22.08.02, 18:33
Hi,
das mit dem pinning ist im prinzip ganz einfach.
Das heisst im Prinzip nichts anderes als das sich apt-get merkt woher du das paket hast.
Als kleines Beispiel:
Du installierst woody, dann sind erstamal alle Pakete als woody Pakete markiert.
Jetzt trägst du unstable in deine source.list ein und änderst deine apt.conf in:

// Pre-configure all packages with debconf before they are installed.
// If you don't like it, comment it out.
DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt || true";};
APT{
Default-Release "stable";

Get{
Purge "true";
};
};

Wenn du jetzt mozilla mit
apt-get install -t unstable mozilla installierst merkt sich apt-get das du mozilla aus unstable haben willst.
Bei jedem weiteren apt-get update && apt-get upgrade werden jetzt alle Pakete aus woody aktualisiert, mozilla (und seine Abhängigkeiten) werden aber aus unstable aktualisiert.

taylor
23.08.02, 11:49
Danke soweit. Es sollte wirklich funkionieren.
Ich habe meine apt.conf ein wenig aufgeräumt und auf die von BeS reduziert.

Ich hab das Gefühl, mein Apt hat sich zuviel gemerkt und ist nun der Meinung, dass ich gerne ~200 Pakete aus Sid haben *will*

Hat jemand eine Idee, *wo* apt sich das merkt? Habe so den Verdacht, dass das in /var/lib/apt/listchanges.db sitzt, vieleicht weiss jemand einen Weg, wie ich die bequem bearbeiten kann.

Beispiel hier ist "Abiword", dass er sich auch bei "apt-get install -t abiword" aus unstable ziehen will. Wenn ich Abiword erst entferne, und dann wird genau wie gewollt auch ohne "-t" Zwang aus Sarge geladen.

Katana
07.05.07, 22:29
*nachfünfjahrenausbuddel*
Also ich will hier unstable mldonkey-server auf mein stable (etch) installieren.

Im Apt Howto steht wie ich ein komplettupdate auf sid verhindere

Für diesen Zweck muß die folgende Zeile in die /etc/apt/apt.conf eingefügt werden:
APT::Default-Release "testing";

Das Problem ist nun das die Datei garnicht da ist :confused:
statdessen ist da ein Ordner /etc/apt/apt.conf.d mit 2 weiteren dateien.
Soll ich die /etc/apt/apt.conf mit dem oben stehenden Inhalt einfach erstellen?

kreol
07.05.07, 23:03
Ich würde ja vermuten, daß Etch nicht als Default-Release "testing" sondern als "stable" eingetragen werden sollte...

Bezieht sich zwar noch auf apt-get, aber vllt. hilft Dir ja Link (http://www.derstappen-it.de/dokumentationen/debian-gnu-linux/apt-pinning/) weiter. Wenn die /etc/apt/preferences auch nicht existiert kannst Du sie einfach neu anlegen (wie die apt.conf auch).


Kreol

Katana
07.05.07, 23:18
Ich würde ja vermuten, daß Etch nicht als Default-Release "testing" sondern als "stable" eingetragen werden sollte...

Jup. Hast natürlich recht. Stable muss hin. War nur der ausschnitt aus der howto mit testing.

Die /etc/apt/preferences ist auch nicht da. Werde mal morgen die apt.conf erstellen und probieren.

gadget
08.05.07, 11:53
Ansonsten steht alles beachtenswerte dort: http://linuxwiki.de/Debian/AptPinning

Katana
08.05.07, 18:57
pinning hat funktioniert :)


apt-get install -t unstable mldonkey-server
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
libc6 libc6-i686 libgd2-noxpm locales
Vorgeschlagene Pakete:
glibc-doc libgd-tools makejail
Die folgenden Pakete werden ENTFERNT:
tzdata util-linux
Die folgenden NEUEN Pakete werden installiert:
mldonkey-server
Die folgenden Pakete werden aktualisiert:
libc6 libc6-i686 libgd2-noxpm locales
WARNUNG: Die folgenden essentiellen Pakete werden entfernt.
Dies sollte NICHT geschehen, wenn Sie nicht genau wissen, was Sie tun!
util-linux tzdata (wegen util-linux)
4 aktualisiert, 1 neu installiert, 2 zu entfernen und 623 nicht aktualisiert.
Es müssen 12,5MB Archive geholt werden.
Nach dem Auspacken werden 360kB Plattenplatz freigegeben worden sein.
Sie sind im Begriff, etwas potenziell Schädliches zu tun.
Zum Fortfahren geben Sie bitte „Ja, tu was ich sage!“ ein.

lol „Ja, tu was ich sage!“ :D

jetzt bin ich mir aber wegen der util-linux und tzdata unsicher :confused:

cane
08.05.07, 19:51
Ich würde es bleiben lassen und den mldonkey Server von Hand installieren, nicht wegen tzdata aber wegen der libc6

mfg
cane

gadget
09.05.07, 11:55
und 623 nicht aktualisiert
Check Deine /etc/apt/preferences! Sonst bekommst Du beim nächsten update Probleme!

RayJones
09.05.07, 15:06
Alternative könnte man amuled verwenden :)