У меня есть эта строка сценария для установки всех пакетов для нового сервера.
apt-get install mysql-server openjdk-7-jre-headless tomcat7 tomcat7-admin jsvc apache2 ntp subversion
Как видите, он устанавливает Java 7, но также устанавливается Java 6, потому что tomcat7
(косвенно) зависит от этого. Я почти уверен, что могу запустить Tomcat 7 с Java 7, поэтому я не хочу устанавливать две JRE. Как я могу предотвратить установку Java 6?
Обновить: Более внимательное рассмотрение показывает, что
tomcat7
, через tomcat-common
, зависит от default-jre-headless | java6-runtime-headless | java6-runtime | java-6-runtime
(при условии, что трубы означают «один из»).openjdk-7-jre-headless
обеспечивает java6-runtime-headless
, так что зависимость должна соблюдаться.default-jre-headless
установлен, который устанавливает Java 6.Почему так случилось? Потому что я их все сразу устанавливаю. Должен ли я разделить его на 2 вызова?
(Сервер Ubuntu 12.04, 64-разрядная версия)
На самом деле в приведенной выше строке не устанавливается Java 6. На каком-то этапе разработки скрипта у меня openjdk-7-jre-lib
там вместо openjdk-7-jre-headless
, и это зависит от openjdk-6-jre-lib
, по какой-то причине.
Использовать --nodeps
вариант с apt-get
игнорировать устанавливаемые зависимости.
Есть еще один способ - загрузить пакет и установить его с помощью dpkg
с участием --ignore-depends=
пакет, ...
Менеджер пакетов с графическим интерфейсом пользователя, такой как Synaptic, позволит вам выбрать или отменить выбор зависимостей перед установкой выбранных пакетов.
Создайте пакет debian, который «Предоставляет:» зависимость, которую вы не хотите устанавливать. Установите его.