Причина, по которой autoremove
удаляется не так много, как вы ожидаете, заключается в том, что установленные пакеты автоматически удовлетворяют слабым зависимостям других пакетов, которые вы уже установили. В вашем случае dpkg-dev
уже установлен как автоматическая зависимость; поскольку он рекомендует виртуальный пакет c-compiler
, любой пакет, предоставляющий c-compiler
, будет сохранен после его установки.
Иными словами, у вас уже установлен пакет A со слабой зависимостью от пакета B, а пакет B не установлен. Если вы позже установите пакет C с сильной или слабой зависимостью (, но с учетом конфигурации apt
)пакета B, пакет B также будет установлен и помечен как установленный автоматически. Однако удаление пакета C не приведет к тому, что пакет B будет рассматриваться для автоматического -удаления, потому что пакет A сохраняет его «интересным» с точки зрения apt
.
Вы могли бы попросить autoremove
игнорировать рекомендации по слабым (зависимостям по умолчанию ), но это, вероятно, приведет к удалению гораздо большего количества пакетов, чем вы ожидаете или хотите.
Я не знаю никакого хорошего решения для этого. aptitude
несколько более агрессивен в своем автоматическом удалении, но он также не справляется со всеми ситуациями.
См. Как рекомендации и предложения взаимодействуют с apt -get dist -upgrade и apt -get autoremove? и Почему 'apt -get autoremove' не работало должным образом? для получения дополнительной информации об этом.
При сборке пакета вместо установки файлов в их окончательное расположение вам необходимо установить их в область «сортировки». В пакетах Debian, которые находятся в каталоге с тем же именем, что и ваш бинарный пакет, внутриdebian
:
install -D -m 755 bin/Debug/netcoreapp3.1/linux-x64/publish/* debian/netcoreapp/opt/myApp
(при условии, что у вас пакет netcoreapp
), но это не объясняет проблемы, которые у вас возникают с install
, и, вероятно, не решит их.
Вместо того, чтобы выяснять это вручную, вы должны использоватьdh_install
вместоinstall
:
dh_install bin/Debug/netcoreapp3.1/linux-x64/publish/* opt/myApp