Downgrade: различия между версиями
м (→Общие положения: выделил подставляемое) |
|||
(не показано 39 промежуточных версий 10 участников) | |||
Строка 1: | Строка 1: | ||
=== Общие положения === | |||
# '''убрать''' из файлов {{path|/etc/apt/sources.list}} и {{path|/etc/apt/sources.list.d/*.list}} все раскомментированные строчки про Sisyphus | Для отката при помощи [[APT]], например, с [[Sisyphus]] на [[branches/p10|p10/branch]] или что-либо из [[archive|архива]] может пригодиться следующее: | ||
# прописать репозитории | |||
# создать файл {{path|/etc/apt/preferences}} следующего вида: | # '''убрать''' из файлов {{path|/etc/apt/sources.list}} и {{path|/etc/apt/sources.list.d/*.list}} все раскомментированные строчки про Sisyphus | ||
#* при установленном пакете {{pkg|apt-repo}} это сделает команда {{cmd|apt-repo rm all}} | |||
# прописать репозитории p10/branch (две строчки — для своей архитектуры ''и'' <tt>noarch</tt>) | |||
#* {{cmd|apt-repo add p10}} | |||
# создать файл {{path|/etc/apt/preferences}} следующего вида <ref>подсмотрено у epm downgrade</ref> : | |||
<syntaxhighlight lang="text"> | |||
# classic repo | |||
Package: * | |||
Pin: release c=classic | |||
Pin-Priority: 1001 | |||
# overload with addon repo | |||
Package: * | |||
Pin: release c=addon | |||
Pin-Priority: 1101 | |||
# main repo | |||
Package: * | |||
Pin: release c=main | |||
Pin-Priority: 1201 | |||
# overload with test (task) repo | |||
Package: * | |||
Pin: release c=task | |||
Pin-Priority: 1301 | |||
</syntaxhighlight> | |||
Теперь можно пробовать {{cmd|apt-get update; apt-get dist-upgrade}} — но стоит помнить, что откат версий не является обычно тестируемой майнтейнерами операцией. | Теперь можно пробовать {{cmd|apt-get update; apt-get dist-upgrade}} — но стоит помнить, что откат версий не является обычно тестируемой майнтейнерами операцией. | ||
При необходимости откатить один пакет (или только связанную с ним группу), соответственно, {{cmd|apt-get install ''нужное''}}; см. далее. | |||
'''Внимание:''' обновлённые вручную из недоступных в sources.list источников пакеты при очередном dist-upgrade будут также DOWNGRADED; если переезд свершился, может иметь смысл отодвинуть <tt>/etc/apt/preferences</tt> в сторону (комментированию с использованием <tt>#</tt> либо <tt>/* ... */</tt> не подлежит). | '''Внимание:''' обновлённые вручную из недоступных в sources.list источников пакеты при очередном dist-upgrade будут также DOWNGRADED; если переезд свершился, может иметь смысл отодвинуть <tt>/etc/apt/preferences</tt> в сторону (комментированию с использованием <tt>#</tt> либо <tt>/* ... */</tt> не подлежит). | ||
Строка 14: | Строка 39: | ||
Полная информация о предпочтениях (preferences) APT — в man-странице <tt>apt_preferences(5)</tt> | Полная информация о предпочтениях (preferences) APT — в man-странице <tt>apt_preferences(5)</tt> | ||
=== Откат пакета в системе на примере | === Откат пакета в системе на примере бранча p7 === | ||
1. Оставляем в /etc/apt/sources.list только архив p7 на определённую дату | Этот же алгоритм применим и более свежих версиях бранча (в его границах). | ||
1. Оставляем в /etc/apt/sources.list только [[Архив_Сизифа|архив]] p7 на определённую дату <ref>Для архитектуры x86_64, возможно, потребуется ещё и [[biarch|x86_64-i586]]</ref> | |||
<source lang=text> | <source lang=text> | ||
rpm http://ftp.altlinux.org/pub/distributions/archive/p7/date/2015/05/04/ ваша_архитектура classic | rpm http://ftp.altlinux.org/pub/distributions/archive/p7/date/2015/05/04/ ваша_архитектура classic | ||
rpm http://ftp.altlinux.org/pub/distributions/archive/p7/date/2015/05/04/noarch classic | rpm http://ftp.altlinux.org/pub/distributions/archive/p7/date/2015/05/04/ noarch classic | ||
</source> | </source> | ||
2. Далее, как описано выше — создаём файл /etc/apt/preferences и выполняем dist-upgrade, либо | |||
Пакет, который был "откачен" на старую версию, запрещаем обновлять, прописав его в HOLD в /etc/apt/apt.conf | 2. Далее, как описано выше — создаём файл /etc/apt/preferences и выполняем dist-upgrade, либо для конкретного пакета(ов) apt-get install package (package2...) | ||
3. Пакет, который был "откачен" на старую версию, запрещаем обновлять, прописав его в HOLD<ref>[[Hold|Как «поставить пакеты на холд»]]</ref> в /etc/apt/apt.conf, после чего в списке репозиториев возвращаемся на основную ветку бранча. | |||
=== Откат пакета в системе на Сизифе === | === Откат пакета в системе на Сизифе === | ||
Строка 28: | Строка 56: | ||
до определённой даты. | до определённой даты. | ||
1. Оставляем в {{path|/etc/apt/sources.list}} только архив Сизифа на определённую дату | 1. Оставляем в {{path|/etc/apt/sources.list}} только архив Сизифа на определённую дату <ref>Дату определяем по индексу архива: например, fpc -- http://ftp.altlinux.org/pub/distributions/archive/sisyphus/index/src/f/fpc/</ref><ref>Для архитектуры x86_64, возможно, потребуется ещё и [[biarch|x86_64-i586]]</ref> : | ||
<source lang=text> | <source lang=text> | ||
rpm http://ftp.altlinux.org/pub/distributions/archive/sisyphus/date/2014/06/08 x86_64 classic | rpm http://ftp.altlinux.org/pub/distributions/archive/sisyphus/date/2014/06/08 x86_64 classic | ||
Строка 35: | Строка 63: | ||
2. Далее, как описано выше — создаём файл {{path|/etc/apt/preferences}} и выполняем dist-upgrade, либо конкретный apt-get install ''package''. | 2. Далее, как описано выше — создаём файл {{path|/etc/apt/preferences}} и выполняем dist-upgrade, либо конкретный apt-get install ''package''. | ||
=== Откат ядра === | |||
Ядра в ALT обновляются отдельно, поэтому и для отката ядра используется отдельная процедура. Процесс [[FAQ#Как_вернуться_на_старое_ядро?|описан в FAQ]]. | |||
=== Решение проблем === | === Решение проблем === | ||
Строка 48: | Строка 79: | ||
apt-get install udev-initramfs util-linux-initramfs- | apt-get install udev-initramfs util-linux-initramfs- | ||
=== Применение EPM === | |||
Следующая команда откатит (указанный пакет) до его версии из текущего среза репозитория: | |||
<source> | |||
epm downgrade [пакет(ы)] | |||
</source> | |||
Реализовано это через изменение /etc/apt/preferences (как описано в начале статьи). | |||
Если {{cmd|epm downgrade}} вызвать без параметров, все пакеты в системе будут приведены к версиям среза репозитория. | |||
Для полного отката системы, например из Sisyphus на p10/branch надо выполнить: | |||
<source> | |||
epm downgrade-release p10 | |||
</source> | |||
=== Применение RPM === | |||
Более старые rpm-пакеты можно установить посредством rpm: | |||
rpm -Uvh --oldpackage [пакет(ы)] | |||
===Примечания=== | |||
{{примечания}} | |||
<noinclude> | |||
[[Категория:APT]] | [[Категория:APT]] | ||
[[Категория:Branches]] | [[Категория:Branches]] | ||
Строка 53: | Строка 106: | ||
[[Категория:Changes]] | [[Категория:Changes]] | ||
{{Category navigation|title=APT|category=APT|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=APT|category=APT|sortkey={{SUBPAGENAME}}}} | ||
[[Категория:Использование Epm]] | |||
{{Category navigation|title=Управление пакетами|category=Управление пакетами|sortkey=*}} | |||
[[Категория:Управление ПО]] | |||
</noinclude> |
Текущая версия от 11:24, 23 сентября 2024
Общие положения
Для отката при помощи APT, например, с Sisyphus на p10/branch или что-либо из архива может пригодиться следующее:
- убрать из файлов /etc/apt/sources.list и /etc/apt/sources.list.d/*.list все раскомментированные строчки про Sisyphus
- при установленном пакете apt-repo это сделает команда apt-repo rm all
- прописать репозитории p10/branch (две строчки — для своей архитектуры и noarch)
- apt-repo add p10
- создать файл /etc/apt/preferences следующего вида [1] :
# classic repo
Package: *
Pin: release c=classic
Pin-Priority: 1001
# overload with addon repo
Package: *
Pin: release c=addon
Pin-Priority: 1101
# main repo
Package: *
Pin: release c=main
Pin-Priority: 1201
# overload with test (task) repo
Package: *
Pin: release c=task
Pin-Priority: 1301
Теперь можно пробовать apt-get update; apt-get dist-upgrade — но стоит помнить, что откат версий не является обычно тестируемой майнтейнерами операцией.
При необходимости откатить один пакет (или только связанную с ним группу), соответственно, apt-get install нужное; см. далее.
Внимание: обновлённые вручную из недоступных в sources.list источников пакеты при очередном dist-upgrade будут также DOWNGRADED; если переезд свершился, может иметь смысл отодвинуть /etc/apt/preferences в сторону (комментированию с использованием # либо /* ... */ не подлежит).
Полная информация о предпочтениях (preferences) APT — в man-странице apt_preferences(5)
Откат пакета в системе на примере бранча p7
Этот же алгоритм применим и более свежих версиях бранча (в его границах).
1. Оставляем в /etc/apt/sources.list только архив p7 на определённую дату [2]
rpm http://ftp.altlinux.org/pub/distributions/archive/p7/date/2015/05/04/ ваша_архитектура classic
rpm http://ftp.altlinux.org/pub/distributions/archive/p7/date/2015/05/04/ noarch classic
2. Далее, как описано выше — создаём файл /etc/apt/preferences и выполняем dist-upgrade, либо для конкретного пакета(ов) apt-get install package (package2...)
3. Пакет, который был "откачен" на старую версию, запрещаем обновлять, прописав его в HOLD[3] в /etc/apt/apt.conf, после чего в списке репозиториев возвращаемся на основную ветку бранча.
Откат пакета в системе на Сизифе
Иногда при очередном обновлении из Сизифа выясняется, что нужно откатить обратно какой-то пакет или всё, до определённой даты.
1. Оставляем в /etc/apt/sources.list только архив Сизифа на определённую дату [4][5] :
rpm http://ftp.altlinux.org/pub/distributions/archive/sisyphus/date/2014/06/08 x86_64 classic
rpm http://ftp.altlinux.org/pub/distributions/archive/sisyphus/date/2014/06/08 noarch classic
2. Далее, как описано выше — создаём файл /etc/apt/preferences и выполняем dist-upgrade, либо конкретный apt-get install package.
Откат ядра
Ядра в ALT обновляются отдельно, поэтому и для отката ядра используется отдельная процедура. Процесс описан в FAQ.
Решение проблем
Если конкретно при возвращении на M51 увидите подобную ошибку:
file /lib/mkinitrd/udev/lib/udev/vol_id from install of udev-initramfs-141-alt11 conflicts with file from package util-linux-initramfs-2.16.1-alt3 E: Error while running transaction
то перед apt-get dist-upgrade придётся вручную провести замену этого пакета:
apt-get install udev-initramfs util-linux-initramfs-
Применение EPM
Следующая команда откатит (указанный пакет) до его версии из текущего среза репозитория:
epm downgrade [пакет(ы)]
Реализовано это через изменение /etc/apt/preferences (как описано в начале статьи).
Если epm downgrade вызвать без параметров, все пакеты в системе будут приведены к версиям среза репозитория.
Для полного отката системы, например из Sisyphus на p10/branch надо выполнить:
epm downgrade-release p10
Применение RPM
Более старые rpm-пакеты можно установить посредством rpm:
rpm -Uvh --oldpackage [пакет(ы)]
Примечания
- ↑ подсмотрено у epm downgrade
- ↑ Для архитектуры x86_64, возможно, потребуется ещё и x86_64-i586
- ↑ Как «поставить пакеты на холд»
- ↑ Дату определяем по индексу архива: например, fpc -- http://ftp.altlinux.org/pub/distributions/archive/sisyphus/index/src/f/fpc/
- ↑ Для архитектуры x86_64, возможно, потребуется ещё и x86_64-i586