11 февраля 2017

Как заблокировать обновление версии программы в Ubuntu и производных

Иногда бывают такие случаи, когда пользователь не желает обновлять версию программы, настроенную под собственные нужды с определённым трудом. К таким программам могут относиться различные медиаредакторы, медиаплееры, медиацентры и многие другие, у которых имеется большой диапазон настроек, рассчитанный на предпочтения пользователя и возможности компьютера, а обновление программы может изменить какие-то её возможности или стабильность.

Сделать блокировку версии программы можно несколькими способами, как в графическом варианте, так и в терминальном.

Я для примера выбрал медиацентр Kodi, т.к. вчера мне по этому поводу задал вопрос постоянный пользователь сайта Александр Мазалов.

1-й графический способ  

Предположим вы установили программу  с подключением стороннего репозитория.

sudo add-apt-repository
ppa:team-xbmc/ppa
sudo apt-get update
sudo apt-get install kodi


В этом случае программа будет обновляться, если создатель/создатели репозитория вносят изменения в репозиторий.
Для того чтобы не получать обновления программы после её установки и настройки, просто отключите данный репозиторий в программе Программы и обновления/Источники приложений, во вкладке Другое ПО, т.е. снимите флажок.


2-й графический способ

Во многих дистрибутивах основанных на Ubuntu по умолчанию в системе установлен Менеджер пакетов Synaptic. Если не установлен, установите его, выполнив в терминале следующую команду:

sudo apt install synaptic

Далее, откройте Synaptic, введите в окно поиска название программы, версию которой хотите заблокировать, активируйте строку с программой, в меню Synaptic - Пакет выберите - Заблокировать версию:


Теперь напротив версии программы должен отобразиться значок в виде замка, что указывает на блокировку обновления версии программы:


3-й способ - терминальный

Для блокировки версии программы в терминале, выполните следуюшую команду:

sudo apt-mark hold название прогаммы

В данном случае:

sudo apt-mark hold kodi

 В терминале должен отобразиться вывод, что kodi помечен как зафиксированный.


Вот и всё. Теперь вы знаете, как заблокировать обновление версии программы.

Удачи.

10 комментариев :

  1. Спасибо за подробную статью,кому то,это точно понадобится...
    Ведь мне же потребовалось.

    ОтветитьУдалить
  2. Спасибо, Владимир, за полезную информацию с детальными пояснениями!

    ОтветитьУдалить
  3. Полезно, а всё-таки как же зависимости?

    ОтветитьУдалить
    Ответы
    1. ==а всё-таки как же зависимости?== Если заблокирована версия программы, естественно и зависимости к ней обновляться не будут, если конечно они не принадлежат к другой программе.
      Если Вы не в куре, в Linux зависимости одной программы могут использоваться другой программой. В Windows каждая программа имеет сугубо свои зависимости пакета, даже если они идентичны. Поэтому система Windows с истечением времени непомерно раздувается.

      Удалить
  4. А я в mint kde делаю так: Менеджер обновлений - Правка - Параметры - вкладка Игнорируемые обновления - +Добавить - прописываю имя игнора - 0к - Применить - профит!!!
    Но этот действует только на Менеджер обновлений. sudo apt upgrade на это плевать...

    ОтветитьУдалить
  5. Редко,но пользуюсь данными инструментами.А тут handbrake-кодировщик видео обновился,и опять разрабы газ с тормозом местами поменяли.Забыл заблокировать-придется к новому интерфейсу привыкать.Это я к тому,что обновление не есть всегда хорошо.

    ОтветитьУдалить
  6. Первый и второй способы я знал давно, с момента появления Ubuntu. А вот о третьем терминальном не ведал. Спасибо за терминальный способ блокировки.

    ОтветитьУдалить
  7. Подскажите, пожалуйста, а как узнать какие версии пакетов уже заблокированы, особенно когда в синаптике выдает ошибку о поврежденных зафиксированных пакетах в системе после установки?

    ОтветитьУдалить
    Ответы
    1. apt-mark showhold
      или
      aptitude search ~ahold
      или
      dpkg -l | grep "^hi"

      (через sudo, конечно)

      Удалить