Как создать ipk пакет на Synology Diskstation
Материал из SynologyWiki
[править] Введение
(использованы материалы http://forum.synology.com/enu/viewtopic.php?f=92&t=9189)
Предполагается, что установлены IPKG и средства сборки(нативной компиляции) программ на DS. Для установки системы компиляции установите требуемые пакеты
ipkg install gcc svn optware-devel cvs gettext
Примечание: если вы предпочитаете кросскомпиляцию - используйте следующий материал: Как создать ipk пакет на десктопе
[править] Установка системы сборки ipk
Заходим на diskstation под рутом (ssh). Перейдем в папку, где будут храниться нужные файлы. Я использую /volume1/homes/admin:
cd /volume1/homes/admin
и выполним команду
svn co http://svn.nslu2-linux.org/svnroot/optware/trunk optware
После выполнения перейдем в созданную папку optware
cd optware
и выполним
make <имя платформы>-target
Например, для платформы Marvell Kirkwood mv6281 имя платформы cs08q1armel.
После этого все делается в папке, созданной для платформы:
cd <имя платформы>
Выполним команду
make directories ipkg-utils
После этого можно собирать свои пакеты, в том числе и вносить исправления в стандартные. Например, для сборки библиотеки zlib выполним
make zlib make zlib-check
В результате в папке /volume1/homes/admin/optware/cs08q1armel/builds будет создан ipk пакет для библиотеки zlib.
[править] Создание собственного ipk пакета
Для создания собственного пакета "superproga" воспользуемся шаблоном "make/template.mk".
Скопируем шаблон под другим именем:
cp make/template.mk make/superpoga.mk
Заменим в файле make/superpoga.mk переменные <foo> и <FOO> на название программы
sed -i 's/<FOO>/SUPERPROGA/g' make/superproga.mk sed -i 's/<foo>/superproga/g' make/superproga.mk
Отредактируем файл make/superproga.mk в соответвии с комментариями в этом файле и многочисленными примерами mk файлов в папке make.
Создадим директорию sources/superproga
mkdir sources/superpoga
и поместим в эту директорию, если необходимо, дополнительные файлы для ipk и патчи для исходных кодов. Теперь можно создать свой пакет:
make superproga make superproga-check