Как зафиксировать версию Firefox в apt на Ubuntu 22.04?

Вопрос или проблема

Я следовал инструкциям на сайта поддержки Mozilla:

Установите пакет Firefox .deb для дистрибутивов на основе Debian (Рекомендуется)

Чтобы установить пакет .deb через репозиторий APT, выполните следующее:

Создайте каталог для хранения ключей репозитория APT, если он не существует:

sudo install -d -m 0755 /etc/apt/keyrings

Импортируйте ключ подписи репозитория Mozilla APT:

wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
Если у вас не установлен wget, вы можете установить его с помощью: sudo apt-get install wget

Отпечаток ключа должен быть 35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3. Вы можете проверить его с помощью следующей команды:

gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); if($0 == "35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3") print "\nОтпечаток ключа совпадает ("$0").\n"; else print "\nПроверка не удалась: отпечаток ("$0") не совпадает с ожидаемым.\n"}'

Затем добавьте репозиторий APT Mozilla в ваш список источников:

echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null

Настройте APT для приоритета пакетов из репозитория Mozilla:

echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
' | sudo tee /etc/apt/preferences.d/mozilla

Обновите список пакетов и установите пакет Firefox .deb:

sudo apt-get update && sudo apt-get install firefox

Теперь у меня есть:

$ apt list --installed | grep firefox

firefox/mozilla,now 132.0~build1 amd64 [установлено]

$ snap list | grep firefox

firefox                    131.0.2-1                    5091   latest/stable
mozilla**         -

Я не против иметь установленными как apt, так и snap в системе. Проблема в том, что версия apt удаляется при выполнении обновления программного обеспечения, даже несмотря на то, что настройка “Настроить APT для приоритета пакетов из репозитория Mozilla” была выполнена.

Как мне остановить удаление версии apt и замену её версией snap при обновлениях программного обеспечения?

Попробуйте одновременно понизить приоритет пакета Ubuntu.

echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000

Package: firefox*
Pin: release o=Ubuntu
Pin-Priority: -1
' | sudo tee /etc/apt/preferences.d/mozilla

Ответ или решение

Для того чтобы фиксировать версию Firefox, установленную с использованием APT, на Ubuntu 22.04 и предотвратить её автоматическое удаление или замену версией из Snap во время обновлений, выполните следующие шаги:

Шаги по закреплению версии Firefox с помощью APT

  1. Создание каталога для ключей APT, если он ещё не существует:

    sudo install -d -m 0755 /etc/apt/keyrings
  2. Импорт ключа подписи APT-репозитория Mozilla:

    wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null

    Убедитесь, что wget установлен. Если его нет, выполните:

    sudo apt-get install wget
  3. Проверка отпечатка ключа:
    Убедитесь, что отпечаток ключа совпадает с ожидаемым:

    gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); if($0 == "35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3") print "\nОтпечаток ключа совпадает ("$0").\n"; else print "\nПроверка не пройдена: отпечаток ("$0") не совпадает с ожидаемым.\n"}'
  4. Добавление APT-репозитория Mozilla в список источников:

    echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null
  5. Настройка APT для приоритета пакетов из репозитория Mozilla:
    Создайте или редактируйте файл /etc/apt/preferences.d/mozilla:

    echo '
    Package: *
    Pin: origin packages.mozilla.org
    Pin-Priority: 1000
    
    Package: firefox*
    Pin: release o=Ubuntu
    Pin-Priority: -1
    ' | sudo tee /etc/apt/preferences.d/mozilla

    В этом шаге мы не только указываем, что пакеты из Mozilla должны иметь высокий приоритет (1000), но также понижаем приоритет версий Firefox, поставляемых из стандартного репозитория Ubuntu до -1. Это решает проблему, когда версия Firefox, установленная из APT, заменяется версией Snap.

  6. Обновление списка пакетов и установка Firefox:
    Обновите списки пакетов и убедитесь, что установлена нужная версия Firefox:

    sudo apt-get update && sudo apt-get install firefox

Проверка установленных версий

Для проверки, какие версии Firefox установлены, выполните:

apt list --installed | grep firefox
snap list | grep firefox

Вы должны увидеть, что версия, установленная через APT (например, 132.0~build1), не будет заменена версией Snap при последующих обновлениях.

Заключение

Теперь вы успешно закрепили версию Firefox, установленную через APT, на Ubuntu 22.04. Следуя вышеописанным шагам, можно быть уверенным, что при обновлениях системы версия, установленная из официального репозитория Mozilla, останется в системе. Этот метод позволяет избежать конфликта между версиями пакетов Snap и APT, обеспечивая стабильное использование требуемого программного обеспечения.

Оцените материал
Добавить комментарий

Капча загружается...