Difference between revisions of "Downgrading packages (Русский)"

From ArchWiki
Jump to navigation Jump to search
m
Line 44: Line 44:
 
Или же пакеты могут у вас просто отсутствовать, и тогда их придется разыскивать самостоятельно, следя при этом, чтоб при обновлении повторно не были установлены нежелательные версии пакетов.}}
 
Или же пакеты могут у вас просто отсутствовать, и тогда их придется разыскивать самостоятельно, следя при этом, чтоб при обновлении повторно не были установлены нежелательные версии пакетов.}}
  
В [[AUR]] доступен пакет под названием [[AUR|downgrade]]. Это простой скрипт на Bash который ищет в кэше старые версии пакета. Если в кэше пакет не будет найден, то он может искать в [[#ARM|A.R.M.]]. Затем понадобиться выбрать пакет для установки. Здесь описаны основные возможности пакета по автоматизации процесса. Для получения дополнительной информации выполните: {{Ic|downgrade --help}}.
+
В [[AUR]] доступен пакет под названием {{AUR|downgrade}}. Это простой скрипт на Bash который ищет в кэше старые версии пакета. Если в кэше пакет не будет найден, то он может искать в [[#ARM|A.R.M.]]. Затем понадобиться выбрать пакет для установки. Здесь описаны основные возможности пакета по автоматизации процесса. Для получения дополнительной информации выполните: {{Ic|downgrade --help}}.
  
 
Также, для отката пакетов Вы можете воспользоваться программой {{AUR|downgrader}} - это мощная программа написанная на C++, работает с логами pacman, кэшем пакетов и ARM. Она поможет откатить пакет к предыдущей версии по данным из логов, сама найдет, скачает и установит нужный пакет. Также она умеет работать с несколькими пакетами одновременно, например если система стала нестабильна после большого обновления. Для получения дополнительной информации обратитесь к [http://archlinux.org.ru/forum/viewtopic.php?f=29&t=6456 этой] теме форума.
 
Также, для отката пакетов Вы можете воспользоваться программой {{AUR|downgrader}} - это мощная программа написанная на C++, работает с логами pacman, кэшем пакетов и ARM. Она поможет откатить пакет к предыдущей версии по данным из логов, сама найдет, скачает и установит нужный пакет. Также она умеет работать с несколькими пакетами одновременно, например если система стала нестабильна после большого обновления. Для получения дополнительной информации обратитесь к [http://archlinux.org.ru/forum/viewtopic.php?f=29&t=6456 этой] теме форума.

Revision as of 18:22, 14 April 2012

Template:I18n

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary text Template:Article summary end

В этом руководстве описывается процесс отката установленного пакета к его предыдущей версии. Обычно откат версии пакета не рекомендуется и применяется в том случае, когда в текущем пакете обнаружена ошибка.

Прежде чем откатить пакет, подумайте, нужно ли это делать. Если необходимость отката вызвана ошибками, пожалуйста, помогите сообществу Arch и разработчикам этого ПО, потратьте несколько минут на составление отчета об ошибке и отправке его в трекер ошибок Arch или на сайт самого проекта. В связи с безрилизной моделью развития Arch, и при продолжительном его использовании, Вы, возможно, периодически будете сталкиваться с ошибками в новых пакетах. Наше сообщество и разработчики ПО будут признательны Вам за приложенные усилия. Дополнительная информация может не только спасти нас от часов тестирования и отладки, но также позволит повысить стабильность программного обеспечения.

Причины

Процесс отката (понижения) версии пакета заключается в удалении текущей версии пакета и установке вместо нее предыдущей. Откат может выполняться как до предыдущей версии, так и до любой доступной.

Причины понижения версии (среди прочих) могут быть следующие: ошибка в текущей версии, отсутствие требуемой функциональности, или установка пакета с целью эксперимента. В любом из этих случаев, пользователю, возможно будет менее проблематично вернуться к старой версии пакета, чем ожидать нового релиза..

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

Подробности

Тем не менее, пользователю нужно учесть следующие моменты:

  • Во-первых, понадобится решить вопрос с зависимостями каждой из программ. Необходимые библиотеки могут изменяться с каждой новой версией, функционально связанные с ними файлы, также могут полностью отличаться от предыдущих. Поэтому, возможно, потребуется их замена на более ранние версии.
  • Во-вторых, в случае удаления необходимых версий пакетов из системы, необходимо убедиться, в их доступности из другого источника. Это связано с безрелизной моделью развития системы Arch Linux, репозитории автоматически обновляются без сохранения старых версий пакетов. Подробнее об этой проблеме ниже.
  • В-третьих, следует соблюдать осторожность при внесении изменений в конфигурационные файлы и сценарии. На данный момент, во избежание возможных проблем, лучше использовать pacman, хотя и он имеет некоторые ограничения.

Сейчас находится в разработке концепция Машины Отката Arch (Arch Rollback Machine) и при готовности она будет включена в стандартные средства pacman. Как только это произойдет, процесс станет автоматизированным.

А пока, пожалуйста, следуйте инструкциям идущим далее.

Инструкция по откату пакетов

  • В: Я только что выполнил pacman -Syu и пакет XYZ с версии М был обновлен до версии N. Обновление пакета вызывает проблемы на моем компьютере, как я могу откатить версию N к старой версии M?
  • О: Версию пакета можно понизить элементарно, для этого найдите старую версию нужного пакета в директории /var/cache/pacman/pkg (если ранее не запускали pacman -Scc, то нужный пакет будет там). Если пакет есть, то его можно установить, выполнив pacman -U /var/cache/pacman/pkg/pkgname-olderpkgver.pkg.tar.gz. Если нужный пакет был скачан вручную, то понадобится указать полный путь к пакету.

Эта команда удалит существующий пакет, проверив при этом все изменяющиеся зависимости, и установит более старую версию пакета.

Note: При изменении основных компонентов операционной системы, может возникнуть с необходимость замены десятков пакетов на более старые версии. Или же пакеты могут у вас просто отсутствовать, и тогда их придется разыскивать самостоятельно, следя при этом, чтоб при обновлении повторно не были установлены нежелательные версии пакетов.

В AUR доступен пакет под названием downgradeAUR. Это простой скрипт на Bash который ищет в кэше старые версии пакета. Если в кэше пакет не будет найден, то он может искать в A.R.M.. Затем понадобиться выбрать пакет для установки. Здесь описаны основные возможности пакета по автоматизации процесса. Для получения дополнительной информации выполните: downgrade --help.

Также, для отката пакетов Вы можете воспользоваться программой downgraderAUR - это мощная программа написанная на C++, работает с логами pacman, кэшем пакетов и ARM. Она поможет откатить пакет к предыдущей версии по данным из логов, сама найдет, скачает и установит нужный пакет. Также она умеет работать с несколькими пакетами одновременно, например если система стала нестабильна после большого обновления. Для получения дополнительной информации обратитесь к этой теме форума.

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

Существует три способа поиска.

Зеркала Out-Of-Sync

При отсутствии старых версий пакетов, нужно проверить, не синхронизировалось ли одно из зеркал, и получить пакет оттуда. Нажмите здесь, чтобы посмотреть статус зеркал.

Также нужные пакеты можно поискать на этом зеркале:

ARM

Arch Rollback Machine (ARM ) содержит архив снимков (snapshots) всех репозиториев начиная с 1 ноября 2009. Содержимое сайта постоянно изменяется, поэтому если вы заинтересованы в ARM, то лучше будет, регулярно просмотривать объявления и обсуждения на форуме, для того, чтобы быть в курсе текущего состояния проекта. Последние обсуждения на форуме можно почитать здесь.

URL-адреса задуманы таким образом, чтоб при помощи скриптов wget+pacman было максимально просто "откатить" систему до определенной даты. Автоматизация процесса пока не объяснена. Для упрощения ручного поиска отдельного пакета, можно использовать страницу поиска, расположенную в ARM Search.

Re-компиляция пакетов

В худшем случае, если пакет не найден в другом месте, вам придется самостоятельно собирать себе старую версию. Для этого нужен файл PKGBUILD, можно для изменения взять существующий PKGBUILD из ABS, или найти нужный пакет на http://www.archlinux.org/packages/. После того как вы его нашли, нажмите кнопку "Открыть логи SVN" и выберите "Просмотр журнала". Найдите нужный вариант, и нажмите на ссылку. Далее просто скачайте файлы, расположенные в этом каталоге, и создайте пакет с помощью с makepkg.

Дополнительная информация

Изменение основных настроек менеджера пакетов pacman осуществляется с помощью редактирования файла pacman.conf, для редактироваия файла понадобятся права root. Для правки файла следует набрать в командной строке

nano /etc/pacman.conf

(Конечно можно редактировать файл и с помощью графических утилит, например Shaman, но чаще намного быстрее и безопаснее выполнять такие действия из командной строки.)

Достаточно просто изменить адреса репозиториев, в которых pacman осуществляет поиск программ. Для скрытия от pacman и системы управления пакетами определенного репозитория нужно в начало строки репозитория, добавить знак фунта (#).

Например, для добавления репозитория с ARM, нужно закомментировать старую строку, и добавить новую с соответствующими путями, формат:

[core]
#Server=http://mirrors.gigenet.com/archlinux/core/os/i686
Server=http://arm.konnichi.com/2009/11/01/core/os/i686

В этом примере, дата в имени раздела указывает на то, что в нем расположены все пакеты, которые были доступны на 1 ноября 2009 года. Обратите внимание, что все репозитории являются снимками (snapshots) официального репозитория. Далее нужно разместить зеркало ARM в самом верху /etc/pacman.d/mirrorlist. Так для синхронизации всех официальных репозиториев ARM, перечисленных в /etc/pacman.conf, нужно выбрать на зеркале http://arm.konnichi.com/2009/11/01/, например, $repo/os/i686, и выполнить:

pacman -Syy # получить список пакетов
pacman -Suu # откатить все пакеты до версии в репозитории

Но все это не гарантирует полностью автоматического отката, так как иногда имеющаяся версия пакета не совпадает с требующейся. В таком случае можно поискать нужную версию пакета на глобальном зеркале, например http://arm.konnichi.com/core/os/i686, обратите внимание на отсутствие даты в пути.

Для получения дополнительной информации - изучите pacman.

Template:FAQ

Template:FAQ

Template:FAQ