26 дек. 2009 г.

сборка deb-пакета с помощью checkinstall

На днях отрелизился (наконец-то!) свежий Midnight Commander с многочисленными вкусностями (changelog). Однако на сегодняшний день в deb-репозиториях наличествует только -pre3 версия, в бинарном и src-виде, поэтому единственный способ получить "свежачок" - собрать самому. Ввиду отсутствия "репозиторных сорцев" собрать пакет описанным ранее способом не выйдет. Поэтому берем "сорец", обычным образом распаковываем, конфигурим, собираем. А далее финт - вместо make install устанавливаем замечательную утилитку checkinstall и вбиваем в консоль checkinstall -D.  Ответив на пару вопросов, мы получим а) установленный mc; б)  deb-пакет, который можно ставить на других машинах без заморочек со сборкой.

7 комментариев:

  1. Спасибо за новость... Есть что добавить немного, собрал пакет в Debian, но только после установки ftp://ftp.gtk.org/pub/glib/2.22/ вот этой штуки :), правда в редми есть про неё, и желательно менять путь установки при конфигурировании ./configure --prefix=/usr, а вот с самбой у мя не захотел собираться deb пакет, он сконфигурировался, но не установился и не собрался, а без самбы, как и родной нормально.

    ОтветитьУдалить
  2. Ради самбы все и писалось, перефразируя известную строчку ;)
    Насчет glibc замечание верное, но очевидно, что в моем случае необходимые dev-паеты были когда то установлены, и поэтому mc-шный ./configure ничего по этому поводу не сказал.
    А не собираться пакет может много из-за чего, тут нужно лог сборки смотреть, может, и увидится какая то бяка, подсказывающая, чего ему не хватает.

    ОтветитьУдалить
  3. Таки я это сделал. Установка МС из тестового репозитория, последняя версия и с поддержкой самба.
    В /etc/apt/sources.list добавляем строку вида
    deb-src http://ftp.de.debian.org/debian/ squeeze main non-free contrib
    это подключает тестовый репозиторий с исходниками от Дебиан.
    Не забываем
    # apt-get update
    Дальше по мотивам автора этого блога... за что ему спасибо, наставил на путь истинный :) (но есть моментеГ один, потому повторюсь немного)...
    # wajig source mc
    правим
    # vim ./mc-4.7.0-pre1/debian/rules (отличие от описанной оригинальной статьи как раз в имени файла, который нужно поправить перед сборкой).
    Вот эту запись приводим к такому же виду

    DEB_CONFIGURE_EXTRA_FLAGS := --with-glib2 --without-ext2undel --enable-charset --with-samba --with-screen=slang

    изначально --with-samba - будет - --without-samba
    # wajig build mc
    # dpkg -i *.deb

    ОтветитьУдалить
  4. Принцип TIMTOWDI никто, конечно же, не отменял ;) В debian/rules описываются все параметры для сборки, включая и переменную DEB_CONFIGURE_EXTRA_FLAGS, однако ее значение в данном файле не задается. Для така называемого "тонкого тюнинга", как я понимаю, архитекторы деба предлагают именно debian/rocks, откуда в rules утаскивааются переопределенные значения. Цель - подсунуть ./configure нужные нам параметры - достигается, а об религиозной чистоте того или иного метода я думаю говорить не стоит, не настолько я бородат и свитерат для этого ;)
    Да, и когда готовилась эта статья, в sid был все таки pre3, а не pre1, как, окаазывается, обстоят дела в squeeze. И хоть все равно не самая располедняя (релизная то есть) версия, но все равно приятно, что свежее -Р
    Так или иначе, но с правильной и "собственной" сборкой миднайта - поздравляю ;) Как и со всеми праздниками!

    ОтветитьУдалить
  5. Трудно быть богом, не так ли? ;)

    ОтветитьУдалить
  6. Не просто, однако... Интересно то, что файл debian/rocks я в тех исходниках не нашёл, потому и написал, такого файла там просто не было, уж не знаю почему... Кстати, надоело собирать новые версии программ, перешёл в Новый Год на новый тестовый Debian. Пока доволен.

    ОтветитьУдалить
  7. а интересно однако - сегодня, добравшись до домашнего компа, обновил сорцы mc, и увидел, что 1) для sid-а доступно mc-4.7.0-1, то есть уже с деб-патчами сорцы релиза и 2) в mc-4.7.0/debian/ действительно нет файла rocks,а переменная DEB_CONFIGURE_EXTRA_FLAGS находится прямо в rules, в шестойс строчке, да и сам rules стал как то проще и короче на первый взгляд. Что, соответственно, не может не радоать )

    ОтветитьУдалить