Upgrading from EOL Fedora using yum/ru

From FedoraProject

Jump to: navigation, search

Обновление через yum с неподдерживаемых версий Fedora

Note.png
Прочитайте про обновлению Fedora с помощью yum
Эта страница является дополнением к странице Обновление Fedora с помощью yum. Она содержит описание проблем, с которыми вы можете столкнуться при выполнении yum update между неподдерживаемыми релизами. Пожалуйста, прочитайте Обновление Fedora с помощью yum для того, чтобы иметь общее представление о процессе в целом, а так же об обновлении со старых версий до текущего релиза.

Contents

Инструкции по обновлению с помощью yum

0. Выполните резервное копирование

Выполните резервное копирование любых личных данных на внешний жесткий диск или на другой компьютер. Если возникнет неустранимая ошибка и потребуется новая установка, вы не потеряете никаких данных.

1. Прочитайте о возможных проблемах

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

Общие советы по обновлению Fedora можно найти на странице Upgrading. Необходимо прочитать Руководство по установке и Замечания к выпуску для версии, до которой вы обновляетесь, - здесь может содержаться важная информация о возможных проблемах при обновлении. Наконец, просмотрите список Распространенные ошибки F16.

2. Приготовления

Просмотрите и удалите все файлы .rpmsave и .rpmnew прежде, чем приступить к обновлению. (И, если selinux активирован, проверьте его настройки).

Idea.png
Отыщите неиспользуемые конфигурационные файлы
Объедините и решите изменения с помощью следующего скрипта: for a in $(find /etc /var -name '*.rpm?*'); do diff -u $a ${a%.rpm?*}; done.

Теперь необходимо удалить пакеты, которые вы не используете, - особенно, если это нестандартные пакеты.

Idea.png
Отыщите и просмотрите "неиспользуемые" пакеты
Вы можете найти пакеты, которые не нужны другим пакетам, с помощью инструмента package-cleanup из пакета yum-utils: yum install yum-utils; package-cleanup --leaves. Вы можете решить, что эти пакеты являются кандидатами на удаление, но необходимо проверить, что эти пакеты не используются лично вами и что они не используются приложениями установленными без помощи rpm. Если это так, то удалите их с помощью yum remove имя-пакета-и-его-версия.
Idea.png
Отыщите и просмотрите "потерянные" пакеты
Вы можете найти устаревшие пакеты (например, пакеты, которые больше не располагаются в репозитариях) с помощью: package-cleanup --orphans. Эта команда отобразит пакеты, которые были частично удалены, но для которых выполнение "%postun" скрипта окончилось неудачей.

Убедитесь, что пакет yum-fastestmirror был установлен, для того, чтобы использовать самое быстрое зеркало для скачки пакетов.

yum install yum-fastestmirror

Затем удалите все следы текущей версии, оставшиеся в кэше /var/cache/yum.

yum clean all

3. Переключение репозитариев

Обновите пакеты, которые должен использовать yum.

rpm -Uhv ftp://download.fedora.redhat.com/pub/fedora/linux/releases/<ReleaseNumber>/Fedora/<Arch>/os/Packages/fedora-release-*.noarch.rpm

(Архитектура не имеет значения для пакета noarch .)

Note: Некоторые пользователи говорят, что при попытке скачать эти файлы с помощью rpm получают ответ 550 и сообщение "transfer failed". Если вы столкнулись с этим, вы можете загрузить rpms файл и установить его вручную, например, следующим образом:

wget ftp://download.fedora.redhat.com/pub/fedora/linux/releases/<ReleaseNumber>/Fedora/<Arch>/os/Packages/fedora-release-*.noarch.rpm
rpm -Uvh fedora-release-*.noarch.rpm

Убедитесь, что новые repo файлы не расположены в файлах .rpmnew, например, с помощью

mv /etc/yum.repos.d/fedora-updates.repo.rpmnew /etc/yum.repos.d/fedora-updates.repo
mv /etc/yum.repos.d/fedora.repo.rpmnew /etc/yum.repos.d/fedora.repo

Если вы используете репозитарии третьесторонних производителей, может потребоваться их настройка для новой версии Fedora. Если же вы обновляетесь с одного выпуска Fedora к другому, в большинстве случаев ничего делать не придётся. If you switch to Rawhide from a standard Fedora release (or vice versa) then you most of the time need to install the Rawhide release RPMs from the 3rd party repository as well (or the standard ones, if switching back).

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

4. Выполните обновление

Если используется selinux, удостоверьтесь, что он в режиме permissive, а не в disabled или enforcing.

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

ctrl + alt + F2

Войдите в систему и перейдите в runlevel 3

telinit 3
Warning (medium size).png
Если live обновление началось, не завершайте обновление вручную и не перезагружайте систему, не убивайте процесс и никаким другим образом не останавливайте его до его завершения. Выполнение этого приведёт систему в смешанное состояние. Частично система будет состоять из пакетов предыдущего выпуска, частично из пакетов нового. В таком состоянии система не будет надежно работать, как этого бы хотелось. Если такое произойдёт, возможно нужно будет переустановить систему с помощью Anaconda.
Idea.png
Сначала обновите важные пакеты
Начинать обновление следует с обновления инструментов обновления, для этого выполните yum update rpm\* yum\*. Или можно начать обновление с обновления glibc. В обоих случаях по зависимостям будет произведено почти полное обновление. И выполнение полного обновления может быть более безопасным. YMMV. (Напрмер, не выполнейте обновление rpm и yum отдельно, обновляемая система использует другую версию python например не 2.4 а 2.5.)

Обновите все пакеты с помощью

yum upgrade

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

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

yum groupupdate Base

Возможно понадобится обновить другие группы пакетов, просмотрите их с помощью

yum grouplist

Например:

yum groupupdate "GNOME Desktop Environment" \
"Development Tools" "Server Configuration Tools" \
"Hardware Support" "Sound and Video" \
"Graphical Internet" "Fonts" \
"Games and Entertainment" "Printing Software" \
"Administration Tools" "Office/Productivity" "System Tools"

5. Подготовка к перезагрузке

Прежде, чем перезагрузить систему, необходимо установить загрузчик grub с помощью команды

/sbin/grub-install BOOTDEVICE

- здесь BOOTDEVICE обычно является /dev/sda (Если вы получите сообщение об ошибке '/dev/sda does not have any corresponding BIOS drive' в результате выполнения этой команды, попробуйте выполнить /sbin/grub-install --recheck /dev/sda.)

Кроме того, необходимо изменить скрипты инициализации, которые изменились с предыдущей версии. Выполните команду:

cd /etc/rc.d/init.d; for f in *; do /sbin/chkconfig $f resetpriorities; done

Снова выполните package-cleanup --orphans, чтобы отыскать пакеты, которые не были обновлены.


Замечания по отдельным версиям

Fedora 12 -> Fedora 13


Fedora 11 -> Fedora 12

Fedora 10 -> Fedora 11

yum update rpm
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. </metalink>/

This is 498720. Workaround is to manually edit the URL in /etc/yum.repos.d/fedora.repo as described at https://www.redhat.com/archives/fedora-list/2009-June/msg00783.html

Fedora 9 -> Fedora 10

Fedora 8 -> Fedora 9

Fedora 7 -> Fedora 8

yum groupinstall sound-and-video gnome-desktop (if you are using Gnome)
yum groupinstall sound-and-video kde-desktop (if you are using KDE)
yum install libflashsupport paman padevchooser
rpm -e --noscripts avahi-0.6.17-1.fc7
yum erase dbus.i386
yum shell
> erase dbus.i386
> update
> run
yum erase kde{accessibility{,-devel},base,edu,graphics,multimedia{,-extras},network,sdk,utils{,-devel},webdev}.i386
yum erase beryl\*

Fedora Core 6 -> Fedora 7

Fedora Core 5 -> Fedora Core 6

Fedora Core 4 -> Fedora Core 5

Fedora Core 3 -> Fedora Core 4

yum update yum

Problems:

yum update kernel
reboot
yum remove kernel-2.6.11\*FC3\*
yum upgrade
reboot

Reading repository metadata in from local files This means you have too much crap in your rpmdb and it's taking a while to go through it. Check out how many kernels you have installed: rpm -q kernel kernel-smp and remove the old ones you may also try running: rpm --rebuilddb and see if it helps any. I've found that removing old kernels and rebuilding the rpmdb helped this problem.

yum remove perl.i386
TODO: Add list of bonobo i386 packages to remove here

koffice was removed from Fedora Core and not moved to extras - so there's no way to complete an upgrade to FC4 without removing it. run:

yum remove koffice

then your update should complete.

Seems related to bug 155730 -- Maybe a update to the "rpm-4.3.3-3.0.fc3" (currently in updates-testing) might solve this. Ugly workaround (to be done as root):

: > /var/log/lastlog
warning: rpmts_HdrFromFdno: V3 DSA signature: NOKEY, key ID db42a60e
public key not available for <some_package>
Retrieving GPG key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

The GPG key at file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora (0x4F2A6FD2)
is already installed but is not the correct key for this package.
Check that this is the correct key for the "Fedora Core 4 - i386 - Base" repository.

Edit /etc/yum.repos.d/fedora.repo and replace the line

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

with:

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY
diskspacecheck=0
</code> in <code>/etc/yum.conf</code>.
The RPM transaction will need a lot of diskspace temporarily (much more than one might think), so be careful.
Don't forget to remove that later after the upgrade.

* Yum complains about files conflicting in the GCC package.  This system was upgraded from Fedora Core 1.  Remove the gcc32 package:
<pre>
sudo rpm -e gcc32
sudo depmod -ae -F /boot/System.map-[your <code>uname -a</code> kernel version here] 

Fedora Core 2 -> Fedora Core 3

Go here for most of this info: http://linux.duke.edu/~skvidal/misc/fc2-fc3-update-with-yum.txt

Fedora Core 1 -> Fedora Core 2

Just Upgrade using anaconda - save yourself a world of pain. But if you really want to try, there's these hints by Seth Vidal: http://linux.duke.edu/~skvidal/misc/fc1-fc2-yum-hints.txt