Из-за ошибки # 693758 Я бы хотел запретить apt-get upgrade
и Update Manager обновлять пакет «libgtk2.0-0».
Как этого достичь?
Есть четыре способа задержать пакеты: с 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
С помощью выбора введите экран [S]выбрать, найдите пакет, который вы хотите удержать, в его текущем состоянии и нажмите = или H. Изменения вступят в силу сразу же после выхода из экрана [S]elect.
Следующие подходы ограничены тем, что блокировка/удержание пакета в пределах способности или синапса не влияет на apt-get/apt.
Hold a package:
sudo aptitude hold <package-name>
Remove the hold:
sudo aptitude unhold <package-name>
Go to Synaptic Package Manager (System > Administration > Synaptic Package Manager).
Нажмите кнопку поиска и введите название пакета.
Когда вы найдете пакет, выберите его и перейдите в меню Package и выберите Lock Version.
Этот пакет теперь не будет отображаться в менеджере обновлений и не будет обновляться.
Чтобы поместить пакет "foo" в режим ожидания:
echo "foo hold" | dpkg --set-selections
В вашем случае мы собираемся приостановить выполнение Wine:
sudo -i
echo "wine hold" | dpkg --set-selections
Чтобы снять блокировку:
sudo -i
echo "wine install" | dpkg --set-selections
I synaptic вы можете заморозить версию определенного пакета Я не уверен на 100%, будет ли это исправлять apt-get, но это определенно остановит менеджер обновлений.
Чтобы заморозить пакет, выберите его в synaptic, затем откройте меню пакета и выберите заморозить версию.
Надеюсь, это поможет
редактировать: Этот вопрос 16668 имеет дело с подобной ситуацией
Так как некоторое время apt-get
заменяется на apt
, то, например, я хочу предотвратить обновление Firefox до версии выше 56, потому что многие дополнения, такие как "Tab Groups" больше не работают с новым Firefox 57 (смотрите "WebExtensions Update").
Можно содержать более одного пакета одной командой и использовать подстановочные знаки.
sudo apt-mark hold firefox firefox-locale-*
Если вы решите позже их убрать, то это будет команда:
sudo apt-mark unhold firefox firefox-locale-*
Предотвращение установки пакета называется "удержанием пакета", и это очень просто сделать:
echo package_name hold | dpkg --set-selections
... где * имя_пакета * - это имя пакета, который вы хотите предотвратить. из установки.
Примечание: указанная выше команда предполагает права root. Другими словами, вам, вероятно, потребуется ввести sudo su
перед его запуском.
Я искал то же самое и после долгого В ходе исследования я обнаружил, что с помощью следующего синтаксиса вы можете запретить одну конкретную версию, но разрешить следующее обновление:
Package: compiz-plugins-main
Pin: version 1:0.9.7.0~bzr19-0ubuntu10.1
Pin-Priority: -1
Это входит в файл / etc / apt / preferences
.
Всё, что вы когда-либо хотели знать о "удержании" и "привязке" пакетов к конкретным версиям: https://help.ubuntu.com/community/PinningHowto
Установите synaptic
, используя sudo apt-get install synaptic
.
Запустите, используя gksudo synaptic
и в поле поиска найдите пакет, который вы хотите заблокировать, например: gedit
В меню пакета выберите Заблокировать версию :
И это все, версия, установленная на момент блокировки, будет оставаться установленным даже во время обновлений.
Если у вас установлен Synaptic, вы можете выбрать пакет и использовать меню Пакет -> Заблокировать версию, чтобы предотвратить его обновление.
Вы можете установить Synaptic с помощью sudo apt-get install synaptic. Я лично считаю его более полезным, чем Центр программного обеспечения ... опять же, я придерживаюсь старой школы. :)
Вы можете использовать aptitude «конкретное переопределение», например:
aptitude reinstall ~i oracle-java8-jre:
Это однократное использование (не сохраняется для будущих переустановок), сохранить конкретное переопределение, чтобы переустановить все пакеты в вашей системе, но не oracle- java8-jre.
Если вы используете переопределение для сохранения, пакет на мгновение перейдет в состояние сохранения, aptitude не будет пытаться его установить.
Очень хорошо, если вы считаете, что ваша система каким-то образом была взломана так как вы можете переустановить все с помощью одной перфокарты.
См. Ошибки # 75332 , # 158981 и # 72806 .
Сводка состоит в том, что удержание на уровне apt-get / aptitude не запускает статус удержания в dpkg (особенно см. Ошибку 72806), а update-manager считывает статус из dpkg.
обходной путь. запускается как root:
эхо «удержание пакета» | dpkg --set-selections
Иногда может потребоваться отложить все пакеты, установленные в данный момент. Вот как это сделать.
Сначала сохраните текущее состояние, поэтому вы можете отменить:
dpkg --get-selections > current_selections.txt
Затем, чтобы задержать все пакеты:
dpkg --get-selections | sed -r "s/\tinstall/hold/" |dpkg --set-selections
Наконец, если вы хотите вернуться к предыдущему состоянию:
dpkg --set-selections < current_selections.txt
Одним из вариантов использования этого может быть создание виртуальной машины или снимка Amazon AMI для перехода из среды контроля качества в производственную среду.
Добавление деталей в комментарии @ 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
настаивал на том, что
va-driver-all
(драйверы Intel) требует обновления, но не мог определить, какую версию установить. Это сводило меня с ума, да и драйверы Intel мне все равно не понадобились. Я ввел этот текст в файл настроек и сбросил apt, проблема решена.
Package: va-driver-all
Pin: release *
Pin-Priority: -1