Вопрос или проблема
Мне нужна старая версия qt5 для Anki. (qt5-5.7)
Поэтому я хотел бы понизить версии всех пакетов qt5 (всей группы).
Есть ли способ сделать это с помощью pacman?
Как пользователь Arch Linux, я помогу вам по мере возможности, так как использую Arch в качестве основной ОС.
Вы можете это сделать, но у вас есть зависимости, которые могут сломаться, как очень хорошо описал Тёрдон в комментариях, но мы избежим этого, если все выполнить правильно.
Я буду ссылаться на вики Arch по понижению версий пакетов через pacman cache
, чтобы дать ответ, но имейте в виду, что выполнять этот процесс стоит только если вы ранее установили qt5-5.7
.
Понижение версий пакетов (ссылка на вики Arch):
Этот процесс удалит текущий пакет и установит более старую версию. Изменения зависимостей будут обработаны, но pacman не обработает конфликты версий. Если библиотека или другой пакет нуждается в понижении версии вместе с пакетами, имейте в виду, что вам также придется понизить версию этого пакета самостоятельно.
Очевидно, что это немного ручная работа, но это быстро, и также обращайте внимание на то, что вы можете передать несколько пакетов через pacman
, что поможет в вашей группе:
Откройте терминал и cd
в этот каталог > /var/cache/pacman/pkg/
Продолжайте с > pacman -U <имя_файла_пакета>
В качестве альтернативы, вы можете получить инструменты такие как downgrade, которые автоматизируют этот процесс для вас, но это возможно только если вы очистили свой cache
и используете Arch Rollback Machine
Это очень плохой совет — понижать версии больше, чем нескольких пакетов. Это работает только для пакетов, которые не связаны с (многими) другими пакетами, такими как ядро.
Если вам нужны более старые версии библиотек, чем те, что есть в официальных репозиториях Arch, вам следует создать файлы PKGBUILD и собрать свои собственные версии.
Пакеты AUR могут быть пересобраны с учетом обновленных зависимостей. Пониженные пакеты могут сломаться или требовать понижения других пакетов.
Ответ или решение
Как откатить группу пакетов с помощью pacman в Arch Linux
В Arch Linux пользователи могут столкнуться с ситуациями, когда необходимо откатить версии пакетов из-за совместимости с определенным программным обеспечением, таким как Anki, которое требует более ранней версии библиотеки Qt5 (например, qt5-5.7). В этой статье мы рассмотрим, как можно эффективно откатить всю группу пакетов, связанной с Qt5, с помощью менеджера пакетов pacman
, а также дать рекомендации для предотвращения потенциальных проблем с зависимостями.
Подготовка к откату пакетов
Перед началом процесса важно отметить, что откат пакетов может привести к конфликтам зависимостей. Поэтому, прежде чем продолжить, убедитесь, что у вас есть установленные предыдущие версии пакетов, которые вы собираетесь откатить. Если у вас не осталось кэша старых версий, вы можете использовать Arch Rollback Machine для загрузки необходимых пакетов.
Шаги для отката пакетов
-
Перейдите в кэш установленных пакетов:
Откройте терминал и выполните команду:cd /var/cache/pacman/pkg/
Здесь вы найдете все пакеты, которые когда-либо были загружены на ваш компьютер.
-
Просмотрите доступные версии:
Посмотрите на список пакетов и убедитесь, что у вас есть нужные вам версии пакетов Qt5. Они могут быть названными, например,qt5-base-5.7-1-x86_64.pkg.tar.xz
и так далее. -
Откатите нужные пакеты:
Чтобы откатить все пакеты группы, запустите команду для каждого пакета (она может отличаться в зависимости от версии):sudo pacman -U qt5-base-5.7-1-x86_64.pkg.tar.xz qt5-tools-5.7-1-x86_64.pkg.tar.xz ...
В этом примере перечислены только некоторые пакеты. Вам нужно будет указать все пакеты, относящиеся к группе Qt5. Необходимо внимательно следить за тем, чтобы все зависимости были также откатаны, иначе это может привести к нарушениям в работе системы.
Альтернативные варианты
Для пользователей, которые предпочитают автоматизировать процесс, существует полезная утилита, такая как downgrade. Она позволяет откатить пакеты с гораздо меньшими усилиями и автоматически разрешит возможные зависимости. Однако, как и в случае с pacman
, следует иметь в виду, что это не обязательно будет всегда безопасно для системных библиотек.
Рекомендации по откату
-
Создание PKGBUILD файлов: Если вам необходимо использовать более старые версии библиотек, чем те, что имеются в официальных репозиториях, стоит рассмотреть возможность создания PKGBUILD для сборки собственных версий. Это позволит вам подстроить пакеты под ваши текущие зависимости.
-
Операции с AUR: Пакеты из Arch User Repository (AUR) могут также быть пересобраны с обновленными зависимостями, что обеспечит более гибкое решение вашей проблемы без необходимости постоянного отката.
Заключение
Откат пакетов в Arch Linux с помощью pacman требует предварительной подготовки и может быть рискованным шагом, особенно с учетом зависимостей. Следуйте приведенным выше шагам с осторожностью, учитывая возможность использования альтернативных решений для лучшей стабильности вашей системы.