Из-за ошибки # 693758 я бы хотел запретить apt-get upgrade
и Update Manager обновлять пакет "libgtk2.0-0".
Как этого достичь?
disable packages from the auto-update
Из-за ошибки # 693758 я бы хотел запретить apt-get upgrade
и Update Manager обновлять пакет "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] elect, найдите пакет, который вы хотите сохранить в его текущем состоянии, и нажмите =или H. Изменения вступят в силу сразу после выхода из экрана выбора [S].
Следующие подходы ограничены тем, что блокировка / удержание пакета в aptitude или synaptic не влияет на apt-get / apt.
Держите посылку:
sudo aptitude hold <package-name>
Снять трюм:
sudo aptitude unhold <package-name>
Перейдите в Менеджер пакетов Synaptic (Система> Администрирование> Менеджер пакетов Synaptic).
Нажмите кнопку поиска и введите имя пакета.
Найдя пакет, выберите его, перейдите в меню « Пакет» и выберите « Заблокировать версию» .
Этот пакет теперь не будет отображаться в диспетчере обновлений и не будет обновляться.
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 Пин: версия 1: 0.9.7.0 ~ bzr19-0ubuntu10.1 Приоритет пин-кода: -1
Это идет в файл / etc / apt / preferences.
Установите synaptic
с помощью sudo apt-get install synaptic
.
Запустите используя gksudo synaptic
и в окне поиска найдите пакет, который вы хотите заблокировать, а именно:gedit
В меню пакета выберите Lock version :
И это все, версия, установленная на момент блокировки, останется установленной даже во время обновлений.
Запрет установки пакета называется «удержанием пакета», и это очень просто сделать:
echo package_name hold | dpkg --set-selections
... где * имя_пакета * - это имя пакета, который вы хотите запретить установку.
Примечание: приведенная выше команда предполагает права суперпользователя. Другими словами, вам, вероятно, нужно будет набрать текст sudo su
перед запуском.
s/sudo su/sudo -s/g
(или sudo -i
). ( -i
даст логин оболочки, -s
не даст).
Поскольку некоторое время apt-get
заменяется на apt
, например, я хочу запретить обновление Firefox до версии выше 56, потому что многие надстройки, такие как «Группы вкладок», больше не работают с новым Firefox 57 (см. «Расширения WebExtensions». Обновить").
Можно удерживать более одного пакета одной командой и использовать подстановочные знаки.
sudo apt-mark hold firefox firefox-locale-*
Если вы захотите отменить их позже, это будет команда:
sudo apt-mark unhold firefox firefox-locale-*
Я синаптически могу заморозить версию определенного пакета. Я не уверен на 100% в том, что это изменит apt-get, но это определенно остановит менеджер обновлений.
Чтобы заморозить пакет, выберите его в synaptic, затем откройте меню пакета и выберите «заморозить версию».
Надеюсь это поможет
редактировать: этот вопрос 16668 имеет дело с аналогичной ситуацией
Все, что вы когда-либо хотели знать о «удержании» и «закреплении» пакетов в определенных версиях: https://help.ubuntu.com/community/PinningHowto
Смотрите ошибки # 75332 , # 158981 и # 72806 .
В итоге, удержание на уровне apt-get / aptitude не вызывает состояние удержания в dpkg (особенно см. Ошибку 72806), а менеджер обновлений считывает состояние из dpkg.
Обходной путь запускается от имени пользователя root:
echo "package hold" | dpkg --set-selections
Вы можете использовать на aptitude «конкретное переопределение», например так:
aptitude reinstall ~i oracle-java8-jre:
Это однократное использование (не сохраняется для будущих переустановок), сохранение определенного переопределения, для переустановки всех пакетов в вашей системе, но не oracle-java8-jre.
Если вы используете специальное переопределение keep, пакет на мгновение будет в состоянии keep aptitude не будет пытаться установить его.
Очень хорошая вещь, если вы думаете, что ваша система была скомпрометирована каким-то образом.
Если у вас установлен 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
Одним из вариантов использования этого может быть создание моментального снимка виртуальной машины или 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. Я ввел этот текст в файл настроек и очистил apt, проблема решена.
Package: va-driver-all
Pin: release *
Pin-Priority: -1