Pull to refresh

Comments 20

спасибо. где вы были раньше?) сколько я намучался со сборкой пакетов по кривым мануалам
я бы не сказал что этот мануал прямой, желательно использовать для сборки dpkg, но в простых случаях прямое создание нужного архива тоже имеет право на существование.
В идеале все-таки debuild или pbuilder. Но, имхо, такой подход имеет право на сущестование, т.к. все-таки полезно знать, как оно внутри устроено. А то не все наверно и знают, что rpm это cpio, deb — ar и т.п.
dpkg-deb кажется роднее.

Знание внутреннего устройство полезно, но соборка «руками» — потенциальный сюрприз в самый неподходящий момент, когда, например, решат заменить ar на какой-нибудь 7zip. В данной ситуации, конечно, это маловероятно, но все равно.

«по кривым мануалам» — насколько я знаю, есть один мануал (оригинальная документация) — Debian policy (который тут даже не упоминается), и он вполне нормальный.

«упс… ошибка… в системе не установлены зависимости» — уж можно было и зеркало поднять свое.

«Проверяем на вшивость» — есть пакет lintian, который действительно проверяет на вшивость.
по-моему Вы ошиблись топиком… лучше сначала читать, а потом постить.

если Debian изменит архиватор или перейдет на ебилды — в любом случае придется все переделывать

мануалы здесь не обсуждаются ВООБЩЕ! И это тоже НЕ МАНУАЛ по сборке пакетов. Это быстрый и простой вариант сборки пакета скриптов из соседнего топика, и небольшой экскурс вглубь, не более того.

у меня есть и свое зеркало и даже миррор официального, но речь идет не об этом. Я всего-лишь показал что этот пакет не тупо пишет «ОК, я установлен» а потом сыпет error: zenity no such file or directory.

lintian — инструмент хороший, но не наглядный «для простых смертных» и в данном контексте совсем не к месту указано. Мне не надо было в данном контексте показать «имя мейнтейнера написано не в полном варианте», цель была: в системе нету пакета, который мне нужен.
Прошу прощения, просто я ждал, что это нечто «вглубь», а не еще одно «на коленке».

Рад, что у Вас есть и свое зеркало и т.п. Не удивили. Но, ИМХО, об этом было бы полезно рассказать.

«lintian — инструмент хороший, но не наглядный» — еще раз повторюсь, я надеялся, что Вы рассказываете как собрать нормальный полноценный deb пакет своими руками, который бы удовлетворял, в том числе, политике оформления deb пакетов, а оказалось, что цель — лишь бы оно работало. Жаль, что мне это стало понятно лишь после Ваших коментариев, а не из Вашей статьи. Иначе бы, пожалуй, воздержался от комментариев.
Для «как собрать нормальный, полноценный deb пакет своими руками» как раз таки есть официальное руководство =) на хабре, помню, несколько его пересказов было уже. Но я то для личных скриптов своих, которым не нужен ни постинсталл, ни мейк, ни что бы то ни было еще. В общем-то по большей части я эту статью и не планировал писать, но выдался рядом топик, в котором «параллельно» заскриншотил процесс, ну а далее решил, а почему б и не описать тем более что быстрый способ доступа к содержимому пакета бывает иногда полезен? Хуже от этого никому не станет ИМХО, такой пакет легитимен, менеджер про него и его файлы знает, это ж не пресловутый make install.
Теперь все вообще стало прозрачно и понятно. Спасибо за разъяснения! :)
Извини, что отнял время =)
а пояему зависимости не резолвятся автоматом?
потому что это был dpkg, а не apt.
Быстрый и правильный способ создания пакета — с помощью dh-make и CDBS/debhelper.
(apt-get install dh-make, затем в директории с содержимым — dh-make).

А описанный выше — долгий и неправильный.
а разве в этом случае нам не нужны мейкфайлы и ориджин пакеты исходников?
В пакетах обычно есть два мейкфайла — один управляет сборкой программы, второй — debian/rules — определяет действия по сборке пакета. Перый — опционален, второй — можно оставить дефолтным.

Да, dh_make нужно вызывать с опцией --createorig, тогда и orig.tar.gz будет сделан.
нас интересует все тот же control, распакуем архив control.tar.gz, отредактируем зависимости (список Depends:)

В таких случаях стоит попробовать поставить пакет с помощью aptitude. Aptitude характерен тем, что в случае конфликтов не тупо вываливается, а предлагает несколько компромиссов, среди них как правило можно выбрать адекватный вариант. А править пакеты вручную — последнее дело.
Вместо возни с упаковками архивов можно собрать всё одной командой
dpkg -b PACKAGEDIR packagename-version.deb
А есть что-нибудь гуишное для всего этого? Что-то не нашел чего-либо приличного.
Жесть, но в определённом смысле полезно для обучения.

Гораздо проще именно для скриптов использовать dpkg -b (см. выше).

И рекомендую fakeroot вместо sudo для сборки.

Ужасающий до дрожи способ сборки пакета…
Я использую dh_make и debuild все. Это куда проще чем это…
Only those users with full accounts are able to leave comments. Log in, please.

Articles