Через помилку # 693758 Я хотів би запобігти apt-get upgrade
та оновити менеджер оновлення пакету "libgtk2.0-0".
Як цього можна досягти?
disable packages from the auto-update
Через помилку # 693758 Я хотів би запобігти apt-get upgrade
та оновити менеджер оновлення пакету "libgtk2.0-0".
Як цього можна досягти?
disable packages from the auto-update
Відповіді:
Існує чотири способи стримування пакунків: з dpkg, apt, aptitude або dselect.
Покладіть пакет на затримку:
echo "<package-name> hold" | sudo dpkg --set-selections
Видаліть утримування:
echo "<package-name> install" | sudo dpkg --set-selections
Показати статус ваших пакетів:
dpkg --get-selections
Відображення статусу одного пакету:
dpkg --get-selections | grep "<package-name>"
Тримайте пакет:
sudo apt-mark hold <package-name>
Видаліть утримування:
sudo apt-mark unhold <package-name>
Показати всі пакети на затриманні:
sudo apt-mark showhold
За допомогою dselect перейдіть до екрана [S] обрання, знайдіть пакунок, який ви хочете утримати в його теперішньому стані, і натисніть =або H. Зміни набудуть чинності відразу після виходу з екрана [S] обранця.
Наступні підходи обмежені тим, що блокування / утримання пакету в межах здатності чи синаптики не впливає на apt-get / apt.
Тримайте пакет:
sudo aptitude hold <package-name>
Видаліть утримування:
sudo aptitude unhold <package-name>
Перейдіть до Synaptic Package Manager (Система> Адміністрація> Synaptic Package Manager).
Натисніть кнопку пошуку та введіть назву пакета.
Коли ви знайдете пакет, виберіть його та перейдіть до меню пакета та виберіть Lock Version .
Цей пакет тепер не відображатиметься в диспетчері оновлень і не оновлюватиметься.
devscripts
багато упакованих товарів витягуються як рекомендовані пакети. Оскільки мені не потрібен поштовий сервер (postfix), я можу відключити його встановлення, запустившись echo postfix hold | sudo dpkg --set-selections
перед запуском sudo apt-get install devscripts
. Ця дія утримування зберігається лише для цієї установки, після установки вибір буде скинутий.
apt-mark
не підтримує hold
версію 0.7.25 (Ubuntu Lucid)
apt-mark hold fglrx fglrx-amdcccle fglrx-dev && aptitude hold fglrx fglrx-amdcccle fglrx-dev
.
Щоб помістити пакет "foo" на утримання:
echo "foo hold" | dpkg --set-selections
У вашому випадку ми зупинимо вино:
sudo -i
echo "wine hold" | dpkg --set-selections
Щоб видалити затримку:
sudo -i
echo "wine install" | dpkg --set-selections
apt-get install wine=1.2.3
. Перебування на затриманні заважає apt-get (dist-)upgrade
змінити його.
/var/cache/apt/archives
) не залежить від затримань та оновлень тощо, тому всі завантажені версії будуть існувати до запускуapt-get [auto]clean
Я шукав те саме, і після багатьох досліджень я виявив, що за допомогою наведеного нижче синтаксису ви можете заборонити одну конкретну версію, але дозволити наступне оновлення:
Пакет: compiz-plugins-main Pin: версія 1: 0.9.7.0 ~ bzr19-0ubuntu10.1 Пріоритет: -1
Це переходить у / etc / apt / файл налаштувань.
Встановити synaptic
за допомогою sudo apt-get install synaptic
.
Запустіть за допомогою gksudo synaptic
та у вікні пошуку знайдіть пакет, який ви хочете заблокувати, тобто:gedit
У меню пакета виберіть Версія блокування :
І це все, версія, яка зараз встановлена на момент блокування, буде встановлена навіть під час оновлення.
Запобігання встановленню пакету називається "зберігання пакету", і це зробити дуже просто:
echo package_name hold | dpkg - набір-вибір
... де * ім'я пакета * - це ім'я пакету, який ви хочете запобігти встановленню.
Примітка: наведена вище команда передбачає привілеї root. Іншими словами, вам, ймовірно, потрібно буде набрати, sudo su
перш ніж запустити його.
s/sudo su/sudo -s/g
(або sudo -i
). ( -i
дасть оболонку входу, -s
не буде).
Оскільки деякий час apt-get
замінюється на apt
, я, наприклад, хочу запобігти оновлення Firefox до версії понад 56, тому що багато нових доповнень, таких як "Групи вкладок", більше не працюють з новим Firefox 57 (див. "Веб-розширення Оновлення ").
Можна зберігати кілька пакетів за допомогою однієї команди та використовувати символи.
sudo apt-mark hold firefox firefox-locale-*
Якщо ви вирішите зняти їх згодом, це буде команда:
sudo apt-mark unhold firefox firefox-locale-*
Я синаптично ви можете заморозити версію певного пакету, я не на 100% впевнений, чи змінить це apt-get, але це безумовно зупинить менеджер оновлень.
Щоб заморозити пакет, виберіть його синаптично, потім відкрийте меню пакунка та виберіть версію заморожування.
Сподіваюсь, це допомагає
редагувати: Це питання 16668 стосується подібної ситуації
Все, що ви коли-небудь хотіли знати про "тримання" та "закріплення" пакетів до конкретних версій: https://help.ubuntu.com/community/PinningHowto
Дивіться про помилки №75332 , №158981 та № 72806 .
Підсумок полягає в тому, що утримання на рівні apt-get / aptitude не викликає статусу утримування в dpkg (особливо див. Помилку 72806), а менеджер оновлень зчитує стан з dpkg.
обхідний шлях запускається як root:
echo "package hold" | dpkg --set-selections
Ви можете використовувати на здатності "специфічне переосмислення", як це:
aptitude reinstall ~i oracle-java8-jre:
Це одноразове використання (не зберігається для майбутніх перевстановлень), зберігайте конкретні зміни, щоб перевстановити всі пакунки у вашій системі, але не oracle-java8-jre.
Якщо ви використовуєте специфічне перевизначення для зберігання, пакет на мить перебуває у стані збереження придатності, не намагається його встановити.
Дуже гарна річ, якщо ви думаєте, що ваша система була порушена якось.
Якщо у вас встановлений Synaptic, ви можете вибрати пакет і скористатися меню Package -> Lock Version, щоб запобігти його оновленню.
Ви можете встановити Synaptic за допомогою sudo apt-get install synaptic. Мені особисто здається, що це корисніше, ніж Програмний центр ... тоді, знову ж таки, я досить стара школа. :)
Інколи, можливо, захоче стримувати всі встановлені пакети. Ось як.
Спочатку збережіть поточний стан, щоб ви могли скасувати:
dpkg --get-selections > current_selections.txt
Потім, щоб стримати всі пакунки:
dpkg --get-selections | sed -r "s/\tinstall/hold/" |dpkg --set-selections
Нарешті, коли ви хочете повернутись до попереднього стану:
dpkg --set-selections < current_selections.txt
Один з випадків використання для цього може бути під час створення знімка VM або Amazon AMI для міграції з QA у виробниче середовище.
Додавання деталей до коментарів @ soger щодо Ubuntu 16.04.
У Ubuntu 16.04 за замовчуванням не існує файлу / etc / apt / preferences. Якщо у вас немає цього, просто створіть новий файл і заповніть його строфою, як описано вище @soger, щоб виключити даний пакет та його залежності з оновлень.
Після цього біжіть apt update
і ви GTG. : 0)
Наприклад, у мене є сервер Ubuntu 16.04.5 LTS із вбудованою відеокарткою Intel та карткою NVidia. Картка NVidia є єдиною, що використовується. Сервер також використовує драйвери CUDA. У мене була проблема, де apt
наполягали
ва-водій-все
(Драйвери Intel) вимагало оновлення, але він не міг визначити, яку версію встановити. Це зводило мене з глузду, і я не потребував драйверів Intel. Я вніс цей текст у файл налаштувань і підмив підхоплення, проблему вирішено.
Package: va-driver-all
Pin: release *
Pin-Priority: -1