Упаковка MATLAB (или, в более общем смысле, большой двоичный, проприетарный программный продукт)

Я пытаюсь пакет MATLAB для внутреннего распределения, но это можно применить к любой части программного обеспечения с той же архитектурой. Фактически, я упаковываю несколько версий MATLAB для одновременной установки. Ключевые вещи

  • Очень большой размер установки (~ 4 Гб)
  • Состоит из ядра и несколько плагинов (Инструментарии)

Первоначально, я создал один пакет «источник» (matlab2011b), который строит несколько файлов .deb (в основном matlab2011b-ядро и matlab2011b-toolbox- * для каждой панели инструментов). Файл debian/rules это не просто стандарт

all:
 dh $@

Существует нет Makefile; только копирование файлов. Я использую ряд debian/*.install файлов указать файлы для копирования из копии установки в /usr/lib/.

Проблема заключается в том, каждый раз, когда я строю вещь (скажем, сделать поправку к пакету сердечника), он recopies каждый файл, указанный в *.install файл, чтобы, например, debian/$packagename/usr/ (фаза сборки), а затем должен связать это в файл .deb. Она занимает долгое время , порядка нескольких часов, и делает много дополнительной работы.

Так что мои вопросы:

  • Вы можете сделать dh_install сделать копию Жесткой ссылки (например, cp -l), чтобы сэкономить время? (AFAICT со страницы человека, нет.) Может быть, я должен просто получить его, чтобы сделать это в Makefile? (Это собирается быть большой Makefile.)
  • Вы можете сделать debuild только восстановить файлы .deb, которые нуждаются в восстановлении? Или указать, какие файлы .deb восстановить?
  • Является ли мой подход совершенно глупо? Должен ли я разбить каждый из наборов инструментов на собственный пакет с исходным кодом? (Я буду делать какие-то глупые шаблонизации или что-то, потому что есть сотни из них.: /)
4
задан 18 October 2012 в 23:07

1 ответ

1. Вы можете заставить dh_install делать все, что захотите, добавив это в debian / rules:

override_dh_install:
    dh_install # if you still want to use some things via *.install files
    cp -l src/foo debian/$packagename/usr/share/$matlabname/foo
    cp -l tools/bar debian/$packagename/usr/share/$matlabname/tools/bar
    # etc...

Хотя я не знаю, хорошая ли это идея ...

2. Да, хотя и не так просто, как хотелось бы ...

Вы можете вызывать команды debhelper по отдельности:

dh_prep -p$packagname
dh_installdirs -p$packagname
dh_install -p$packagname
dh_installdeb -p$packagname
dh_gencontrol -p$packagname
dh_md5sums -p$packagname
dh_builddeb -p$packagname

Вероятно, необходимо выполнить настройку для вашего случая, список доступных команд dh_ * см. В

man debhelper

3. Я думаю, что предпочел бы делать все это в одном пакете, но я не уверен, что разделение на несколько пакетов с исходными кодами имеет свои проблемы ...

0
ответ дан 18 October 2012 в 23:07

Другие вопросы по тегам:

Похожие вопросы: