Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Ponieważ w LibreOffice 4.0 zepsuli opcje, których potrzebuję, planuję pozostać przy 3.6.5 tak długo, jak to możliwe (i konieczne). Chciałem sobie przy pomocy preferences ustawić APT tak, aby posiadana przeze mnie wersja zawsze miała najwyższy priorytet.
W katalogu preferences.d mam dwa pliki:
$ cat /etc/apt/preferences.d/01_releases Package: * Pin: release o=Debian,a=testing Pin-Priority: 600 Package: * Pin: release o=Debian,a=unstable Pin-Priority: 400 Package: * Pin: release o=Debian,a=experimental Pin-Priority: 102
$ cat /etc/apt/preferences.d/10_LibreOffice Package: libreoffice* ure uno-libs3 Pin: version 3.6.5~rc2-1+b1 Pin-Priority: 999
Poza tym w apt.conf mam wpis, który chyba to dubluje:
$ cat /etc/apt/apt.conf.d/02default-release APT::Default-Release "testing";
Póki co jest dobrze — APT preferuje moją wersję, chociaż w repozytorium ma nowsze:
$ apt-cache policy libreoffice libreoffice: Zainstalowana: 1:3.6.5~rc2-1+b1 Kandydująca: 1:3.6.5~rc2-1+b1 Sposób przypięcia: (nie znaleziono) Tabela wersji: 1:4.0.3-1 999 400 http://ftp.pl.debian.org/debian/ unstable/main amd64 Packages 1:4.0.3~rc3-1 999 102 http://ftp.pl.debian.org/debian/ experimental/main amd64 Packages *** 1:3.6.5~rc2-1+b1 999 100 /var/lib/dpkg/status 1:3.5.4+dfsg-4 999 990 http://ftp.pl.debian.org/debian/ testing/main amd64 Packages
Zgodnie z dokumentacją apt_preferences, najwyższym priorytetem jest „P >= 1000”, który wymusza instalację danej wersji zawsze i wszędzie — nawet jeżeli oznacza to powrót do wcześniejszej wersji.
Jak teraz w pliku /etc/apt/preferences.d/10_LibreOffice zamienię Pin-Priority na 1001, to APT radośnie stwierdza, że wersja z Wheezy jest najlepszą możliwą i najchętniej dokonałby downgrade (patrzcie na „Kandydująca”):
$ apt-cache policy libreoffice libreoffice: Zainstalowana: 1:3.6.5~rc2-1+b1 Kandydująca: 1:3.5.4+dfsg-4 Sposób przypięcia: (nie znaleziono) Tabela wersji: 1:4.0.3-1 1001 400 http://ftp.pl.debian.org/debian/ unstable/main amd64 Packages 1:4.0.3~rc3-1 1001 102 http://ftp.pl.debian.org/debian/ experimental/main amd64 Packages *** 1:3.6.5~rc2-1+b1 1001 100 /var/lib/dpkg/status 1:3.5.4+dfsg-4 1001 990 http://ftp.pl.debian.org/debian/ testing/main amd64 Packages
Potrafi ktoś to wyjaśnić? Wygląda to tak, jak gdyby APT ignorował priorytety wyższe niż 999, ale najprawdopodobniej po prostu nie rozumiem, jak on działa.
System to właściwie Wheezy — co prawda używam testinga, ale od tygodnia nie robiłem aktualizacji. Wersje ważnych pakietów poniżej:
$ dpkg -l |grep -P '(dpkg|apt)\b' | while read state pkg version other; do echo "$pkg: $version" ; done apt: 0.9.7.8 apt-file: 2.5.1 apt-listchanges: 2.85.11 apt-show-versions: 0.20 apt-utils: 0.9.7.8 dpkg: 1.16.10 dpkg-dev: 1.16.10 libapt-inst1.5:amd64: 0.9.7.8 libapt-pkg-perl: 0.1.26+b1 libapt-pkg4.12:amd64: 0.9.7.8 libdpkg-perl: 1.16.10 python-apt: 0.8.8.2 python-apt-common: 0.8.8.2
Ostatnio edytowany przez Minio (2013-05-10 12:32:54)
Offline
Porównaj wersje:
$ cat /etc/apt/preferences.d/10_LibreOffice
Package: libreoffice* ure uno-libs3
Pin: version 3.6.5~rc2-1+b1
Pin-Priority: 999
$ apt-cache policy libreoffice
libreoffice:
Zainstalowana: 1:3.6.5~rc2-1+b1
Kandydująca: 1:3.6.5~rc2-1+b1
Sposób przypięcia: (nie znaleziono)
Z jedynką jest to samo?
Offline
Masz rację.
Byłem przekonany, że APT traktuje brak epoch (liczby przed dwukropkiem) jako 1. Tymczasem on traktuje brak jako 0. Tak więc mój pin pasował do pakietów 0:3.6.5~rc2-1+b1, czyli nigdzie. Po zamianie wersji na 1:3.6.5~rc2-1+b1 wszystko działa jak należy.
Dziękuję za pomoc.
Offline
Wiem co to epoch ;)
Tu akurat łatwo było na to wpaść:
Sposób przypięcia: (nie znaleziono)
Offline
yossarian: nie wątpię, że wiesz. Wyjaśnienie podałem raczej z myślą o tych, którzy nie wiedzą, a trafią na ten wątek np. z wyszukiwarki. Zwłaszcza że w Linuksie epoch zazwyczaj odnosi się do czasu (gdzie zresztą funkcjonuje w dwóch różnych znaczeniach), a tutaj chodzi o coś zupełnie innego.
Offline