Система управления ПО в OpenSUSE (статейка расчитана на новичков!).
В данном топике я хотел бы описать процесс управления репозитариями и ПО в СуСе.
Введение.
В отличае от M$ windows, в которой каждая программа имеет свой инсталятор, в linux существует одна программа (Пакетный менеджер - ПМ), который и устанавливает программы (в терминалогии linux - "пакеты").
Градация дистрибутивов линукс:
1) бинарные дистрибутивы - сборки операционных систем на базе ядра линукс, ПО для которых распространяется в виде пакетов! - пакетные дистрибутивы.
1.1) rpm-based (RH-like, SuSe, Mandriva ...);
1.2) deb-based (Debian, Ubuntu, Mint ...);
2) дистрибутивы, ПО для которых распространяется в исходниках (Slackware ...) - сырцовые дистрибутивы.
Соответственно и методы управления ПО для дистров различны.
Особенно хочу выделить мысль, которую мне долго вдалбливали (и с которой я согласился): нельзя устанавливать программы из исходников в пакетные дистры и наоборот! Вы рискуете привести систему к краху. почиму? в пакетных дистрах управление ПО производиться ПМ, которые не будут иметь понятья о ПО, которое вы поставите вручную! и в случае чего (при соблюдении зависимостей др. пакетов и т.д.) ПМ может затереть файлы, установленные вручную. да и вручную обрабатывать все зависимости при установке ПО "неинтересно" и муторно, в то время как ПМ сделает это за сикунды (собственно для чего он и придуман). И что тогда делать? Ответ:
1) искать ПО в репозитариях;
2) собирать пакеты самим.
Хотя, лично я не вижу ничего страшного в том чтобы ставить из изходников какие-либо небольшие программы, но в специально отведённое место!!! Также стоит отметить, что пакеты, собранные для одного дистрибутива (например Mandriva) не желательно ставить в др. дистр (например в RH), хоть и "расширение" у данных пакетов одинаковое, но формат может отличаться (и мне не понятно, почему девелаперы не могут прийти к консенсусу...но это др. история) и быстрее всего работать они не будут, но в редких случаях работоспособность сохраняется!
Как правило, система управления пакетами работает со множеством пакетов, хранящихся в специальном репозитории. Репозиторий может храниться как на локальных запоминающих устройствах(оптическом или жёстком диске), так и на удалённой машине (HTTP, FTP). Репозиторий — место, где хранятся и поддерживаются какие-либо данные. Чаще всего данные в репозитории хранятся в виде файлов, доступных для дальнейшего распространения по сети.
Примеры ПМ:
-rmp;
-dpkg...
Система управления ПО (СУ ПО) - это инструмент для управления ПО из Репозитория (можно рассматривать как "надстройку" над ПМ). Приведу примеры СУ ПО:
-apt;
-zypper;
-urpm;
-yum;
-Portage...
У каждого ПМ есть свои плюсы и минусы. Если поверхностно (тема всё таки не про них), то rpm - "проще", deb - "функциональнее", но для конечного пользователя разница практически не заметна.
Итак про SuSe. Для неё характерен тандем "rpm + zypper" (хотя есть возможномть использовать apt вместо zypper!).
Основные комманды:
1) rpm. Пакеты rpm обычно имеют следующее название "<название>-<версия>-<релиз>.<архитектура>.rpm", например: "nano-0.98-2.i386.rpm".
"rpm -ivh пакет.rpm" - установить пакет. (-v и -h необязательные флаги, включают вывод дополнительной информации).
"rpm -U пакет.rpm" - обновить установленный пакет, если пакет не установлен - установить.
"rpm -e пакет.rpm" - удалить установленный пакет.
"rpm -q пакет.rpm" - вывод списка установленных пакетов.
- В случае изменений в системе, выполненных с помощью программы "rpm", обязательно выполните следующий шаг!
SuSEconfig настраивает систему, основываясь на данных, записанных в различных "/etc/sysconfig/" файлах. Внимание!!! После любых манипуляций с пакетами (установка, удаление)
из командной строки (без использования yast2) необходимо выполнить "sudo /sbin/SuSEconfig"!!!
2) zypper. Имеет файл настроек "/etc/zypp/zypp.conf", интересного там ничего нет, кроме одной единственной опции "packagesdir = /var/cache/zypp/packages", в данной строке
прописывается путь - куда бы вы хотели кешировать скаченные файлы-обновления ! Файлы описаний репозитариев находятся в директории "/etc/zypp/zypper.d".
2.1) Пример файла репозитария:
Всё просто. Особенно хочу отметить последнюю строку, присвоив "1" вы заставите zypper резервировать пакеты, устанавливаемые из этого репа. При самостоятельном создании
репозитария лучше использовать инструменты yast2 (причём yast можно использовать и из консоли - функциональность ничем не отличается!).
2.2) Использование zypper.
"sudo zypper se bind" - будет осуществлён поиск пакета с именем "bind" в репах.
"sudo zypper in bind" - будет установлен пакет с имененем "bind".
"sudo zypper rm bind" - будет удалён пакет с имененем "bind".
Приведу пример использования zypper. Просмотрим наличае обновлений и, если они есть, то установим их:
- Проверяем, включен ли реп с обновлениями:
Код:
ruslan@ruslan-linux:~> sudo zypper ls
# | Псевдоним | Имя | Включён | Обновление | Тип
---+------------------------------+------------------------------+---------+------------+-------
1 | Libdvdcss repository | Libdvdcss repository | Нет | Да | rpm-md
.........
9 | repo-update | openSUSE-11.2-Update | Да | Да | rpm-md
ruslan@ruslan-linux:~>
мы увидели список зарегистрированных репозитариев, среди них реп с обновлениями, причём он включен - что нам и нужно.
- Обновим репы (Внимание! Обновятся только те, для которых включена эта опция!)
ruslan@ruslan-linux:~> sudo zypper lu
Загрузка данных о репозиториях...
Чтение установленных пакетов...
С | Репозиторий | Имя | Текущая версия | Доступная версия | Архитектура
--+----------------------+------------+----------------+------------------+------------
v | openSUSE-11.2-Update | bind-libs | 9.6.1P2-1.1.1 | 9.6.1P3-1.1.1 | i586
v | openSUSE-11.2-Update | bind-utils | 9.6.1P2-1.1.1 | 9.6.1P3-1.1.1 | i586
ruslan@ruslan-linux:~>
zypper сам проверит, устарели файлы описаний реп (не путать с конфигами реп) или нет. видим что обновления есть!
- Ставим их (необязательный флаг "-n" должен устанавливаться сразу после "zypper"; приняв этот флаг zypper не будет задавать дополнительные вопросы! поэкспериментируйте
с этим флагом и поймёте):
Код:
ruslan@ruslan-linux:~> sudo zypper -n up
Загрузка данных о репозиториях...
Чтение установленных пакетов...
Будут обновлены следующие пакеты:
bind-libs bind-utils
2 пакета для обновления.
Полный размер загрузки: 983,0 KiB. После этой операции дополнительное дисковое пространство не будет использовано или освобождено.
Продолжить? [y/n/?] (y): y
Получение пакет bind-libs-9.6.1P3-1.1.1.i586 (1/2), 829,0 KiB (2,7 MiB после распаковки)
Получение: bind-libs-9.6.1P3-1.1.1.i586.rpm [готово (27,3 KiB/s)]
Установка: bind-libs-9.6.1P3-1.1.1 [готово]
Получение пакет bind-utils-9.6.1P3-1.1.1.i586 (2/2), 154,0 KiB (456,0 KiB после распаковки)
Получение: bind-utils-9.6.1P3-1.1.1.i586.rpm [готово (41,7 KiB/s)]
Установка: bind-utils-9.6.1P3-1.1.1 [готово]
Запущены некоторые программы, использующие файлы, удалённые недавним обновлением. Возможно, некоторые необходимо перезапустить. Запустите 'zypper ps' для получения списка этих программ.
ruslan@ruslan-linux:~>
- В случае использования "zypper" утилита "/sbin/SuSEconfig" выполненяется автоматически (в случае необходимости)!
заархивированные файлы - устаревшие логи, которые можно иногда чистить. Хотя в логах интересного прктически нет, в случае появления проблем, стоит тута заглянуть! Также существует файл истории использования "/var/log/zypp/history".
Было дело я использовал "Автоматическое обновление" (включал его в "yast") - проблем замечено не было! Но так как за компьютером я проважу много времени, то делаю это ручками.
///добавлено
во время обновления можно нарваться на следующее
Код:
ruslan@linux-ruslan:~> sudo zypper up
Загрузка данных о репозиториях...
Чтение установленных пакетов...
Следующее обновление НЕ будет установлено:
apparmor-utils audacity bind-libs bind-utils boost-license1_42_0 DirectFB ethtool gpg2 hal hal-32bit iputils jpeg kdeartwork4-screensaver
libboost_program_options1_42_0 libftgl2 libGLEW1_5 libjpeg8 libjpeg8-32bit libMagickCore3 libMagickCore3-32bit libMagickWand3 libmodman0 libproxy1........
данное сообщение появляется потому что некоторые обновления распространяются ввиде ПАТЧЕЙ (это по простому если! подробнее см. http://ru.opensuse.org/Zypper/Использование). а для установки патчей делаем
Код:
ruslan@linux-ruslan:~> sudo zypper patch
Загрузка данных о репозиториях...
Чтение установленных пакетов...
Разрешение зависимостей пакетов...
Будут установлены следующие НОВЫЕ пакеты:
libgle3 libjpeg6 libjpeg6-32bit xscreensaver-data-extra...
статья подпрвлена и дописана ! обсуждаем, правим. помойму, не плохо получилась!
den, если бутет желание включить статью (или отдельные части) в очередной самоучитель по СуСе - я только за .
да, и вот - главное понимать принципы работы, а дистр не так важет! названия утилит может быть различным но у них большенство параметров даже одинаковые.
ruslan@linux-ruslan:~> sudo zypper up
Загрузка данных о репозиториях...
Чтение установленных пакетов...
Следующее обновление НЕ будет установлено:
apparmor-utils audacity bind-libs bind-utils boost-license1_42_0 DirectFB ethtool gpg2 hal hal-32bit iputils jpeg kdeartwork4-screensaver
libboost_program_options1_42_0 libftgl2 libGLEW1_5 libjpeg8 libjpeg8-32bit libMagickCore3 libMagickCore3-32bit libMagickWand3 libmodman0 libproxy1........
данное сообщение появляется потому что некоторые обновления распространяются ввиде ПАТЧЕЙ (это по простому если! подробнее см. http://ru.opensuse.org/Zypper/Использование). а для установки патчей делаем
Код:
ruslan@linux-ruslan:~> sudo zypper patch
Загрузка данных о репозиториях...
Чтение установленных пакетов...
Разрешение зависимостей пакетов...
Будут установлены следующие НОВЫЕ пакеты:
libgle3 libjpeg6 libjpeg6-32bit xscreensaver-data-extra...
Зарегистрирован: 10.02.2009 Сообщения: 583 Откуда: Russland
Anton99 писал(а):
Ingvar писал(а):
ruslan89, очень неплохо, спасибо!
Linux надо популяризировать и нести в массы.
Но только не openSUSE.
В массы надо нести только Arch Linux... А ещё Gentoo, Slackware и что-нибудь посложнее, чтобы простой народ яйца с мозгами сломал. _________________ Life is short - write better code!
Оно только кажется что слака намного сложнее. Потом когда начинаешь работать, вполне нормальный дистр.
den писал(а):
Оно только кажется что арч намного сложнее. Потом когда начинаешь работать, вполне нормальный дистр.
фиксед
den писал(а):
Anton99, why?
Ask in #boycottnovell on irc.freenode.net
On a serious note, there are quite a few reasons not to use openSUSE. I won't waste my time recalling all of them, but main reason is lack of new packages in openSUSE - it still has 2.6.34.1, while Arch has 2.6.35 for a week or so already.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах