Показаны сообщения с ярлыком apache2. Показать все сообщения
Показаны сообщения с ярлыком apache2. Показать все сообщения

16 апреля 2009 г.

На распутье. Снова...

Снова в моём организме материализуется колющий инструмент. Он призывает меня экспериментировать с операционкой на ноутбуке. А всё дело в том, что я решил поставить drupal при том, что уже имею установленный apache+trac+svn. Тут я понял, что надо бы пользоваться виртуальными машинами - самое то для мальенького веб-сервера. Естественно, всё не так просто. Последние, где-то, полгода сижу на Debian Lenny и бед не знаю. Причем сижу на самосборном ядре 2.6.28.7, ибо только начиная с него у моего год-назад-купленного ноутбука заработал wi-fi. Западло здесь в том, что все серьёзные системы виртуализации (Xen, Vserver, QEMU, KVM) требуют своего патченного ядра. И мне совершенно не улыбается идея самому накатывать патчи. А готовые ядра - только старые, 26ые.Думаю ситуация понятна.
Итак, каков выбор? Что установить?
Ubuntu
По слухам, версия 8.10 - не лучшее, что есть на свете. А 9.04 выходит только через неделю. Да ещё, кто её знает? Тоже стоит подождать, пока не потестят.
Fedora
Ситуация похожа. Скоро выйдет свежая 11ка, которую начнут активно патчить. Сейчас есть 10ка, но у меня не очень приятное впечатление от федоры в целом
Gentoo
Тут на старость сослаться не получится. И ядро найдётся, и всё свежайшее. Да ещё и удобный portage. Только вот, в больших масштабах такое использовать не нужно. Это, всё же, source-based.
В общем, я в сомненьях

17 июня 2008 г.

Полноценный репозиторий из загруженных пакетов

Это будет не просто архив всех скачанных пакетов. С помощью Apache пакеты из такого репозитория сможет скачать кто угодно и откуда угодно (зная ваш IP, естественно). Это немного подправленная версия мануала:
http://forum.ubuntu.ru/index.php?topic=28366.msg197361

Установка Апача тут не рассмотрена. Этот процесс описан уже не единожды и очень популярно. Итак, чтобы не копировать никуда наши пакетики, скачанные в /var/cache/apt/archives, сделаем симлинк


ln -s /var/cache/apt/archives /var/www/repo/packages

Скриптов два. Оба лежат прямо в /var/www/repo/
Один - создает списки пакетов (полную и гзипованую версию):

Код:
#!/bin/bash
dpkg-scanpackages . /dev/null > Packages
cat Packages | gzip -9c > Packages.gz

Если нету своего ключа для подписи - лезем на http://letras.ru/2008/06/gpg-crossplatform-encryption/ и вчитываемся поглубже.
Второй скрипт - формирует файл Release (необходим для создания подписанных репозиториев) и собственно подписывает:

Код:
#!/bin/bash

cat > Release <<END
Archive: hardy
Version: 8.04
Origin: Ubuntu
Label: Simba's local Ubuntu Hardy Heron repository
Architecture: i386
MD5Sum:
 END

md5sum=$(md5sum Packages | cut -d ' ' -f1)
sizeinbytes=$(ls -l Packages | cut -d ' ' -f5)

printf " "$md5sum" %16d Packages\n" $sizeinbytes >> Release


md5sum=$(md5sum Packages.gz | cut -d ' ' -f1)
sizeinbytes=$(ls -l Packages.gz | cut -d ' ' -f5)

printf " "$md5sum" %16d Packages.gz\n" $sizeinbytes >> Release

gpg -bao Release.gpg Release

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

Еще нужно экспортировать публичный ключ:

Код:
gpg --export -a "Иван Васильевич" > /var/www/repo/public.key

Иван Васильевич - это имя того, чьим ключом подписывали.
Примечание[boh]: у меня вылазила ошибка, что у рута нет прав доступа к файлу public.key Поэтому, я сначала вывел

gpg --export -a "Иван Васильевич" 

в консоль, а вывод скопировал в соответствующий файл, предварительно создав его.
Теперь про %3a... Из-за этой комбинации в названиях многих пакетов, возникают ошибки. Этого легко избежать. У меня папке /var/www/repo/packages/ лежит файлик .htaccess следующего содержания:

Код:
RewriteEngine On
RewriteRule ^(.*?):(.*)$ $1\%253a$2

Дабы это заработало, надо включить модуль rewrite для апача:

Код:
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load

и разрешить использовать его в конфиге (например в /etc/apache2/apache2.conf):

Код:
<Directory /var/www/repo/>
AllowOverride All
</Directory>

Теперя этот репозиторий можно использовать следующим образом.
Импортируем ключ, которым подписывали:

Код:
wget -q http://<IP или имя компа>/repo/public.key -O- | sudo apt-key add -

А это в sources.list:

Код:
deb http://<IP или имя компа>/repo ./

Использованные источники:
http://forum.ubuntu.ru/index.php?topic=8073