Как исключить определенные пакеты из установки с помощью apt-get?

Я хотел бы исключить определенные пакеты из установки с помощью 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
11
задан 21 May 2015 в 02:17

4 ответа

Так, ядро помощника зависит от 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 набор пакетов.

0
ответ дан 21 May 2015 в 02:17

Если Вы используете aptitude или графический диспетчер пакетов (Синаптический, и т.д.), то можно отменять, какие пакеты должны быть установлены целых , он не вызывает проблему зависимости.

В случае aptitude, прежде, чем установить пакет (в графическом представлении), это покажет Вам, почему устанавливается зависимый пакет. В моем случае я использую KDE, и так не имейте никаких пакетов ПОМОЩНИКА. Если я говорю ему устанавливать mate-core, я получаю следующее:

enter image description here

Уведомление, которое mate-core отмечено как вручную устанавливаемый, и много других пакетов, устанавливается. Для mate-terminal пакет, в нижней части, это говорит, "mate-desktop-environment-core [вселенная] зависит от mate-terminal (> = 1.0.0)". Осмотр к записи для mate-desktop-environment-core,

enter image description here

" mate-core [вселенная] зависит от mate-desktop-environment-core (> = 1.8.0+9)". Поэтому mate-terminal устанавливается.

, Если, вместо этого, рекомендуемый пакет устанавливается (а не что-то, что зависит от другого пакета), aptitude скажет Вам так, и можно сказать ему не устанавливать тот пакет без любых поврежденных зависимостей. Например:

enter image description here

0
ответ дан 21 May 2015 в 02:17

Другой метод

Загрузка основной пакет, которые зависят от другого. Извлеките пакет, удалите нежелательные зависимости, повторно упакуйте его. Теперь откройте новый пакет с установщик gdebi пакета. Это установит новые зависимости для Вас.

  • Список depencies может быть найден в DEBIAN / , управление -> зависит
  • Для справки на повторно следовании deb, видят мой ответ на , как создать PPA
0
ответ дан 21 May 2015 в 02:17

Существует специальное предложение 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.

, но это, кажется, ответ на Ваш конкретный вопрос. Таким образом для ссылки, этого кросспостинга.

0
ответ дан 4 October 2019 в 16:16

Другие вопросы по тегам:

Похожие вопросы: