Yellow Leaf

Yellow Leaf


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


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


Последние комментарии к новостям и статьям
Re: Использование нескольких интернет-каналов для повышения надёжности соединения
Re: Доступн для загрузки пакет с играми для Ubuntu Linux - GamePack 9.10.2
Re: Вышла новая версия библиотеки QRemoteSignal
Re: Организация трансляции потока с веб-камеры с помощью ffserver
Re: Общий принтер в локальной сети на Linux
Ещё комментарии >>>


 


Новые файлы
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
Не получаеться поднять VPN сервер на Ubuntu server 10.04
Нужен логопед, срочно
Словить процесс
проблемы с разделом жесткого диска


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


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


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

4736745


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


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


 

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

«Жёлтый Лист» - 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 (*)

Цитата:

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


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

Цитата:

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


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

[Ответить]


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

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


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

рублей


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


© 2006-2010 Вадим Калинников aka MooSE
Сайт размещён на VPS от Агава