Небольшой 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 -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
Что делать если и в базовом репозитарии и в дополнительных есть одни и теже пакеты?
конечно, предпочтительней использовать базовые репозитарии (т.к. они стабильнее и официально поддерживаются security team).
Чтобы в системе был порядок, после подключения доп. репозиториев следует настроить приоритеты репозиториев.
http://wiki.centos.org/PackageManagement/Yum/Priorities
на пальцах:
Код: Выделить всё
# yum install yum-priorities #устанавливаем плугин приоритетов
в секциях добавляем 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

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