Обновление и отладка пакетов opkg
Jan. 17th, 2014 01:07 amРепозиторий openwrt состоит из трех составляющих:
-файла пакета с расширением ipk;
-вспомогательный текстовый файл "Packages" содержащем сведения для проверки подлинности пакетов, который нужен для получения файла "Packages.gz";
-Packages.gz, являющегося упакованным файлом Packages, собственно, который и требуется для opkg.
1. Файл с раширением ".ipk".
Это архив, упакованный linux утилитой ar. В windows его можно просмотреть при помощи 7zip, а в linux помогает mc. Имя файла состоит из трех частей разделенных подчеркиванием: "<имя пакета для opkg install/remove>_<версия>_<платформа>.ipk".
Файл содержит три файла.
1. Файл длиной 4 байта и именем "debian-binary", содержащий "2.0";
2. Архив "data.tar.gz", содержащий файловую систему, которая будет распакована в корневую папку;
3. Архив "control.tar.gz", содержащий файл "control" (описывает пакет) и sh программы: "preinst" (запускается перед установкой пакета, соответствует содержимому секуции/переменной Package/<имя пакета>/preinst), "postinst" (запускается после установки пакета, соответствует содержимому секуции/переменной Package/<имя пакета>/postinst), "prerm" (запускается перед удалением пакета, соответствует содержимому секуции/переменной Package/<имя пакета>/prerm), "postrm" (запускается после удаления пакета, соответствует содержимому секуции/переменной Package/<имя пакета>/postrm). Некоторые из этих программ могут отсутствовать, но файл control обязателен. Отменяется установка/удаление пакета возвращением не нулевого значения из скрипта preinst/prerm.
Поэтому установочные скрипты можно проверить до установки пакета, просто просмотрев содержимое архива control.tar.gz.
2. Файл Packages.
Содержит такие строки для каждого пакета.
-файла пакета с расширением ipk;
-вспомогательный текстовый файл "Packages" содержащем сведения для проверки подлинности пакетов, который нужен для получения файла "Packages.gz";
-Packages.gz, являющегося упакованным файлом Packages, собственно, который и требуется для opkg.
1. Файл с раширением ".ipk".
Это архив, упакованный linux утилитой ar. В windows его можно просмотреть при помощи 7zip, а в linux помогает mc. Имя файла состоит из трех частей разделенных подчеркиванием: "<имя пакета для opkg install/remove>_<версия>_<платформа>.ipk".
Файл содержит три файла.
1. Файл длиной 4 байта и именем "debian-binary", содержащий "2.0";
2. Архив "data.tar.gz", содержащий файловую систему, которая будет распакована в корневую папку;
3. Архив "control.tar.gz", содержащий файл "control" (описывает пакет) и sh программы: "preinst" (запускается перед установкой пакета, соответствует содержимому секуции/переменной Package/<имя пакета>/preinst), "postinst" (запускается после установки пакета, соответствует содержимому секуции/переменной Package/<имя пакета>/postinst), "prerm" (запускается перед удалением пакета, соответствует содержимому секуции/переменной Package/<имя пакета>/prerm), "postrm" (запускается после удаления пакета, соответствует содержимому секуции/переменной Package/<имя пакета>/postrm). Некоторые из этих программ могут отсутствовать, но файл control обязателен. Отменяется установка/удаление пакета возвращением не нулевого значения из скрипта preinst/prerm.
Поэтому установочные скрипты можно проверить до установки пакета, просто просмотрев содержимое архива control.tar.gz.
2. Файл Packages.
Содержит такие строки для каждого пакета.
Version: 1-1
Depends: libc
Provides:
Source: package/packagename
Section: 1
Status: unknown ok not-installed
Essential: no
Priority: optional
Maintainer: zepete
Architecture: ar71xx
Installed-Size: 816
Filename: packagename_1-1_ar71xx.ipk
Size: 2353
MD5Sum: 7d6363d5aa63e2a016c1e9a56a40dd1d
Description: description of package packagename
При обновлении пакета обязательно менять в нем поля MD5Sum, Size и Filename (если менялась версия). MD5Sum вычисляется при помощи WinMD5free.
После чего упаковать этот файл в Packages.gz тем же самым 7zip.