Страница 1 из 4

FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-06-08 9:17:10
paix
CentOS Linux - управление пакетами (установка и поддержка софта)

Небольшой 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/TipsAndTricks/YumAndRPM

Дополнительные репозитории.
В базовых репозиториях не так то много пакетов. По этому существуют дополнительные репозитарии.
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
Все ;) теперь можно наслаждаться установкой\обновлением пакетов из репозитариев!

Касательно сорсинсталлов:
http://wiki.centos.org/PackageManagement/SourceInstalls - How (not) to install Software from Source on CentOS
http://www.bofh-hunter.com/2009/01/02/evils-of-source - Evils of Source

Полезные ссылки:
http://wiki.centos.org
http://www.centos.org/docs/5/
http://kbase.redhat.com/ - redhat knowlege base
http://www.redhat.com/docs/wp/ - redhat technical whitepapers
http://www.nsa.gov/ia/_files/os/redhat/ ... e-i731.pdf - security configuration of RHEL5

http://www.redhatmagazine.com/2008/01/1 ... m-security - Tips and tricks: yum-security
http://kbase.redhat.com/faq/docs/DOC-2531 - yum equivalents of up2date

http://www.opennet.ru/base/sys/rpm_create.txt.html - создание собственных RPM пакетов
http://tigro.info/blog/index.php?id=375 - цикл статей по сборке RPM и DEB пакетов
http://www.sys-adm.org.ua/system/rpm.php - основы работы с менеджером пакетов RPM
http://www.sys-adm.org.ua/system/rpm-build.php - собираем RPM пакет своими руками
http://www.lexpr.ru/node/11 - перевод RedHat RPM Guide
http://www.redhat-club.org - ред-хат клуб (RU). Особенно будет полезен для desktop-users.
http://centos.alt.ru/ - очень интересный ресурс, посвященный centos. Также репозитарий сдесь.

Еще раз хочу повторить!! собираем пакет только если его нет в доступных репозитариях!
после сборки пакета, создаем свой репозитарий, ложим туда этот пакет, подключаем свой репозитарий к своей группе серверов и вуаля ;)
на всех серверах пакет доступн к употреблению!

Если же в доп. репозитариях вы пакет найти не можете, то поищите в инете, наверняка уже есть готовый rpm.
Например, если вам просто очень необходим Postgres 8.3 in CentOS 5
http://www.postgresql.org/ftp/binary/v8 ... el-5-i386/
https://projects.commandprompt.com/public/pgcore

Некоторые интересные вещи касательно redhat\fedora или "откуда и куда ноги растут":

http://fedoraproject.org/wiki/Red_Hat_contributions
http://www.neowin.net/news/main/09/01/2 ... at-red-hat

пользуясь случаем рекламирую технологиию openvz :) Хотя по ссылкам непосредственно отображено информация для размышления касательно redhat.
http://community.livejournal.com/openvz/21817.html - kernel contributers
http://community.livejournal.com/openvz/23621.html - how free software works: Red Hat and OpenVZ

changelog:
151009: added centos.alt.ru repo, elrepo
110609: added rpm -qlp; yum provides; rpm -qf; several links

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-06-08 16:37:35
_andy
Добавлю:
перевод RedHat RPM Guide - http://www.lexpr.ru/node/11

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-06-09 20:36:24
rainy
хорошее howto. Не согласен только с этим утверждением
Если же в доп. репозитариях вы пакет найти не можете, то поищите в инете
Как-то это не гуд, виндузячий подход.

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-06-10 9:17:00
paix
rainy писал(а):
Если же в доп. репозитариях вы пакет найти не можете, то поищите в инете
Как-то это не гуд, виндузячий подход.
Невозможно оценить преимущества системы, не понимая ее архитектурных особенностей.

PS. Прошу не разводить флейм.

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-06-10 21:37:09
gloom
стоит засунуть в вики

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-06-11 9:02:24
_Andy
paix писал(а): Несколько полезных команд rpm:
Добавляю.

Код: Выделить всё

# rpm -qlp  ${package name}  #показать список файлов в неустановленном пакете.
Дополнительный репозиторий для Fedora/CentOS
RPMFusion

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-06-11 11:11:23
paix
_Andy писал(а):
paix писал(а): Несколько полезных команд rpm:
Добавляю.

Код: Выделить всё

# rpm -qlp  ${package name}  #показать список файлов в неустановленном пакете.
Дополнительный репозиторий для Fedora/CentOS
RPMFusion
спасибо, подправил.

есть много репозиториев, они указаны по ссылке
http://wiki.centos.org/AdditionalResources/Repositories
также я пользуюсь этим:
http://www.redhat-club.org/Repository

но, что rpmfusion, что остальные (atrpms, redhat-club repo...)- как бы продесктопные репозитории
в этой крайткой заметке я старался делать акцент на серверное применение centos\redhat

для серверов мне обычно хватает epel, и в крайних случаях rpmforge (напр., clamav, subversion 1.6 стоят из rpmforge). Базового серверного софта достаточно в базовых репозиториях (apache, mysql, etc..)

Да, еще можно добавить сюда CentOS-Testing repo.
установка выглядит так: (кусок из моего скрипта)

Код: Выделить всё

[ -f /etc/yum.repos.d/CentOS-Testing.repo ] || {
        cd /etc/yum.repos.d/
        wget http://dev.centos.org/centos/5/CentOS-Testing.repo
        perl -pi -e 's/enabled=0/enabled=1/g' /etc/yum.repos.d/CentOS-Testing.repo
        echo 'priority=29' >> /etc/yum.repos.d/CentOS-Testing.repo
        cd -
}
в нем имеются весьма интересные пакеты, например php-5-2.6 и еще другие пакеты, собраные преимущественно на базе RHWAS http://ftp.redhat.com/pub/redhat/linux/ ... HWAS/SRPMS

Кстати любой srpm можно пересобрать запросто самому. Для этого удобно и рекомендуется использовать mock https://fedoraproject.org/wiki/Legacy/Mock
Процесс выглядит примерно так:

Код: Выделить всё

yum install mock.i386
# adduser sk
# /usr/sbin/usermod -G mock sk
# su - sk
$ " wget srcrpm from RHWAS..."
$ mock -r centos-5-i386   --no-clean  --rebuild php-5.2.9-2.el5s2.src.rpm
PS. дабы не забивать людям мозги лишней информацией я этого не писал. Все постепенно.

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-06-11 11:41:26
detx
большое спасибо paix так может и статья получиться

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-06-11 17:23:27
_Andy
Да Серег, надо бы как-то собраться и написать заметку в вики, что ли.

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-06-11 18:05:24
paix
я полагал, что официальный вики wiki.centos.org придуман не просто так.

что-что, а по редхат документации просто море. Читать не перечитать. Хотя все оно одинаковое.
Главное знать где ее найти.

Основные ссылки указаны.
Если кто юзает как десктоп rhel\centos - то будет полезно http://www.redhat-club.org
это также для тех кто не дружит с ен.

Кстати, мне еще нравится документация вот на
этом сайте

например, http://www.nsa.gov/ia/_files/os/redhat/ ... e-i731.pdf

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

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-06-11 22:37:01
Hrafn
последняя пдфка очень даже интересная... попереводить что ли ее

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-06-17 22:08:33
fxp
Начал миграцию конторы Фря -> Линукс из-за openvz, чем больше углубляюсь - тем больше понимаю насколько правильное это было решение, большое спасибо за топик - очень позновательно для заядлого фрюшника.

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-06-17 22:49:46
paix
fxp писал(а):Начал миграцию конторы Фря -> Линукс из-за openvz, чем больше углубляюсь - тем больше понимаю насколько правильное это было решение, большое спасибо за топик - очень позновательно для заядлого фрюшника.
да, после виртуализации на jailах на openvz можно начать молиться ;)
весьма мощная технология.

кстати если кто не любит консоль, то есть proxmox (дистрибутив на базе дебиана со встроенной openvz и графическим менеджментом),
еще есть набор панелей для openvz, на openvz вики есть список. В сети есть вполне приличные хауту, vtonf кажется.

Но это не по джедайски. скрипты - наш вэй -)

очень рекомендую вот это 5ти страничное введение в openvz
http://download.openvz.org/doc/openvz-intro.pdf

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-06-17 23:53:41
Alex Keda
paix писал(а):
fxp писал(а):Начал миграцию конторы Фря -> Линукс из-за openvz, чем больше углубляюсь - тем больше понимаю насколько правильное это было решение, большое спасибо за топик - очень позновательно для заядлого фрюшника.
да, после виртуализации на jailах на openvz можно начать молиться ;)
весьма мощная технология.
гы =)
нахрен тока нужная? =)

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-06-18 10:15:08
paix
лис, очнись!
процессоры уже делают с аппаратной поддержкой виртуализации, а ты все в каменном веке "нахер нада".

зачем нужна легковесная виртуализация можно прочитать по ссылке в предыдущем моем посте.
это консолидация сервисов, их логическое разделение, безопасность, маштабирование и переносимость, простота обслуживания, управление ресурсами и защита от перегрузок.

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

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-06-18 15:48:34
Alex Keda
ф топку.
=========
а тему прилеплю. полезная.

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-07-06 10:48:19
_Andy
2 paix - По следам вчерашней сборки rsyslog для CentOS (нужен был свежий stable),
могу сформировать небольшую статью по сборке пакетов. Насколько это нужно читателям?
Еще бы хотелось туда работу в сборочной среде mock добавить. Сможешь помочь?

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-07-06 10:57:19
paix
_Andy писал(а):2 paix - По следам вчерашней сборки rsyslog для CentOS (нужен был свежий stable),
могу сформировать небольшую статью по сборке пакетов. Насколько это нужно читателям?
Еще бы хотелось туда работу в сборочной среде mock добавить. Сможешь помочь?
статей много по теме, но в них часто очень много воды. Свой опыт ценнее всего.
Статью пиши, лишней не будет. С моском тоже помогу в меру своих познаний ;)

Важно раскрыть момент, в каких случаях нужно самому самостоятельно собирать пакеты, и если собирать, то как это делать правильно (с последующей процедурой обновления и использования данного пакета на остальных подчиненных серверах)

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-07-06 13:04:56
_Andy
paix писал(а):статей много по теме, но в них часто очень много воды. Свой опыт ценнее всего.
Статью пиши, лишней не будет. С моском тоже помогу в меру своих познаний ;)
Важно раскрыть момент, в каких случаях нужно самому самостоятельно собирать пакеты, и если собирать, то как это делать правильно (с последующей процедурой обновления и использования данного пакета на остальных подчиненных серверах)
На этой неделе попытаюсь сделать. Сборка не с нуля, а на основе имеющегося спека, соответственно, оно легче получилось, но не сильно,
я уже хотел было сам спек рисовать.

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-07-11 17:51:17
weec
paix, упоминал об php-5.2.6

http://wiki.centos.org/AdditionalResources/Repositories
есть некий remi-репозитарий, содержит свежие php-5.2.9 и mysql-5.1
судя по вышеприведеной ссылке, его рекомендуют на форумах и в списках рассылки

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-07-16 11:51:07
Andy
_Andy писал(а):На этой неделе попытаюсь сделать. Сборка не с нуля, а на основе имеющегося спека, соответственно, оно легче получилось, но не сильно,
я уже хотел было сам спек рисовать.
Статья закончена, даже не знаю стоит ли публиковать и как это лучше сделать.

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-07-16 12:40:42
detx
Andy писал(а):
_Andy писал(а):На этой неделе попытаюсь сделать. Сборка не с нуля, а на основе имеющегося спека, соответственно, оно легче получилось, но не сильно,
я уже хотел было сам спек рисовать.
Статья закончена, даже не знаю стоит ли публиковать и как это лучше сделать.
Мне кажется что надо, очень полезная статейка.

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-07-16 12:41:32
detx
Можно еще вот это добавить
http://www.opennet.ru/tips/info/2130.shtml

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-07-20 15:13:59
paix
weec писал(а):paix, упоминал об php-5.2.6

http://wiki.centos.org/AdditionalResources/Repositories
есть некий remi-репозитарий, содержит свежие php-5.2.9 и mysql-5.1
судя по вышеприведеной ссылке, его рекомендуют на форумах и в списках рассылки
я юзаю php-5 из centos5-testing репозитария. Они его собирают на основе RHWAS, что мне видится постабильней нежели remi. Если поискать существует валом репозиториев для php5. На remi я тоже натыкался в списках рассылки.

Немного проблемным бывает когда нет какого-нибудь хитрого экстеншина пхп...

Re: FAQ: CentOS\RHEL Linux - управление пакетами

Добавлено: 2009-07-27 3:20:54
Михаил Гула
Дайте пожалуйста ссылку на документацию с детальнейшим описанием настройки сети в Центос
описание "абсолютно всех "параметров /etc/sysconfig/network-scripts/ifcfg-eth0 итд.

Абсолютно все параметры и для вланов и для роутов итд.