2009/02/13

Локальный CentOS репозитарий

Роман Шрамко напомнил о давней идее - организовать локальный CentOS репозитарий. Приложив минимум усилий, имеем скрипт centos_repository_update.sh, который через cron всё делает автоматечески.
#!/bin/bash

rsync="/usr/bin/rsync -aqHz --delete --delay-updates --bwlimit=512"
mirror=mirrors.kernel.org::centos
ver=5
archlist="i386"
baselist="os updates extras"
local=/var/centos

for arch in $archlist
do
for base in $baselist
do
remote=$mirror/$ver/$base/$arch/
$rsync $remote $local/$ver/$base/$arch/
done
done
Прежде чем запускать скрипт, необходимо создать требуемую структуру каталогов
mkdir -pv /var/centos/5/{os,updates,extras}
Вот теперь можно запустить сам скрипт centos_repository_update.sh и, пока он скачивает пакеты, сконфигурировать доступ к каталогу /var/centos через http-протокол с клиентов.
На клиентах необходимо отредактировать описания доступных репозитариев (каталог /etc/yum.repos.d), неиспользуемые репозитарии можно отключить. Вот пример переписанного конфигурационного файла для работы с новоиспечённым локальным репозитарием:
[base]
name=CentOS-$releasever - Base
baseurl=http://server/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://server/centos/RPM-GPG-KEY-CentOS-5

[updates]
name=CentOS-$releasever - Updates
baseurl=http://server/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://server/centos/RPM-GPG-KEY-CentOS-5

[extras]
name=CentOS-$releasever - Extras
baseurl=http://server/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://server/centos/RPM-GPG-KEY-CentOS-5
Перед запуском утилиты yum, необходимо ещё выложить в корень (в директорию /var/centos/) репозитария открытый gpg-ключ релиза (файл /var/centos/5/os/i386/RPM-GPG-KEY-CentOS-5).

Ссылки:
  1. CentOS Mirroring HowTo
  2. Локальный репозитарий для CentOS

2009/02/12

Установка и конфигурирование transmission на dd-wrt

Железо - Linksys WRT54GL (v1.1) + NAS (HDD, доступный через CIFS/SMB), OS - dd-wrt v.24. Потребность - закрутить на всём этом хозяйстве torrent-демон transmission с возможностью управления закачками через web.
Сперва стоит позаботиться о том, чтобы файловая система jffs работала без проблем и была примонтирована (/jffs, NAS как раз для этого и нужен). На её основе будет построена новая ветка /jffs/opt, в которую будет установлены все необходимые для работы transmission пакеты Optware.
# mkdir /jffs/opt
# mount -o bind /jffs/opt /opt
Далее необходимо пройти минимальную установку Optware:
# wget http://www.3iii.dk/linux/optware/optware-install-ddwrt.sh -O /tmp/optware-install.sh
# sh /tmp/optware-install.sh
Теперь можно запускать установку transmission, установив прежде переменную PATH:
# export PATH=/opt/bin:/opt/sbin:$PATH
# ipkg-opt install transmission
Домашней директорией для transmission будет /jffs/torrents, поэтому запускаем демон, указав необходимые параметры
/opt/bin/transmission-daemon -g /jffs/torrents/.config/transmission-daemon -a "192.168.1.33"
killall transmission-daemon
Запустив однажды transmission, создаётся дерево служебных подкаталогов, скаченные файлы складываются в корень созданной структуры (/jffs/torrents), конфигурационный файл - /jffs/torrents/.config/transmission-daemon/settings.json:
/jffs/torrents/.config/
/jffs/torrents/.config/transmission-daemon
/jffs/torrents/.config/transmission-daemon/settings.json
/jffs/torrents/.config/transmission-daemon/stats.json
/jffs/torrents/.config/transmission-daemon/blocklists
/jffs/torrents/.config/transmission-daemon/resume
/jffs/torrents/.config/transmission-daemon/torrents
Остаётся открыть порт 9091 для доступа к web-интерфейсу
/usr/sbin/iptables -I INPUT 1 -p tcp --dport 9091 -j logaccept
и добавить запуск transmission в startup-скрипт
mount -o bind /jffs/opt /opt
export PATH=/opt/bin:/opt/sbin:$PATH
/opt/bin/transmission-daemon -g /jffs/torrents/.config/transmission-daemon
Web-интерйейс доступен с компьютера 192.168.1.33 по адресу http://host:9091/transmission/web/.

Ссылки:
  1. DD-Wrt Wiki