суббота, ноября 08, 2008

как создать правильный пакет

в предыдущей записи, я показал как можно создать tgz-пакет для слаки. так как я (и возможно вы) использую vector, самым правильным пакетом для него будет *.tlz
tlz-пакет основывается на сжатии в 7zip, этот алгоритм заслужил хорошую репутацию и используется в векторе, как основной алгоритм в создании (точнее в сажатии) пакетов, придумал его наш соотечественник, кстати. если вы залезете в репозиторий, увидите что весь софт хранится в tlz.

разработчики вектора позаботились о бедных пользователях и создали замечательную программу vpackager. она конвентирует любой архив с исходниками в нужный нам пакет. интерфейс гуйный, так что любой разберется.

Система - vpackager, откроется оконце с тремя кнопками: "буилд фром сорс тарбол", "крукспротс4слак", и "эдит эксистинг паккейдж".
чтобы создать пакет нам нужна только первая кнопка, ее и нажимаем. открывается следующая форма, в которой нужно заполнить поля:

Source: здесь есть кнопка браузе, нажимаем ее и выбираем архив, который мы хотим преобразовать.
System Architecture: из списка вам нужно будет выбрать свою архитектуру, под которую будет компилироваться пакет.
Packcage Build Tag: здесь вам нужно всего лишь выбрать версию вашего вектора.
Package Format: желаемй формат - tlz или tgz
остальное не так важно трогать, можно оставить по умолчанию.

нажимаем некст, после чего откроется окно с подробным логом создания пакета. все.
пакет создастся, вас спросят "желает ли мой господин, чтобы раб его грешный засадил созданный пакет в систему?" можете ответить "да, желаю."
вуаля!

кстати, пакет будет лежать рядом с исходным архивом.

вот пример программы, которую я собирал в прошлой заметке:
gnome-ppp-0.3.23.tar.bz2 - 323.2 kb исходный архив
gnome-ppp-0.3.23-i386-1.tgz - 80.2 kb пакет в tgz
gnome-ppp-0.3.23-i586-1vl59.tlz - 54.9 kb пакет в tlz

очень удобно при не безлимитном интернете. о других преимуществах тлз-пакетов можно почитать в гугле.

как установить софт из исходников

сначала распаковываете архив, заходите в папку, командуете:
./configure
после исполнения командуете
make
после чего обычно идет комана make install, (make install любой дистрибутив превращает в слакварь (с) башоргру)
но есть другой, красивый способ, а именно собрать себе tgz-шный пакетик в котором будет откомпиленная программа и скрипт с инструкцией по установке для installpkg. в этом мне всегда помогает команда checkinstall. в отличие от make install устанавливаемая программа будет зарегистрирована в системе, и ее можно будет легко удалить через GSlapt или slapt-get.
Итак, после make набираем
checkinstall -S --pakdir=/tmp/mysoft
после компиляции программы соберется пакет для установки.

ключ -S означает, что пакет создается для слакваря. --pakdir= указывает в какую папку будет записан файл пакета. После запуска команды будет предложено ввести имя программы. Также в интерактивном режиме можно ввести дополнительную информацию о пакете.

установить пакет можно команой installpkg имя_пакета, но т.к. я не тру линуксоид и большую часть времени провожу в графической системе, а не в консоли, легким и быстрым способом может являтся и тупое нажатие правой кнопкой по созданному пакету и выбор пункта Install package

о чем вас спросят при созданиии пакета:

The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs? [y]:
насрать, жмакаем интер.

Please write a description for the package. Remember that pkgtool shows
only the first one when listing packages so make that one descriptive.

End your description with an empty line or EOF.
описание вашего пакета, писать лучше не бред, а именно описание проги, что она делает. к примеру:

"gnome-ppp тоже хорошая звонилка, хочу кофе и в туалет."
жмакаете интер 2 раза, если ничего не наберете, то у пакета просто не будет описания, оно в принципе и не важно, если вы только для себя его делаете

This package will be built according to these values:

1 - Summary: [ gnome-ppp тоже хорошая звонилка, хочу кофе и в туалет. ]
2 - Name: [ gnome-ppp ]
3 - Version: [ 0.3.23 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ Applications/System ]
7 - Architecture: [ i386 ]
8 - Source location: [ gnome-ppp-0.3.23 ]
9 - Alternate source location: [ ]
10 - Requires: [ ]

Enter a number to change any of them or press ENTER to continue:
если с ками-либо пунктом не согласны - исправьте.

вот и все. дальше пойдет сборка.