URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 40568
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Перекомпиляция пакета в Debian и Ubuntu"

Отправлено auto_tips , 11-Мрт-08 09:30 
Перекомпиляция пакета может понадобиться например, для упаковки более новой версии программы,
наложения определенного патча или пересборки с особенными опциями.

Устанавливаем программы, необходимые для сборки пакетов:
  apt-get install devscripts
  apt-get install build-essential

В /etc/apt/sources.list раскомментируем строки с deb-src для нужного репозитория, например:
   deb-src http://ftp.us.debian.org/debian/ etch main non-free contrib

Загружаем пакет с исходными текстами в текущую директорию:
   apt-get source имя_пакета

Если под рукой уже есть .dsc, tar.gz и diff.gz файлы, раскрываем их командой:
   dpkg-source -x имя_пакета.dsc

Устанавливаем зависимые пакеты (библиотеки, заголовочные файлы и т.д.), требуемые для сборки:
   apt-get build-dep имя_пакета

Вносим изменения в появившейся директории "имя_пакета-версия".
Если собрались импортировать в пакет более новую версию программы, то воспользуемся утилитой uupdate:
   uupdate -u путь_к_tar_gz_архиву_c_более_новой_версией_программы
При этом в автоматическом режиме будут адаптированы патчи от старой версии,
в случае несостыковок придется исправлять патчи руками.

Собираем пакет:
  cd имя_пакета-версия
  debuild -us -uc

"-us" и "-uc" указываем так как не являемся мантейнером пакета и не можем создать цифровую подпись для пакета.

Вместо враппера debuild можем напрямую использовать:
   dpkg-buildpackage -rfakeroot

После сборки готовый пакет появится в родительской директории, устанавливаем его:
   cd ..
   dpkg -i <package_file.deb>

Пример для пакета с MySQL:
   mkdir build
   cd build
   apt-get source mysql-server-5.0
   apt-get build-dep mysql-server-5.0
   cd mysql-dfsg-5.0-5.0.32
   debuild -us -uc
   cd ..
   dpkg -i *.deb


URL: http://www.ducea.com/2008/03/06/howto-recompile-debian-packages/
Обсуждается: http://www.opennet.me/tips/info/1615.shtml


Содержание

Сообщения в этом обсуждении
"Перекомпиляция пакета в Debian и Ubuntu"
Отправлено VecH , 11-Мрт-08 09:30 
Я так понял это сделаноиз за моей мольбы о помощи по  перекомпиляции до новой версии пакета samba )))
Спасибо автору

"Перекомпиляция пакета в Debian и Ubuntu"
Отправлено Zulu , 11-Мрт-08 17:33 
Убивать.
За компиляцию без использования оберток типа pbuilder надо убивать.

"кета в Debi"
Отправлено Andrey Mitrofanov , 11-Мрт-08 17:38 
>Убивать.
>За компиляцию без использования оберток типа pbuilder надо убивать.

Боюсь даже спросить, какова казнь за wget-tar-xzf-make-make-install. Ж-)


"кета в Debi"
Отправлено Zulu , 13-Мрт-08 11:39 
Изгнание за пределы обитаемого космоса)))

"Перекомпиляция пакета в Debian и Ubuntu"
Отправлено foe_nix , 11-Мрт-08 19:05 
Научите делать правильно!

"Перекомпиляция пакета в Debian и Ubuntu"
Отправлено VecH , 11-Мрт-08 19:46 
>Научите делать правильно!

статья которую я прочитал здесь же тоже имеет недостатки

у меня не не патчится пакет скачанный для lenny и sid
под etch


"пиляция пакета в"
Отправлено Andrey Mitrofanov , 12-Мрт-08 10:41 
>статья которую я прочитал здесь же тоже имеет недостатки
>
>у меня не не патчится пакет скачанный для lenny и sid под etch

И при чём тут _статья_?


"Перекомпиляция пакета в Debian и Ubuntu"
Отправлено receiver , 12-Мрт-08 15:06 
У каждого свой путь, в этом и заключается свобода, кто-то делает так, кто-то по-другому. Вообще говоря есть apt-src ... ;)

"Перекомпиляция пакета в Debian и Ubuntu"
Отправлено Somewho , 13-Мрт-08 13:48 
aptbuilder есть

"Перекомпиляция пакета в Debian и Ubuntu"
Отправлено Pilat , 16-Мрт-08 14:48 
pbuilder выглядит более правильным в смысле незасорения системы лишними библиотеками, которые при компиляции накапливаются. Но есть метод принципиально лучше. Ставится OpenVZ. Вся деятельность по компииляции пакетов идёт в отдельной виртуальной машине. По сути, это почти тот же chroot, который делает pbuilder - но гораздо проще и очевидней. Далее делаем так, как описано в http://www.debian.org/doc/manuals/quick-reference/ch-package... :

deb-src http://http.us.debian.org/debian testing \
      main contrib non-free
deb-src http://http.us.debian.org/debian unstable \
      main contrib non-free

$ apt-get update
$ apt-get source package
$ dpkg-source -x package.dsc
$ cd package-version
   ... inspect required packages    
$ dpkg-buildpackage -rfakeroot -us -uc

Теперь помещаем .deb файлы в локальный репозиторий и пользуемся.

При компиляции PHP 5.2.5 под etch , например, мне потребовалось поставить >100 пакетов. Вычистить их потом можно, но проще сохранить конфигурацию виртуальной машины до следующей перекомпиляции - ведь за безопасностью тепетрь следить придётся самостоятельно.


"Перекомпиляция пакета в Debian и Ubuntu"
Отправлено Аноним , 18-Мрт-08 16:50 
Вообще есть другой дистриб, ибо нельзя из пакетного дистриба делать сырцы)

"Перекомпиляция пакета в Debian и Ubuntu"
Отправлено Pilat , 18-Мрт-08 17:35 
>Вообще есть другой дистриб, ибо нельзя из пакетного дистриба делать сырцы)

Нельзя кому?