Я разрабатываю собственный межплатформенный файловый менеджер, названный fman. Я хочу распределить его пользователям Ubuntu как a .deb
файл, который может быть загружен с моего веб-сайта. Я использую fpm
создать этот файл, который работает без проблем.
Когда пользователь устанавливает fman, я хочу добавить файл к /etc/apt/sources.list.d/
который указывает на мой сервер обновления. Это позволило бы пользователю автоматически обновлять fman через диспетчер пакетов Ubuntu (или через apt-get
).
Я сделал очевидное: Я поместил файл в .deb
архив под etc/apt/sources.list.d/fman.list
. Проблема: Этот файл не создается под /etc/apt/...
когда пользователь устанавливает fman от .deb
файл.
Когда я делаю dpkg -x fman.deb some_dir/
, файл fman.list
правильно создается в some_dir/etc/apt/sources.list.d/fman.list
. Аналогично, когда я делаю dpkg-query -L fman
после установки я действительно получаю вывод
/. /etc /etc/apt /etc/apt/sources.list.d /etc/apt/sources.list.d/fman.list ...
Я не получаю ошибок или предупреждений, когда я устанавливаю .deb
файл из командной строки через sudo dpkg -i fman.deb
. Я пытался увеличить уровень журнала через sudo dpkg -D 100 -i fman.deb
. Только две строки имеющего отношение вывода fman.list
:
D000100: setupvnamevbs main='/etc/apt/sources.list.d/fman.list' tmp='/etc/apt/sources.list.d/fman.list.dpkg-tmp' new='/etc/apt/sources.list.d/fman.list.dpkg-new' D000100: setupvnamevbs main='/etc/apt/sources.list.d/fman.list' tmp='/etc/apt/sources.list.d/fman.list.dpkg-tmp' new='/etc/apt/sources.list.d/fman.list.dpkg-new'
В некоторой предыдущей точке я нашел файл /etc/apt/sources.list.d/fman.list.dpkg-dist
. Но тот файл был удален, когда я удалил fman. Последующие установки fman не произвели файл снова.
Делает кто-либо знает почему /etc/apt/sources.list.d/fman.list
не создается, когда я устанавливаю fman от a .deb
файл?
Я выяснил, какова проблема была.
я протестировал мой .deb
файл через циклы следующих двух команд:
sudo dpkg -i fman.deb
sudo dpkg -r fman
(эквивалентно, sudo apt-get remove fman
) я узнал, что ... -r
исключает файлы конфигурации. Чтобы также удалить файлы конфигурации нужно использовать sudo dpkg -P fman
.
Во время моего тестирования, я, должно быть, вручную удалил /etc/apt/sources.list.d/fman.list
в какой-то момент. Но dpkg
(/apt
) все еще помнил, что это установило тот файл, таким образом, это не переустановило его в следующий раз, когда я сделал dpkg -i
(эквивалентно, apt-get install
).
решение состояло в том, чтобы поэтому звонить sudo dpkg -P fman
. В следующий раз, когда я затем сделал dpkg -i fman.deb
fman.list
, файл был создан как ожидалось.