У меня есть pkg с некоторым кодом C++. В настоящее время я компилирую часть кода C++ как двоичный файл, часть как библиотеку, и я могу отправить и развернуть его на других платформах.
Однако у меня также есть драйвер, который я не могу кросс-компилировать из-за его зависимости от ядра, из-за чего каждому ядру может потребоваться другой двоичный файл.
Итак, я хочу иметь .deb, где я буду хранить двоичный файл в /usr/bin (готово), библиотеку в /usr/lib (тоже готово) и исходный код драйвера в /opt/driver (я думаю ... Это законное место для этого?)
Упаковать это легко, так как все, что мне нужно сделать, это поместить его в свое рабочее пространство и вызвать dpkg-deb
. В чем я не уверен, так это в двух вещах
- Законно ли упаковывать исходный код в .deb? (В терминологии Python - это .deb bdist (двоичный дистрибутив) или также может быть sdist (исходный дистрибутив))
- Если это законно, как я могу вызвать команды make? Может
дпкг/аппт
сделать это для меня? Или мне нужно бежать dpkg -я упаковка
а затем запустить делать
? [смотря на постинста но я не уверен, что это правильный путь]
Я открыт для любой системы сборки, если она может решить эту проблему, хотя в настоящее время я использую cmake и предпочел бы придерживаться ее.
Мой ПОК:
дерево bla_x86_64
bla_x86_64
✓ DEBIAN
✓ ✓ управление
âââ postinst
âââ выбор
âââ bla.cpp
âââ usr
âââ мусорное ведро
âââ bla.bin
âââ библиотека
âââ bla.lib
кошка bla_x86_64/DEBIAN/postinst
#!/бин/ш
установить -е
эхо привет мир!
эхо-компиляция $(ls /opt/bla.cpp)
очистка эха
rm -rvf /opt/bla.cpp
$ dpkg-deb --build --root-владелец-группа bla_x86_64/
dpkg-deb: сборка пакета «bla» в «bla_x86_64.deb».
$ sudo dpkg -i bla_x86_64.deb
(Чтение базы данных... На данный момент установлено 407519 файлов и каталогов.)
Подготовка к распаковке bla_x86_64.deb...
Распаковка бла (4.0) поверх (3.0)...
Настройка бла (4.0)...
Привет, мир!
компиляция /opt/bla.cpp
уборка
удален '/opt/bla.cpp'