Пересборка пакетов для Ubuntu (Debian)

12:03

Думаю, практически все понимают преимущества пакетных менеджеров над установкой при помощи ./configure && make && make install.

На примере недавно появившегося патча для Pidgin я хочу показать, как легко пересобирать пакеты в deb-based дистрибутивах.

  • Подготовка. Нам понадобятся следующие пакты: devscripts build-essential fakeroot.
    sudo apt-get install devscripts build-essential fakeroot
  • Скачиваем исходники. Для этого должны быть подключены соответствующие репозитории. Нам нужен libpurple0, т.к. патч относится к этой библиотеке. На самом же деле libpurple, pidgin и pidgin-data имеют общий исходник, там что мы можем написать как
    apt-get source libpurple0
    так и
    apt-get source pidgin
    Обратите внимание, что apt-get source надо делать не из под sudo. Исходники скачиваются в текущую директорию.
  • Патчим.
    wget http://launchpadlibrarian.net/15741199/pidgin-2.4.2-icq.patch
    cd pidgin-2.4.1
    patch -p0 < ../pidgin-2.4.2-icq.patch
  • Устанавливаем зависимости, необходимые для сборки:
    sudo apt-get build-dep libpurple0
  • Пересобираем пакет (из той же директории)
    debuild -us -uc
  • Получившийся пакет устанавливаем:
    cd ..
    sudo dpkg -i libpurple0_2.4.1-1ubuntu2_amd64.deb

    Если у вас i386-дистрибутив, то пакет будет называться libpurple0_2.4.1-1ubuntu2_i386.deb.

После этой операции pidgin (после перезагрузки) начинает подключаться к ICQ.

P.S. Настало время переходить на Jabber :)

UPD: Для убунты, вроде бы, уже есть пакет на ppa. Тем не менее, моей главной задачей было показать, как пересобирать пакеты.

(c)