CentOS yum ошибка File «/usr/bin/yum», line 29, in ?

Иногда при использовании плагина fastestmirror, может возникнуть следующая ошибка:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Traceback (most recent call last):
File «/usr/bin/yum», line 29, in ?
yummain.user_main(sys.argv[1:], exit_code=True)
File «/usr/share/yum-cli/yummain.py», line 309, in user_main
errcode = main(args)
File «/usr/share/yum-cli/yummain.py», line 178, in main
result, resultmsgs = base.doCommands()
File «/usr/share/yum-cli/cli.py», line 345, in doCommands
self._getTs(needTsRemove)

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

Устаовка ELRepo репозитария

ELRepo это репозитарий с драйверами для графических, сетевых, звуковых карт, веб камер и многого другого.

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

rpm —import http://elrepo.org/RPM-GPG-KEY-elrepo.org

Для установкина RHEL-5, SL-5 или CentOS-5:

rpm -Uvh http://elrepo.org/elrepo-release-5-3.el5.elrepo.noarch.rpm

на RHEL-6, SL-6 или CentOS-6:

rpm -Uvh http://elrepo.org/elrepo-release-6-4.el6.elrepo.noarch.rpm

Установка Utter Ramblings репозитария

И так, устанавливаем Utter Ramblings репозитарий, для этого сначала добавляем GPG ключь:

rpm —import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

Далее создаем файл /etc/yum.repos.d/utterramblings.repo с таким содержимым:

[utterramblings]
name=Jason’s Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

Установка CentALT репозитария

CentALT это небольшой репозитарий, автор которого сосредоточил свое внимание всего на несколько пакетов, за-то обновления этих пакетов появляются в кратчайшие сроки. Вот список пакетов:

Clamav
Clamsmtpd
Conntrack-tools
Dnstop
Dovecot
Postfix
Httpd
Mc
Memcached
Mod_rpaf
Mod_realip2
Mysql
Nagios
Nagios-plugins
Nginx
Php
Spawn-fcgi
Unbound
Vsftpd
flow-tools
fprobe
ipt_netflow
softflowd
ipcad
quagga
А также модули ядра connlimit, ipmark, ipset, ipp2p.

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

rpm -ihv http://centos.alt.ru/repository/centos/5/i386/centalt-release-5-3.noarch.rpm

для x86_64:

rpm -ihv http://centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm

Подключаем Atomic Rocket Turtle Repo

Yum репозитарий Atomic хорош тем, что там можно найти очень свежие пакеты. Установка учень проста, все что надо сделать это запустить вот такую команду:

wget -q -O — http://www.atomicorp.com/installers/atomic | sh

Подключаем EPEL репозитарий к RHEL/CentOS

Проект EPEL (Extra Packages for Enterprise Linux), занимается поддержкой репозитория дополнительных пакетов для RHEL и CentOS. В репозитарии находится множество высококачественных дополнительных пакетов. Приступим к установке. Устанавливаем репозитарий для RHEL/CentOS 5.x

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

для 4.х ветки

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

и проверяем, если EPEL  в списке репозитариев:

yum repolist

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: ftp.tlk-l.net
* atomic: www5.atomicorp.com
* base: ftp.tlk-l.net
* centosplus: ftp.tlk-l.net
* contrib: ftp.tlk-l.net
* epel: ftp.tlk-l.net
* extras: ftp.tlk-l.net
* rpmforge: ftp-stud.fht-esslingen.de
* updates: ftp.tlk-l.net
 

Подключаем RPMForge

По умолчанию RPMForge репозитарий не заменяет базовые пакеты CentOS. Раньше было по другому, но сейчас вам необходимо будет вручную подключить специальный репозитарий (rpmforge-extras), что бы обновить базовые пакеты. Полный лист пакетов RPMForge вы всегда сможете найти на http://packages.sw.be/

Перейдем к установке. Скачиваем rpmforge-release пакет. Выберете одну из двух ссылок внизу в зависимости от архитектуры вашей системы:

CentOS 6.X

i686 http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

x86_64 http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

СentOS 5.X

i386 http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

x86_64 http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

CentOS 4.X

i386 http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el4.rf.i386.rpm

x86_64 http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el4.rf.x86_64.rpm

Устанавливаем DAG’s GPG ключ

rpm —import http://apt.sw.be/RPM-GPG-KEY.dag.txt

И устанавливаем:

rpm -i rpmforge-release*.rpm

Yum update Как исключить определенные пакеты?

Есть два способа, первый, когда запускаете yum, можно использовать опцию —exclude=

yum —exclude=package* update
yum —exclude=php* update
yum —exclude=*rrd* update
yum —exclude=kernel*,*snmp,perl* update

Второй, он более радикальный, можно  добавить исключение в конфиг файл /etc/yum.conf :

exclude=php* kernel*

Выглядеть это будет так:

[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
exclude=php* kernel*

Yum и apt-get через прокси сервер

Простые вещи, но их как раз таки и проще всего забыть. 

Yum через прокси.
Редактируем фаил /etc/yum.conf. Добавляем туда:

proxy=http://172.16.1.1:8080
proxy_username=username
proxy_password=password

Где 172.16.1.1:8080 адрес прокси сервера, proxy_username, proxy_password — логин и пароль соответственно. Если для доступа к прокси серверу не требуется аутентификация, то вы можете добавить только одну строку:

proxy=http://172.16.1.1:8080

Apt-get через прокси.
В директории apt необходимо создать файл proxy и добавить туда следующее:

cat << END >> /etc/apt/apt.conf.d/proxy
Acquire::http::Proxy «http://user:pass@172.16.1.1:8080/»;
Acquire::ftp::Proxy «ftp://user:pass@172.16.1.1:8080/»;
Acquire::http::Timeout «120»;
END

Соответственно, если пароля и логина нет, то:

cat << END >> /etc/apt/apt.conf.d/proxy
Acquire::http::Proxy «http://172.16.1.1:8080/»;
Acquire::ftp::Proxy «ftp://172.16.1.1:8080/»;
Acquire::http::Timeout «120»;
END