Так вот, что я узнал об этой проблеме за последние пару недель.
С предварительно упакованными двоичными файлами вы не можете собрать пакет debian с динамическим каталогом назначения, определенным во время выполнения.Я считаю, что это может быть возможно при установке пакета, созданного из исходного кода, где вы можете установить каталог установки с помощью configure.Но в данном случае, так как это встроенные машины Ubuntu, их не было, поэтому я не стал использовать такую возможность.Я разработал нетрадиционный метод (взломать) для установки, которая работала.Так как пакеты debian просто содержат tar-шар относительно / просто создайте ваш пакет относительно каталога в / tmp.В сценарии postinst вы можете определить, куда копировать файлы из архива в постоянное местоположение.
Я ожидал, что после перезагрузки и автоматического удаления подкаталога в / tmp этот dpkg может не знать, что файлпакет существовал.Это не было проблемой.Когда я запустил 'dpkg -l myapp', он показал, что все еще установлен.Обновление пакета с использованием dpkg / apt-get также работает без проблем.
Я обнаружил, что если вы попытаетесь удалить пакет с помощью 'dpkg -r myapp', то dpkg попытается удалить / tmp, которыйне было хорошоОднако / tmp не так легко удалить, поэтому он никогда не удался.Кроме того, в нашей ситуации мы никогда не удаляем пакеты, а просто обновляем их.
В конечном итоге мне пришлось отказаться от универсального пакета из-за различий в коде в исходниках, что привело к необходимости перекомпиляции для каждой платформы, но я бы оставил его такими это сработало.
Я попытался использовать --instdir, чтобы изменить каталог установки пакета, и он действительно переместил файлы, но dpkg не удалось, так как файл dpkg не может быть найден относительно нового instdir.Использование --instdir похоже на chroot.Я также пробовал --admindir и --root в различных комбинациях, чтобы посмотреть, смогу ли я использовать систему dpkg относительно / но install переместить файлы, но они не сработали.Я предполагаю, что rpm имеет опцию перемещения, которая работает, но не Ubuntu.