Downgrade: различия между версиями

Материал из ALT Linux Wiki
м (→‎Общие положения: выделил подставляемое)
 
(не показано 39 промежуточных версий 10 участников)
Строка 1: Строка 1:
Для отката при помощи [[APT]], например, с [[Sisyphus]] на [[branches/5.1|5.1/branch]] может пригодиться следующее:
=== Общие положения ===


# '''убрать''' из файлов {{path|/etc/apt/sources.list}} и {{path|/etc/apt/sources.list.d/*.list}} все раскомментированные строчки про Sisyphus;
Для отката при помощи [[APT]], например, с [[Sisyphus]] на [[branches/p10|p10/branch]] или что-либо из [[archive|архива]] может пригодиться следующее:
# прописать репозитории 5.1/branch (две строчки — для своей архитектуры ''и'' noarch);
 
# создать файл {{path|/etc/apt/preferences}} следующего вида:
# '''убрать''' из файлов {{path|/etc/apt/sources.list}} и {{path|/etc/apt/sources.list.d/*.list}} все раскомментированные строчки про Sisyphus
Package: *
#* при установленном пакете {{pkg|apt-repo}} это сделает команда {{cmd|apt-repo rm all}}
Pin: release c=classic
# прописать репозитории p10/branch (две строчки — для своей архитектуры ''и'' <tt>noarch</tt>)
Pin-Priority: 1001
#* {{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 ===
=== Откат пакета в системе на примере бранча 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, либо конкретный apt-get install package.  
 
Пакет, который был "откачен" на старую версию, запрещаем обновлять, прописав его в 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 или что-либо из архива может пригодиться следующее:

  1. убрать из файлов /etc/apt/sources.list и /etc/apt/sources.list.d/*.list все раскомментированные строчки про Sisyphus
    • при установленном пакете apt-repo это сделает команда apt-repo rm all
  2. прописать репозитории p10/branch (две строчки — для своей архитектуры и noarch)
    • apt-repo add p10
  3. создать файл /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 [пакет(ы)]

Примечания

  1. подсмотрено у epm downgrade
  2. Для архитектуры x86_64, возможно, потребуется ещё и x86_64-i586
  3. Как «поставить пакеты на холд»
  4. Дату определяем по индексу архива: например, fpc -- http://ftp.altlinux.org/pub/distributions/archive/sisyphus/index/src/f/fpc/
  5. Для архитектуры x86_64, возможно, потребуется ещё и x86_64-i586