Счётчик
|
|
|
Следуй за ним
|
|
|
|
UNIX/Linux
autopbi 0.17
На фоне своих рассуждений об автоматизации создания PBI, написал скриптег на bash. Является скриптовым воплощением приснопамятной статьи "Что такое PBI?" (смысла которой я не понял). Собственно сразу скажу что кофе скрипт готовить не умеет. Создание PBI упрощает до натравливания на результат своей работы PBI Creator, из чего и получается PBI.
Использование: autopbi <пакет_freebsd.tbz>
Результат: "папка_имени_пакета/bin" на которую натравливается PBI Creator.
Чтобы не испытывать разочарований, рекомендую натравливать только на свежескаченные .tbz. Под свежескаченным .tbz понимается скаченный только что, минуту назад. В противном случае можете не досчитаться зависимостей. Даже если за сутки "пакет_freebsd.tbz" не изменил свое имя и версию, он всё равно может зависеть от "подлый_пакет_версия_1.tbz", вместо "подлый_пакет_версия.tbz", как это было сутки назад.
Путь для скачивания .tbz можно увидеть в первых строках скрипта. Поскольку, 7.2-RC2 почил в бозе (как и следовало ожидать), адресуемся к 7.2. Выйдет 7.3 - поменяете эту строчку и всё.
Теперь, о том что такое "потерянные библиотеки" (lastlib). Ряд олухов царя небесного собирает PBI без включения в них всех библиотек. Если вы собрались собирать PBI: позаботьтесь о чистоте Вашей системы, что значит полное отсутствие установленных портов и .tbz (PBI сюда не входят, их можно иметь установленными сколько угодно). Это нужно, что любой человек мог поставить данный PBI на голую систему. Так вот, в процессе своей работы скрипт выявляет необходимые библиотеки и копирует их в каталог "имя_PBI/bin/lib". Необходимые - не значит, что все они имеются в зависимых пакетах .tbz. Некоторые из них являются желательными, но не строгообязательными. Например, без русского языка же вы прекрасно проживёте? Соответственно такие библиотеки и называются "потерянными". Скрипт выявляет их и записывает в "имя_PBI/bin/PBI.lostlib.txt". Предлагается самостоятельно найти их и скопировать в "имя_PBI/bin/lib". Вполне возможно, что кто-то из них лежит в "имя_PBI/lib", но надо же и Вам чем-то заняться? =)
Прошу внимательно относиться к лицензии оригинальной программы. Скрипт упрощает и этот процесс. Выбранная лицензия будет записана в файл "имя_PBI/bin/LICENSE". К сожалению PBI Creator её не подхватывает, но зато таким образом выполняется пункт GPL о необходимости наличия данного файла с текстом лицензии в корне программы. Скрипты установки/удаления и обновления также создаются автоматически, но тем не менее посмотрите их в PBI Creator, возможно что-то захочется исправить.
Также, не будет лишним нарисовать и положить перед сборкой PBI в папку bin: иконку icon.png и файлы оформления инсталлятора header.png и leftside.png автоматически подхватываемые PBI Creator версии 5. В архиве есть шаблоны, которыми можно свободно пользоваться.
Ключики
autopbi -h
Подсказка, как и ожидалось.
autopbi -v
Узнать версию скрипта, опять же - самоочевидно.
autopbi -t <пакет.tbz>
Тест. Создаёт файл с именем "пакет.dep" в той же директории. Этот файл содержит список имён всех пакетов необходимых тестируемому .tbz. Можно находить их просто копипастя имена в google.
autopbi -d <директория>
Позволяет пользователю самостоятельно положить в конкретную директорию конвертируемый пакет.tbz и зависимые пакеты .tbz и далее натравить autopbi на такую директорию.
autopbi -f <пакет.tbz>
То же самое, что и без ключа - указание конвертируемого файла. Ключ введён для целостности восприятия скрипта.
autopbi -q
Делать всё молча (QUIET). Не рассказывать в консоль о процессе своей работы.
Итак, я сделал волшебную кнопку. Только кашу не готовит, остальное делает само. Желающие могут использовать/развивать скрипт как их душе будет угодно. Я считаю что сама идея PC-BSD и его .pbi порочна в корне, но не пропадать же добру..
Дальнейшее развитие данного скрипта не планируется.
- работает с 7.2-PRERELEASE и 7.1-STABLE, за другие релизы PC-BSD ответственности не несу. Кому нужно чтобы работало на других - правьте скрипт руками;
- в этой версии исправлен неверный подсчёт библиотек-потеряшек для ситуаций когда на один бинарник таких библиотек оказывалось > 1;
- добавлена оптимизация: скрипт смотрит на пакеты установленные в системе, сравнивает с теми которые нужны собираемому PBI и откидывает все совпадающие. Разумеется это небыстро, но результирующий PBI получается меньше (за счёт исключения лишнего) и появляется возможность собирать действительно сложные PBI (исключая линуксолятор-ориентированные).
Засим я отформатировал винчестер. Итак, из-за катастрофической лени такое убожество как PC-BSD прожило у меня много дольше чем оно того заслуживало. =)
autopbi 0.17
|
|
|
|