deb
Скрипт для поиска репозитория на launchpad.net
Мне, как и многим линуксоидам предпочитающим Debian-подобные дистрибутивы, периодически приходится искать репозитории той или иной софтины в самом большом архиве персональных репозиториев. Для этого я обычно ходил на страницу https://launchpad.net/ubuntu/+ppas либо пользовался утилитой ppasearch. Первый вариант просто надоел, а второй мне не удобен, потому-что не дает ссылку на страницу репозитория. Просто я предпочитаю хранить все репозитории в одном файле, а не разбрасывать их по разным файлам в каталоге /etc/apt/sources.list.d/. В то же время в результатах поиска я хочу видеть только ссылку на страницу репозитория, а его название и описание для меня имеет второстепенную важность.
Вот и решил накидать меленький скриптек:
Распаковка deb-пакетов в других дистрибутивах
Чтобы распаковать deb-пакет в другом дистрибутиве, необходимо выполнить два следующих шага:
1) Узнать тип сжатия данных
ar t имя_пакета.deb | grep data
В ответ будет получено имя файла в архиве, например data.tar.gz.
2) Выполнить соответствующую имени файла команду из следующего списка:
ar -p имя_пакета.deb data.tar.gz | tar zx -C dir ar -p имя_пакета.deb data.tar.bz2 | tar jx -C dir ar -p имя_пакета.deb data.tar.lzma | unlzma | tar x -C dir
Файлы будут распакованы в директорию dir.
Создание .deb пакетов из perl модулей
В репозитории Debian существует пакет dh-make-perl который может автоматически создавать пакеты .deb из модулей perl, при необходимости выкачивая их из CPAN. Срабатывает в основном для простых пакетов, но удобно для того что бы начать создавать пакет из модуля, так как программа берет на себя рутинную работу.
UPD:
Например:
$ sudo dh-make-perl --install --cpan HTML::Template::PluggableКак собирать .deb climm в Debian
В последнее время climm бурно развивается, и в каждом релизе добавляется что нибудь вкусненькое (например постепенно улучшается поддержка jabber). К сожалению сам автор предоставляет .deb только для Ubuntu. Но это не беда, можно собирать пакет из deb-src под свою систему Ж:-)
Так же радует что все необходимые настройки для сборки .deb есть в главном репозитории climm.
Добавляем в /etc/apt/source.list репозиторий в который выкладывается deb-src каждого релиза:
deb-src http://www.climm.org/deb/ sid main
$ sudo apt-get update # обновим базы $ apt-get source climm # установим исходники из deb-src $ sudo apt-get build-dep climm # устанавливаем пакеты которые # необходимы для постройки $ cd climm $ dpkg-buildpackage -rfakeroot # делаем .deb $ sudo dpkg -i ../climm_0.6.1-0_i386.deb # устанавливаем что получилось
Примечание: К сожалению этот процесс нельзя автоматизировать с помощью apt-build изза ошибки в нем.
Примерно тоже самое что первый вариан, то понадобится установленные в системе autoconf и automake. И нужно будет самостоятельно поставить необходимые для сборки пакеты.
$ svn co http://svn.climm.org/climm/ $ cd climm
или обновить уже существующий транк
$ cd climm $ svn update
собираем пакет
$ ./prepare # запускаем autoconf $ dpkg-buildpackage -rfakeroot # делаем .deb $ sudo dpkg -i ../climm_0.6.1-0_i386.deb # устанавливаем что получилось
Примечание: К сожалению этот процесс нельзя автоматизировать с помощью svn-buildpackage так как автор не хочет вносить в debian/rules код для автоматического запуска ./prepare
Что бы не убиралась отладочная информация из бинарного файла, включался кой какой отладочный код, плюс делалась цифровая подпись нужным ключом.
$ DEB_BUILD_OPTIONS=nostrip WIP=1 dpkg-buildpackage -rfakeroot -m"ramok <ramok@core.org.ua>" $ sudo dpkg -i ../climm_0.6.1-0_i386.deb # устанавливаем что получилось
Из какого пакета файл?
Иногда известен какой нибудь файл, и хочется узнать из какого он пакета. Здесь будет рассказано как это можно узнать в различных OS и мененжерах пакетов(deb, apt,rpm, Gentoo, FreeBSD, OpenBSD): ...
Создание .deb на основе установленного пакета
Часто бывает ситуация что необходимо настроить одну и туже программу на нескольких компьютерах одновременно.
В этом может помочь пакет dpkg-repack. Он позволяет из установленного уже на вашей системе пакета, создать новый, который будет содержать все изменения в конфиг файлах. После чего пакет можно безболезненно, в уже настроенном виде, установить на другой машине.
sudo apt-get install dpkg-repack
Коротко и ясно о dpkg
Использование менеджера пакетов dpkg в Debian/Ubuntu
http://ylsoftware.com/?action=news&na=viewfull&news=133
Как создать собственный deb репозитарий
иногда небходимо сбросить диск с Debian(ubunto) и отдать его товарищу Ж:-)
но хочется так же использовать apt-get для установки пакетов из переписанных на диск пакетов.
для этого необходимо создать свой локальный репозиторий. как это сделано описано тут
http://www.debian.org/doc/manuals/repository-howto/repository-howto.en.html
это не сложно Ж:-)


