Admin/UpdateLinux

Материал из Etersoft wiki
Перейти к: навигация, поиск

Обновление Linux-систем

Описание того, как перевести систему на следующую версию.

По возможности используем зеркало на http://mirror.yandex.ru.


Fedora

Устанавливаем последние обновления для системы:

yum -y update

Если жалко, можно попробовать только

yum install rpm yum

Чистим кэш yum:

yum clean all

Устанавливаем пакет fedora-release:

rpm -Uvh http://mirror.yandex.ru/fedora/linux/releases/16/Fedora/x86_64/os/Packages/fedora-release-16-1.noarch.rpm

и выполняем

yum update

При обновлении в контейнере OpenVZ можно получить что-то подобное:

error: unpacking of archive failed on file /usr/libexec/pt_chown: cpio: cap_set_file failed - Operation not permitted

Приходится вручную скачивать пакет и ставить его командой

rpm --justdb

А потом копировать вручную файлы из него в систему. См. также http://bugs.etersoft.ru/show_bug.cgi?id=7347#c5

Обновление 14->15

rpm --import https://fedoraproject.org/static/069C8460.txt
yum update yum
yum clean all
yum --releasever=15 --disableplugin=presto distro-sync


Установка пакетов для разработки:

yum groupinstall 'Development Tools'

CentOS

Для обновления CentOS 5.x до следующего релиза, достаточно выполнить команду "yum update", предварительно проверить какие пакеты подлежат обновлению можно через "yum list updates", а убедится, что обновление прошло успешно - "rpm -q centos-release".


Mandriva

Удалить старые репозитории:

urpmi.removemedia -av

Установить новые:

urpmi.addmedia --distrib
URL

Например,

urpmi.addmedia --distrib http://mirror.yandex.ru/mandriva/devel/2010.2/i586/

Обновиться:

urpmi --auto-update --replacefiles


SUSE

Сначала смотрим все репозитории командой

zypper sl

Потом надо удалить все репозитории командой

zypper rr <номер_репозитория>


Добавляем репозиторий от 11.1 ветки

zypper ar http://mirror.yandex.ru/opensuse/distribution/11.1/repo/oss 11.1oss

Теперь у нас есть репозиторий с именем 11.1


Дальше обновляем репозитории командой

zypper ref

Сначала следует обновить rpm

zypper in rpm

также необходимо обновить zypper

zypper in zypper


Теперь запускаем команду

zypper dist-upgrade

и система обновляется.


Если возникают проблемы с /var/lib/zypp/cache/.../DATA/descr/packages, необходимо создать этот файл.

То же с epm:

epm sl
epm rr N
epm ar URL name
epm update
epmi rpm zypper
epm upgrade


PCLinux

В /etc/apt/sources.list изменить номер релиза, проверить на зеркале наличие соответствующих папок updates, main и т.д.

# apt-get update
# apt-get upgrade

Arch Linux

Зеркала настраиваются в /etc/pacman

Для обновления системы запускаем pacman -Syu

Ubuntu

Изменить репозитории в /etc/apt/sources.list и

epm update
epm upgrade

После копирования (с созданием жёстких ссылок) и последующего обновления слетают права на /bin/su и /bin(u)mount. Быстрая починка:

# chmod 04755 su umount mount

Дополнительно

Для создания chroot использовал пакет debootstrap (предварительно собрав его).

Команда для создания chroot:

# debootstrap --variant=buildd --arch i386|amd64 oneiric /path/to/chroot http://mirror.url.com/ubuntu/

Мануал взят с https://help.ubuntu.com/community/BasicChroot


Проблема с "start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused" при установке новых пакетов в контейнер OpenVZ леичт так:

# dpkg-divert --local --rename --add /sbin/initctl
Adding 'local diversion of /sbin/initctl to /sbin/initctl.distrib'
# ln -s /bin/true /sbin/initctl

Slackware

# epm repolist

Смотрим, какой репозиторий указан и в каком файле. Исправляем путь до новой версии.

# epm update
# epm upgrade

FreeBSD

Обновление через cvsup:

Указываем в /etc/supfile (можно скопировать standard-supfile из /usr/share/examples/cvsup/)

  • default tag=RELENG_7_2

7_2 - релиз, до которого планируем обновляться.


Качаем исходники для этого релиза:

cvsup -g -L 2 /etc/supfile


Обновляемся:

cd /usr/src
make buildworld
make buildkernel KERNCONF=YOUR_KERNEL_HERE (YOUR_KERNEL_HERE - название ядра которое лежит в папке /usr/src/sys/i386/conf. Но заметьте, вы путь не указываете, а указываете только имя файла. Советую переименовать файл, чтобы скомпилилось новое ядро, а не то что было до обновления системы)
make installkernel KERNCONF=YOUR_KERNEL_HERE
reboot 
mergemaster -p
make installworld
mergemaster
reboot


Монтирование FTP разделов

Для облегчения жизни при установке новой системы (дабы не скачивать iso'шник) можно смонтировать ftp-сервер (например ftp.mirror.yandex.ru) на машине и подсунуть VirtualBox'у iso'шник лежащий на сервере.

Все, что необходимо - это маленькая программка CurlFtpFS.

Для установки:

$ sudo apt-get install curlftpfs

Для монтирования FTP-раздела, например ftp://mirror.yandex.ru, в каталог /mnt/ftp используется команда:

$ sudo curlftpfs ftp://mirror.yandex.ru /mnt/ftp -o allow_other

(параметр -o allow_other позволяет читать содержимое смонтированного каталога всем пользователям)