Ето как става това:
Логваме се като root:
- Код за потвърждение: Избери целия код
~$ su
Правим си файл /etc/apt/preferences
- Код за потвърждение: Избери целия код
# nano /etc/apt/preferences
Можете да ползвате редактор по ваш избор вместо nano - kedit, gedit, vi ...
И в него описваме въпросния пакет/и по следния начин
- Код за потвърждение: Избери целия код
Package: <package>
Pin: <pin>
Pin-Priority: <pin's priority>
Където:
Package: име на пакет
Pin: версия на пакета
Pin-Priority: приоритет на версията
Под име на пакета разбираме наименованието му без версии, .deb разширения и т.н. Само името на пакета. Пример:
Package: fluxbox
Преди да започнете тази процедура трябва да сте наясно с точната версия на въпросния пакет който искате да заключите. Ако все още не сте има няколко начина да изведете тази информация:
- Код за потвърждение: Избери целия код
dpkg -l | grep пакет - Aко вече е инсталиран
- Код за потвърждение: Избери целия код
apt-cache search пакет
apt-cache show пакета - Ако възнамерявате да го инсталирате
- Код за потвърждение: Избери целия код
cat /var/lib/apt/lists/хранилище | less - За по-подробна информация
Стигаме до най-важната част - приоритета. С него ще уточним точно какви са ни претенциите относно бъдещето на коментирания от нас пакет. Ето какви са възможностите там:
1001
Така apt няма да промени версията на пакета при каквито и да е обстоятелства.
1000
Тук положението е същото както при 1001, с изключение на това че apt винаги ще отказва даунгреда на въпросната версия на пакета.
990
Описаната версия на пакета ще бъде заменена само с по-нова ако е възможно.
500
Същото както 990
100
Нормален приоритет на пакета както си е по-подразбиране. Т.е. пакета ще бъде инсталиран ако го няма и въпросната версия ако няма по-нова.
-1
Забранява инсталирането на въпросната версия пакет
Eто един пример за коментиран пакет който не искам да бъде обновяван:
- Код за потвърждение: Избери целия код
Package: fluxbox
Pin: version 0.9.15.1+1.0rc0-1*
Pin-Priority: 1001
Ако тези опции не удовлетворяват нашите претенции можем да бъдем още по-конкретни относно версията на пакета:
- Код за потвърждение: Избери целия код
Pin: release v=XX.X.X*,a=stable,c=main
като:
v=версия* посочваме версията. Слагаме * този символ за да позволим ъпдейт на въпросния пакет без да сменяме версията му. Звучи странно но девелопърите на дебиан често пачват даден софтуер с цел поправяне от съображения за сигурност или просто бъгфикс. По този начин те не променят версията на пакета.
а=stable/testing/unstable - хранилище на пакета.
c=main/contrib/non-free - местоположение на пакета в даденото хранилище
Това е всичко.
Източник - http://www.debian.org/doc/manuals/apt-h ... et.en.html