Комментарии 45
А вот интересно, вы же в пакете ничего кроме changelog не поменяли. Может быть с таким же успехом просто поставился бы пакет из Interpid?
А вы бы попробовали сначала :-)
Попробовал. Просто так не встало, вашим способом поставилось. Вопрос — какая же из команд чудесным образом модифицирует зависимости пакета?
И вообще, откуда берутся ограничения версий библиотек, если они в control не прописаны? В собранном-то пакете они уже есть и, видимо, зависят от того в какой системе пакет собирался. Не разъясните? :)
P.S. Спасибо, кстати, с наводку. Похоже, guake мне нравится больше, чем yakuake.
И вообще, откуда берутся ограничения версий библиотек, если они в control не прописаны? В собранном-то пакете они уже есть и, видимо, зависят от того в какой системе пакет собирался. Не разъясните? :)
P.S. Спасибо, кстати, с наводку. Похоже, guake мне нравится больше, чем yakuake.
dpkg-gencontrol, который запускается dpkg-buildpackage
По сути dpkg-gencontrol берет из кэша apt версии пакетов, которые перечислены в control-файле (если, конечно, там уже не указана версия) и проставляет их. Поскольку эта инструкция предназначена для реальной машины с конкретной версией, то будут проставлены правильные версии.
Если нужно создать пакет под другую версию убунту (т.е. скорее всего так под Interpid guake собирался), то пользуются pbuilder-ом или chroot-ом которые создают окружение нужное.
Например,
sudo pbuilder create --distribution <ubuntu_version> \
--othermirror «deb archive.ubuntu.com/ubuntu <ubuntu_version> main restricted universe multiverse»
Ну и там уже дальше снова сработает dpkg-gencontrol, который проставит версии
Если нужно создать пакет под другую версию убунту (т.е. скорее всего так под Interpid guake собирался), то пользуются pbuilder-ом или chroot-ом которые создают окружение нужное.
Например,
sudo pbuilder create --distribution <ubuntu_version> \
--othermirror «deb archive.ubuntu.com/ubuntu <ubuntu_version> main restricted universe multiverse»
Ну и там уже дальше снова сработает dpkg-gencontrol, который проставит версии
Никакого чудо-модифицирования не происходит. Просто бинарные пакеты зависят не только от библиотек, но и от их конкретных версий. В случае с пакетом для Interpid наверняка есть привязка к более новой libc, хотя исходники и со старой соберутся.
это магическим образом происходит при сборке…
Зависит от зависимостей. Судя по всему он встал бы и так :)))
konstantin@konstantin-desktop:/tmp/dev/guake$ wget http://mirrors.kernel.org/ubuntu/pool/universe/g/guake/guake_0.3.1-3_i386.deb
--17:02:49-- http://mirrors.kernel.org/ubuntu/pool/universe/g/guake/guake_0.3.1-3_i386.deb
=> `guake_0.3.1-3_i386.deb'
Преобразование адреса mirrors.kernel.org... 204.152.191.39, 204.152.191.7
Устанавливается соединение с mirrors.kernel.org|204.152.191.39|:80... соединились.
Запрос HTTP послан, ожидание ответа... 200 OK
Длина: 216 338 (211K) [text/plain]
100%[===============================>] 216 338 4.51K/s ETA 00:00
17:03:38 (5.63 KB/s) - `guake_0.3.1-3_i386.deb' сохранён [216338/216338]
Пробуем ставить
konstantin@konstantin-desktop:/tmp/dev/guake$ sudo dpkg -i guake_0.3.1-3_i386.deb
Выбор ранее не выбранного пакета guake.
(Чтение базы данных... на данный момент установлено 236218 файлов и каталогов.)
Распаковывается пакет guake (из файла guake_0.3.1-3_i386.deb)...
dpkg: зависимости пакетов не позволяют настроить пакет guake:
guake зависит от libglib2.0-0 (>= 2.16.0), однако:
Версия libglib2.0-0 в системе 2.14.1-1ubuntu1.
guake зависит от libgtk2.0-0 (>= 2.13.6), однако:
Версия libgtk2.0-0 в системе 2.12.0-1ubuntu3.
guake зависит от libpango1.0-0 (>= 1.21.3), однако:
Версия libpango1.0-0 в системе 1.18.3-0ubuntu1.
guake зависит от python-central (>= 0.6.7), однако:
Версия python-central в системе 0.5.15ubuntu2.
dpkg: не удалось обработать параметр guake (--install):
проблемы зависимостей -- оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
guake
Упс…
А вот теперь пробуем ставить бэкпортированный пакет
konstantin@konstantin-desktop:/tmp/dev/guake$ sudo dpkg -i guake_0.3.1-5ubuntu1_i386.deb
[sudo] password for konstantin:
(Чтение базы данных... на данный момент установлено 236262 файлов и каталогов.)
Подготовка к замене пакета guake 0.3.1-3 (используется файл guake_0.3.1-5ubuntu1_i386.deb)...
Распаковывается замена для пакета guake ...
Настраивается пакет guake (0.3.1-5ubuntu1) ...
konstantin@konstantin-desktop:/tmp/dev/guake$
Нужно ли продолжение?
Нужно!
Жду с нетерпением!
Было бы неплохо описать как собрать в пакет свои программы\наборы скриптов, я когда то собирал под дебиан, но это было давно, уже забыл, хотя это очень полезно при разворачивании нескольких однотипных серверов, вес конфиги в deb пакете + pre-install и post-install… если кому нибуть интересно, то могу выделить несколько часиков и написать подробную статейку как это делать…
Дабы не засорять систему и для чистоты сборки, лучше уж pbuilder использовать.
я бы порекомендовал обратиться к первоисточникам — документации по сборке пакетов в debian.
Написана уже очень давно — и избавляет от необходимости изобретать велосипеды.
Написана уже очень давно — и избавляет от необходимости изобретать велосипеды.
Да собственно это ни разу не изобретение велосипедов. Вы почитайте maintaners guide
А не проще ли использовать ./configure && make && checkinstall?
Ну правда придется дополнительно установить сам checkinstall, но это не составит большого труда, ипо dtb-пакет найти несложно.
Спасибо за статью.
Кстати я слышал что Guake немного тормознутый. Поставил себе yeahconsole вроде всем доволен. Если интересно — сравните :)
Кстати я слышал что Guake немного тормознутый. Поставил себе yeahconsole вроде всем доволен. Если интересно — сравните :)
В пункте 3: РаспАОвываем командой
режет глаз «репозитАрий»
Спасибки. Продолжение нужно. А как сделать deb пакет, если исходники не make-ом компилируются, а чем-нибудь другим, как например у linuxdcpp?
Пример rules для linuxdcpp можно посмотреть скачать сорцы из репо: apt-get source linuxdcpp. Так же довольно просто можно собирать готовые бинарники в пакет maximum-value.blogspot.com/2008/09/deb_17.html
ждем статью про cpack :)
Огромное спасибо за статью, мне как раз было очень нужно — и именно по поводу бекпортирования!
Только вопрос- может лучше писать с расчетом, что пакеты публикуются сразу в личном PPA?
Только вопрос- может лучше писать с расчетом, что пакеты публикуются сразу в личном PPA?
Выполняем dhc -i
Опечатка, надо dch -i
а мне больше stjerm нравиться, маленькая, простая и легко настраиваемая консоль
В общем верно, за исключением названия: собираем deb-пакет лучше заменить на что-нибудь типа «собираем backport», т.к. здесь мы его только build-им, а всё остальное уже сделано.
И ещё один момент — зависимости можно притянуть с помощью apt-get если соответствующий репозиторий подключен: sudo apt-get build-dep guake
И ещё один момент — зависимости можно притянуть с помощью apt-get если соответствующий репозиторий подключен: sudo apt-get build-dep guake
НЛО прилетело и опубликовало эту надпись здесь
ткните пожалуйста носом, где покурить основательный мануал по сборке/разборке deb пакетов.
хочется собрать из srpm в deb, перенеся все патчи, ну и changelog
хочется собрать из srpm в deb, перенеся все патчи, ну и changelog
> Видим, что для сборки требуются autoconf, libgtk2.0-dev, intltool, python-gtk2-dev (после завершения мы можем их удалить, дабы не засорять систему). Устанавливаем их через apt и снова пытаемся собрать пакет.
Надеюсь, через apt-get build-dep имя_пакета? :)
Надеюсь, через apt-get build-dep имя_пакета? :)
Благодарю! Очень помогло: установил новый Umbrello отсюда: http://archive.neon.kde.org/dev/stable/pool/main/u/umbrello/
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Собираем deb-пакет. Часть 1