Как стать автором
Обновить

Комментарии 45

А вот интересно, вы же в пакете ничего кроме changelog не поменяли. Может быть с таким же успехом просто поставился бы пакет из Interpid?
А вы бы попробовали сначала :-)
Попробовал. Просто так не встало, вашим способом поставилось. Вопрос — какая же из команд чудесным образом модифицирует зависимости пакета?
И вообще, откуда берутся ограничения версий библиотек, если они в 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 наверняка есть привязка к более новой 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 использовать.
Собственно это способ «по-быстрому». Я в следующий раз собственно и собирался рассказать про pbuilder
тогда надо :)
я бы порекомендовал обратиться к первоисточникам — документации по сборке пакетов в debian.
Написана уже очень давно — и избавляет от необходимости изобретать велосипеды.
Да собственно это ни разу не изобретение велосипедов. Вы почитайте maintaners guide
ну раз обратились к источникам, то почитайте документацию к apt-src, это раз.
И еще еще замечательная команда — debuild binary
А для удовлетворения зависимостей можно запустить /usr/lib/pbuilder/pbuilder-satisfydepends — и ничего ручками делать уже и не придется
А не проще ли использовать ./configure && make && checkinstall?
Ну правда придется дополнительно установить сам checkinstall, но это не составит большого труда, ипо dtb-пакет найти несложно.
Тем что в таком случае зависимости пакета удовлетворяются и помечаются как установленные автоматически и при удалении пакета, если никто больше не использует эти зависимости (библиотеки) в первую очередь, они будут автоматически удалены.
Спасибо за статью.
Кстати я слышал что Guake немного тормознутый. Поставил себе yeahconsole вроде всем доволен. Если интересно — сравните :)
В пункте 3: РаспАОвываем командой
Спасибо. Исправил.
режет глаз «репозитАрий»
А черт его знает как правильно. Просто есть слово «депозитарий».
Кстати, вот так repository переводится в словаре Lingvo:
Спасибки. Продолжение нужно. А как сделать deb пакет, если исходники не make-ом компилируются, а чем-нибудь другим, как например у linuxdcpp?
Пример rules для linuxdcpp можно посмотреть скачать сорцы из репо: apt-get source linuxdcpp. Так же довольно просто можно собирать готовые бинарники в пакет maximum-value.blogspot.com/2008/09/deb_17.html
ждем статью про cpack :)
Огромное спасибо за статью, мне как раз было очень нужно — и именно по поводу бекпортирования!
Только вопрос- может лучше писать с расчетом, что пакеты публикуются сразу в личном PPA?
Выполняем dhc -i

Опечатка, надо dch -i

а мне больше stjerm нравиться, маленькая, простая и легко настраиваемая консоль
В общем верно, за исключением названия: собираем deb-пакет лучше заменить на что-нибудь типа «собираем backport», т.к. здесь мы его только build-им, а всё остальное уже сделано.
И ещё один момент — зависимости можно притянуть с помощью apt-get если соответствующий репозиторий подключен: sudo apt-get build-dep guake
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
ткните пожалуйста носом, где покурить основательный мануал по сборке/разборке deb пакетов.
хочется собрать из srpm в deb, перенеся все патчи, ну и changelog
> Видим, что для сборки требуются autoconf, libgtk2.0-dev, intltool, python-gtk2-dev (после завершения мы можем их удалить, дабы не засорять систему). Устанавливаем их через apt и снова пытаемся собрать пакет.

Надеюсь, через apt-get build-dep имя_пакета? :)
Благодарю! Очень помогло: установил новый Umbrello отсюда: http://archive.neon.kde.org/dev/stable/pool/main/u/umbrello/
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.