Yellow Leaf

Yellow Leaf


Поиск по сайту


Вход
Правила портала
Регистрация
Забыли пароль?
О команде проекта
Справка по оформлению постов


Последние комментарии к новостям и статьям
Re: Замена openssh на lsh в Debian/Ubuntu
Re: Настройка PPTP-сервера в Debian/Ubuntu
Re: Установка и настройка OpenVPN-сервера
Re: Реалистичный взгляд на Ubuntu Linux на десктопе
Re: Шлюз в интернет и PPTP-сервер для небольшого офиса
Ещё комментарии >>>


Новые файлы
Debian: cue2tracks_0.2.11_all (Дополнение для CUE 2 Tracks v0.2.11)
Gentoo: cue2tracks-0.2.11 (Дополнение для CUE 2 Tracks v0.2.11)
CUE 2 Tracks v0.2.11
Jabber-Shell 20090303
EasySoft AutoRun 0.4.1


Новое на форуме
подключение монитора к ноутбуку
Движок сайта. версия 2.0
naiti destributiv edubuntu 8.10 DVD i386
помощь новичку
как собрать rpm-пакет в gentoo


Проекты
Jabber-Shell
Qmmp
QStarDict
PHPSAAdmin


 
   


Друзья сайта
 Open Kazan - Казанское сообщество пользователей OpenSource 


Посетителей с 08.09.2006

4328485


Внешний вид портала


RSS-Ленты
Новости
Файлы
LUG


 

   
  Яндекс цитирования  

«Жёлтый Лист» - cайт о мире юникс
Новости Форум Статьи Файлы Пользователи

Пересборка deb-пакета в Debian/Ubuntu

MooSE 2010-01-24 13:59:42

Очень часто у пользователей Debian, Ubuntu и других основанных на Debian дистрибутивов возникает необходимость пересобрать .deb-пакет какой-то программы из исходных текстов. Ниже будет показано как это можно сделать.

Немного конкретизируем задачу: автор этих строк использует дистрибутив Ubuntu Karmic (9.10), в репозитории которого есть Jabber-клиент Gajim версии 0.12.5, однако появилось желание использовать Gajim версии 0.13. Готового пакета для Karmic найдено не было, однако для Ubuntu Lucid (10.04) Alpha этот пакет уже был. Соответственно напрашивалось два варианта решения поставленной задачи:

  1. Подключить репозиторий Lucid, поставить Gajim из него, отключить репозиторий Lucid.
  2. Бэкпортировать (перенести пакет из более новой версии дистриубтива в более старую) пакет из Lucid в Karmic.

Автор решил использовать второй способ. Приступаем к решению этой задачи. Для начала нужно зайти на страницу пакета на http://packages.ubuntu.com и скачать архивы с исходными текстами. Для Gajim это страница http://packages.ubuntu.com/gajim а архивы (на момент написания статьи):

  • gajim_0.13-0ubuntu2.diff.gz
  • gajim_0.13.orig.tar.gz
  • gajim_0.13-0ubuntu2.dsc

Скачав эти файлы установим инструменты, необходимые для пересборки пакетов:

apt-get install build-essential dpkg-dev fakeroot

Теперь нужно перейти в ту директорию, куда мы скачали архивы с исходными текстами и распаковать эти архивы командой:

dpkg-source -x gajim_0.13-0ubuntu2.dsc

После распаковки будет создана директория с именем вида "имя_пакета-версия_пакета", в нашем случае имя будет "gajim-0.13", переходим в неё и пытаемся запустить сборку:

cd gajim-0.13 && dpkg-buildpackage -rfakeroot -b

Если будет выдано сообщение о не хватке каких-то пакетов — их нужно установить. Автору этих строк не хватило пакетов: python-dev, python-gtk2-dev, libxss-dev, libgtkspell-dev и dpatch. Список пакетов зависит от уже установленных пакетов и пересобираемой программы. Установим недостающие пакеты:

apt-get install python-dev python-gtk2-dev libxss-dev libgtkspell-dev dpatch

После успешной установки зависимостей запустим сборку командой:

dpkg-buildpackage -rfakeroot -b

Если и в этом случае сборка закончится неудачей — надо тщательно проанализировать сообщения об ошибке. Возможно придётся предварительно бэкпортировать более новые версии зависимостей и только потом собирать пакет.

У автора всё прошло гладко и был создан пакет "gajim_0.13-0ubuntu2_amd64.deb", расположенный в одной директории с архивами с исходными текстами. Теперь его можно установить командой:

sudo dpkg -i ../gajim_0.13-0ubuntu2_amd64.deb

Теперь можно пользоваться более новой версией любимой программы:) Остальные программы и библиотеки бэкпортируются аналогичным образом.

На этом всё. Приятной работы!

Ключевые слова: dpkg-buildpackage dpkg-source build-essential dpkg-dev fakeroot

Версия для печати


Анонимный посетитель 2010-01-24 18:04:56 (*)

> Если будет выдано сообщение о не хватке каких-то пакетов — их нужно установить.
Зачем? Есть штатные средства - apt-get build-dep gajim


MooSE 2010-01-24 20:28:06 (*)

Цитата:

Зачем? Есть штатные средства - apt-get build-dep gajim


Это всё клёво, но это работает в рамках текущего среза. Если ты ставишь версию новее чем в твоём репозитории - зависимости могут "поплыть".


morbo 2010-01-25 07:05:46 (*)

>После успешной установки можно зависимостей запустим сборку командой:

Слово "можно" - лишнее?

>Это всё клёво, но это работает в рамках текущего среза. Если ты ставишь версию новее чем в твоём репозитории - зависимости могут "поплыть".

Это всё клёво, но таки ставить зависимости лучше сначала с помощью apt-get build-dep gajim. Если всё нормально, то во-первых версия новее может скомпилироваться с зависимостями из текущего репозитория - тогда ничего дополнительно ни ставить ни бэкпортировать не придётся. А во-вторых, если она не скомпилируется, то хотя бы меньше придётся ставить и бэкпортировать.

Есть ещё такая вещь - atp-get source -b gajim, но это не бэкпортирование, а просто установка из исходников. Смысла в ней мало. Разве что скомпилировать пакет с более свежими установленными в системе зависимостями.

В целом по статье могу сказать, что это общеизвестный минимум.


MooSE 2010-01-25 09:13:40 (*)

Цитата:

Слово "можно" - лишнее?


Поправил. Спасибо.

Цитата:

В целом по статье могу сказать, что это общеизвестный минимум.


Не сомневаюсь. Вообще этот сайтик для меня скорее записная книжка, чтобы потом долго не искать.... :)


Содержание*:
8 + 12 =

При копировании материалов с этого сайта ссылка на источник обязательна! Уважайте труд авторов!


Если материалы с этого сайта оказались вам полезны - Вы можете поддержать этот проект переведя на его счёт любую сумму, какую сочтёте нужным.

рублей


Обратная связь


© 2006-2010 Вадим Калинников aka MooSE