Форумы

GNU.SU - Записки нубо-линуксойда :: Форумы :: LinuxЫ :: CentOS, RedHat, Fedora
 
<< Предыдущая тема | Следующая тема >>
CentOS Linux - управление пакетами (установка и поддержка софта)
Модераторы: tastelinux, Frizze, andrey, Bender
Автор Добавил
andrey
Чтв Сен 09 2010, 07:37

ID пользователя #2
Зарегистрирован: Срд Май 05 2010, 10:56

Сообщений: 69
Небольшой FAQ как "правильно" жить в linux. Ибо слишком много возникает глупых вопросов о сорсинсталах.
CentOS - свободно-распостраняемый дистрибутив GNU/Linux, основанный на коммерческом Red Hat Enterprise Linux от компании Red Hat, и бинарно совместимый с ним.
CentOS - это сервер-ориентированная система, хотя многие, включая меня, используют ее в том числе и на десктопах.
В основном данное хауту фокусируется на CentOS5, хотя будет справедливо и для CentOS4, а также RHEL.

Формат пакетов в RHEL\ CentOS\Fedora - rpm.
Для обвноления и установки пакетов из репозитариев применяется yum

Почему в RHEL\ CentOS так много "устаревших" программ? - Это не устаревшие программы. RHEL\ CentOS использует версионизированную пакетную систему. Это означает что версия любого софта закреплена (например, httpd-2.2.3) в течении всего цикла поддержки версии дистрибутива (7лет).
При этом все security fixes и bugfixes бекпортируются в данный софт. Это сделано для того, чтобы ваша система имела определенную гарантированную функциональность независимо от апдейтов. Backporting of Security Fixes
Подобную модель использует Debian linux, а также SLES (Suse Linux).

Наиболее часто используемые команды yum:

  • yum check-update #посмотреть список обновлений
  • yum search ${keyword} #поиск пакета

  • yum install ${package name/s} #установить новый пакет\пакеты
  • yum localinstall ${absolute path to package name/s} #установить локально-расположенный пакет

  • yum update #обновление всех пакетов; обновление между версиями centos 5.2 -> 5.3 происходит аналогично.
  • yum update ${package name/s} #обновить единичный пакет\пакеты
  • yum update httpd mod_php

  • yum list installed #показать список установленных пакетов
  • yum list available #показать список доступных пакетов
  • yum info ${package name} #показать информацию о пакете
  • yum provides ${file name or lib name} #показать какому пакету принадлежит библиотека или файл.
  • yum provides /etc/modprobe.conf

  • yum --disablerepo=
  • --enablerepo=epel ${action} # сделать что-либо указав определенный репозитарий.
  • yum --disablerepo=
  • --enablerepo=epel list available #например, вывести список доступных пакетов в репозитории epel

  • yum remove ${package name/s} #удалить пакет\пакеты


Несколько полезных команд rpm:

  • rpm -qa #показать список установленных пакетов
  • rpm -ql ${package name} #показать список файлов от установленного пакета
  • rpm -ql exim
  • rpm -qlp ${package name} #показать список файлов в неустановленном пакете.
  • rpm -qf ${file name} #показать какому пакету принадлежит файл. (аналог yum provides)
  • rpm -Uvh ${path or url to package name/s} #установка\обновления отделно взятого rpm


Дополнительные репозитории.

В базовых репозиториях не так то много пакетов. По этому существуют дополнительные репозитарии.
http://wiki. centos.org/AdditionalResources/Repositories

Наиболее распостраненные и широкоиспользуемые дополнительные репозитории -
EPEL (Extra Packages for Enterprise Linux)
http:// centos.alt.ru/?p=120 - centos.alt репозитарий. Сдесь очень много замечательных серверных пакетов, таких как
nginx-stable,nginx-devel, php-fpm, clamav и т.п. - рекомендую.
RPMforge
http://elrepo.org/ ELrepo - хороший репозитарий, содержащий свежие драйвера. (ELRepo currently focuses on hardware related packages to boost your experience with Enterprise Linux, this includes filesystem drivers, network drivers, webcams and video drivers.)

В качестве серверных репозитариев очень устраивают epel + centos.alt репозитарии.
Если вы используете centos в качестве десктопа, то вероятно прийдется подключить большее колличество репозитариев. Ссылка выше.


Кроме того в доп. репозитариях как правило более новые пакеты. Например, версии nginx обновляется регулярно.
Для подключения репозитариев см. ссылке выше. Как правило нужно просто установить соотвествующий rpm.
Например,

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm


чтобы подключить epel в i386 системы.

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

http://wiki. centos.org/PackageManagement/Yum/Priorities

на пальцах:

    # yum install yum-priorities   #устанавливаем плугин приоритетов




далее в /etc/yum.repos.d/ CentOS-Base.repo
в секциях добавляем priority=N, где N - число от 1 до 100, определяющее приоритет. Чем меньше число - тем больше приоритет.
т.е. наша секция [base] будет выглядеть так:

[base]
    name= CentOS-$releasever - Base
    mirrorlist=http://mirrorlist. centos.org/?release=$releasever&arch=$basearch&repo=os
    gpgcheck=1
    gpgkey=http://mirror. centos.org/ centos/RPM-GPG-KEY- CentOS-5
    priority=1



обратить внимание на последнюю строку!!!

аналогично поступаем для [updates], [addons], [extras].
[centosplus] можно подключить с чуть низшим приоритетом, например 5. Хотя данный репозитарий редко бывает нужен.

Дополнительные репозитарии, EPEL, подключаем соотвественно с еще более низким приоритетом.

    [epel]
    name=Extra Packages for Enterprise Linux 5 - $basearch
    ...
    priority=22

Все ;) теперь можно наслаждаться установкой\обновлением пакетов из репозитариев!

[ Редактирование Срд Сен 15 2010, 02:53 ]
Наверх
CentOS   yum   repos   rpm   rpm examples   yum commands   команды yum   

 

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System