Здравствуйте!
Есть Debian 7.4, в его репозиториях находится пакет squid3 версии 3.1.20. Но мне хочется собрать squid3 версии 3.3.12 ещё и с опциями --enable-ssl и --enable-ssl-crtd да потом всё это собрать в deb-пакет, для дальнейшей установки на аналогичные debian-сервера.
Пытаюсь собрать deb-пакет в первый раз, оттого видимо и проблемы.Сразу опишу ошибку, которая возникает в процессе построения пакета.
Чтобы не захламлять топик подробности, как я его собирал опишу в следующем сообщении, если Вы их потребуете.
root@debian-vm:/usr/src/squid3-3.3.12#debuild -us -uc -b
....
dh_install -psquid3-common --sourcedir=/usr/src/squid3-3.3.12/debian/tmp
cp: cannot stat `/usr/src/squid3-3.3.12/debian/tmp/usr/share/squid3/mime.conf': No such file or directory
dh_install: cp -a /usr/src/squid3-3.3.12/debian/tmp/usr/share/squid3/mime.conf debian/squid3-common//usr/share/squid3/ returned exit code 1
make: *** [binary-install/squid3-common] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
debuild: fatal error at line 1357:
dpkg-buildpackage -rfakeroot -D -us -uc -b failedПри этом:
root@debian-vm:/usr/src/squid3-3.3.12# find . -name mime.conf
/usr/src/squid3-3.3.12/debian/tmp/etc/squid3/mime.conf
Т.е. сам файл есть, но почему-то располагается не в той папке.
В исходниках файла mime.conf нет, но есть /usr/src/squid3-3.3.12/src/mime.conf.default
Выходит, что mime.conf создается из файла mime.conf.default и потом помещается не в ту папку. Так чтоль?!В общем что сделать, чтобы пакет таки собрался :)
Всё же решил сразу описать процесс создания пакета, может я изначально где-то ошибаюсь.Строим зависимости для текущей версии пакета (из репозиториев):
aptitude update && apt-get build-dep squid3Качаем исходники текущей версии пакета (из репозиториев):
apt-get source squid3Качаем исходники новой версии (с оф. сайта):
wget http://www.squid-cache.org/Versions/v3/3.3/squid-3.3.12.tar.gzКопируем папку debian из текущей версии исходников в новую версию:
cp squid3-3.1.20/debian squid-3.3.12 -RПроверяем аргументы компиляции в debian/rules. Я исправлял аргументы:
(текущая версия) -> (новая версия)
--enable-auth="basic,digest,ntlm,negotiate" -> --enable-auth
+ --enable-ssl
+ --enable-ssl-crtdИсправляем debian\changelog (можно с помощью vi, можно зайти в папку squid3-3.3.12 и запустить dch)
Билдим пакет. Сработало 2 варианта:
debuild -us -uc -bА вот после этого появляется ошибка, которая описана выше.
> Всё же решил сразу описать процесс создания пакета, может я изначально где-то
> ошибаюсь.
> Строим зависимости для текущей версии пакета (из репозиториев):
> aptitude update && apt-get build-dep squid3Всё правильно, кроме установки зависимостей сборки в рабочую систему: собирать надо в chroot-e https://www.opennet.ru/base/sys/debian_backport.txt.html <<-статья!
> А вот после этого появляется ошибка, которая описана выше.
Ну, сборка у апстрима посменялась, не те файлы и/или не там в результате make install. Скопировал debian/ ? Теперь переходи к исправлению.
Вариант, пересобирать 3.3.8-1.1 из sid-а и прависть скрипты сборки под stable. Можно ещё сравнить 2 директории debian/ (3.1/.stable и 3.3/unstable) и брать нужные куски d/rules в свою сборку.
Также рекомендуется использовать dch -i [а, да, в статье есть уже -- читай!] и у новой записи ставить "бэк-порт" версию, вроде, 3.3.8-1.2 -> 3.3.8-1.1~back0
>[оверквотинг удален]
> debuild: fatal error at line 1357:
> dpkg-buildpackage -rfakeroot -D -us -uc -b failed
> При этом:
> root@debian-vm:/usr/src/squid3-3.3.12# find . -name mime.conf
> /usr/src/squid3-3.3.12/debian/tmp/etc/squid3/mime.conf
> Т.е. сам файл есть, но почему-то располагается не в той папке.
> В исходниках файла mime.conf нет, но есть /usr/src/squid3-3.3.12/src/mime.conf.default
> Выходит, что mime.conf создается из файла mime.conf.default и потом помещается не в
> ту папку. Так чтоль?!
> В общем что сделать, чтобы пакет таки собрался :)Мне удалось это пофиксить поменяв путь к файлу в debian/squid3-common.install на etc/squid3/mime.conf