Я хотел бы исключить определенные пакеты из установки с помощью apt-get
, то есть установить метапакет без списка определенных пакетов, предпочтительно с одним вызовом apt-get
.
Например, в командной строке Ubuntu 14.04 LTS я устанавливаю среду рабочего стола MATE. В 14.04 LTS MATE не является официальной версией, поэтому я добавляю PPA:
sudo apt-get install software-properties-common # need them for 'apt-add-repository'
sudo apt-add-repository ppa:ubuntu-mate-dev/ppa
sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate
sudo apt-get update
и затем устанавливаю:
sudo apt-get install xorg mate-core --no-install-recommends
Даже без рекомендованных дополнений, mate-core
устанавливает 3 эмуляторы терминала: xterm
, uxterm
и mate-terminal
, последний не имеет надлежащих шрифтов при установке в этой минимальной конфигурации.
Предположим, я решил, что 3-х терминальных программ будет слишком много, и я бы хотел установить xorg
и mate-core
без xterm
и mate-terminal
. Я мог бы сделать
sudo apt-get install xorg mate-core --no-install-recommends
sudo apt-get purge xterm mate-terminal
, но возможно ли сделать это за один раз? Есть ли такой синтаксис, как
sudo apt-get install xorg mate-core --without xterm mate-terminal
Так, ядро помощника зависит от mate-desktop-environment-core
, который в свою очередь зависит от mate-terminal
. зависят , не может быть поврежден легко. Ни apt-get
, ни aptitude
поддержки --without
или --exclude
опция и "содержание" пакетов не помогут:
$ echo "mate-terminal hold" | sudo dpkg --set-selections $ sudo apt-get install mate-core [...] Some packages could not be installed... The following packages have unmet dependencies:
Несомненно, можно использовать dpkg --force-depends
для установки пакета, но это, возможно, не, что Вы хотите.
возможность А состояла бы в том, чтобы выполнить эти Depends:
флаг с фиктивным пакетом:
$ sudo apt-get install equivs $ equivs-control mate-terminal $ vi mate-terminal Section: misc Priority: optional Standards-Version: 3.9.2 Package: mate-terminal Version: 1.8.0 Description: Dummy package for mate-terminal :x $ equivs-build mate-terminal $ sudo dpkg -i mate-terminal_1.8.0_all.deb
Теперь mate-core
должен быть в состоянии установить w/o mate-terminal
. Повторите то же для других пакетов, которые будут исключены.
По общему признанию это - настоящее усилие и --without
, опция была бы хороша. Возможно, ошибка списка пожеланий может быть открыта для обеспечения такой функциональности в будущем, но я так или иначе сомневаюсь, что это будет реализовано.
Однако более реалистическая опция состояла бы в том, чтобы подать прошение владелец PPA предоставлять другой meta пакет ПОМОЩНИКУ с меньшим Depends
набор пакетов.
Если Вы используете aptitude
или графический диспетчер пакетов (Синаптический, и т.д.), то можно отменять, какие пакеты должны быть установлены целых , он не вызывает проблему зависимости.
В случае aptitude
, прежде, чем установить пакет (в графическом представлении), это покажет Вам, почему устанавливается зависимый пакет. В моем случае я использую KDE, и так не имейте никаких пакетов ПОМОЩНИКА. Если я говорю ему устанавливать mate-core
, я получаю следующее:
Уведомление, которое mate-core
отмечено как вручную устанавливаемый, и много других пакетов, устанавливается. Для mate-terminal
пакет, в нижней части, это говорит, "mate-desktop-environment-core
[вселенная] зависит от mate-terminal
(> = 1.0.0)". Осмотр к записи для mate-desktop-environment-core
,
" mate-core
[вселенная] зависит от mate-desktop-environment-core
(> = 1.8.0+9)". Поэтому mate-terminal
устанавливается.
, Если, вместо этого, рекомендуемый пакет устанавливается (а не что-то, что зависит от другого пакета), aptitude
скажет Вам так, и можно сказать ему не устанавливать тот пакет без любых поврежденных зависимостей. Например:
Другой метод
Загрузка основной пакет, которые зависят от другого. Извлеките пакет, удалите нежелательные зависимости, повторно упакуйте его. Теперь откройте новый пакет с установщик gdebi пакета. Это установит новые зависимости для Вас.
Существует специальное предложение apt
синтаксис для сценариев как это: добавление дефиса (знак "минус") к пакету удалит/не, устанавливают его, таким образом, самое близкое к Вашему sudo apt-get install xorg mate-core --without xterm mate-terminal
sudo apt-get install xorg mate-core xterm- mate-terminal-
(определено на https://askubuntu.com/a/1011439/182923)
, Это не поможет в этом случае, поскольку Вы столкнетесь
The following packages have unmet dependencies:
mate-desktop-environment-core : Depends: mate-terminal (>= 1.20) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
, но это, кажется, ответ на Ваш конкретный вопрос. Таким образом для ссылки, этого кросспостинга.