5. Выбор программ по умолчанию

Файл world

Состав программ по умолчанию определяет файл /var/lib/portage/world. По мере установки программ в файле world начнут формироваться новые записи. После того, как вы установили пакет X с зависимостями, в world будет добавлена запись только пакета X. Это действие выполняется по умолчанию пакетным менеджером emerge. Не следует пренебрегать этим поведением, так как продублированные в world программы и библиотеки впоследствии могут стать причиной коллизий при обновлении системы, например, когда один пакет замещается другим, при этом удаляемый пакет прописан в файле world. Чтобы установить пакет без записи в world, используйте параметр "-1". Вы можете отредактировать файл world при помощи текстового редактора.

Мета-пакеты

В каждой редакции Calculate Linux существует набор программ, установленных по умолчанию. Независимо от того, какой дистрибутив вы используете, он всегда будет включать мета-пакет app-misc/calculate-meta.

Мета-пакет (англ. metapackage) - специальный пакет прикладных программ в пакетных менеджерах, не содержащий устанавливаемого программного обеспечения, но имеющий в зависимостях другие пакеты. Основных назначений мета-пакетов два - установка всегда самой свежей версии программного обеспечения (например, всегда последнего ядра операционной системы) одной и той же командой (не содержащей указания версии устанавливаемого программного обеспечения) и установка больших комплексов программного обеспечения, составляющих логически единую структуру, несмотря на отсутствие зависимостей частей этой структуры друг от друга (например, среды рабочего стола).


В силу отсутствия программного обеспечения, устанавливаемого непосредственно мета-пакетом, удаление самого мета-пакета не приводит к удалению программного обеспечения, установившегося при установке мета-пакета.

Помимо app-misc/calculate-meta существует множество вспомогательных мета-пакетов, разделенных по редакции дистрибутива: app-misc/cld-meta, app-misc/cldg-meta и т.д., либо по назначению: app-misc/cl-graphics-meta, app-misc/cl-network-meta, app-misc/cl-xfce-meta и т.д.

Вспомогательные USE-флаги

Для формирования зависимостей мета-пакетов используются два основных USE флага: CDISTRO и CALCULATE, а также вспомогательные, входящие в портежи.

CDISTRO

Значение флага CDISTRO определяет редакцию дистрибутива (CLD, CLDG, CDS, desktop и т.д.) и может быть изменено только сменой профиля Calculate (см. eselect profile list). В зависимости от значения флага, в состав дистрибутива входят такие мета-пакеты как app-misc/cld-meta, app-misc/cldg-meta, app-misc/cds-meta и др.

CALCULATE

Флаг CALCULATE используется для исключения группы тематических пакетов. По умолчанию CALCULATE равен пустоте и может содержать одно или несколько значений (см. /var/lib/layman/calculate/profiles/desc/calculate.desc), разделенных пробелом:

  • noapache - исключить пакеты Apache серера
  • nocompiz - исключить пакеты Compiz
  • nodecoration - исключить пакеты тем
  • nodhcp - исключить пакеты DHCP
  • nodict - исключить пакеты словарей
  • noftp - исключить пакеты FTP-сервера
  • nognome - исключить пакеты Gnome
  • nographics - исключить пакеты графических утилит
  • nojabber - исключить пакеты jabber сервера
  • nokde - исключить пакеты KDE
  • nokernel - исключить пакеты ядра calculate-sources
  • nomail - исключить пакеты почтового сервера
  • nomultimedia - исключить мультимедийные пакеты
  • nomysql - исключить пакеты mysql сервера
  • nonamed - исключить пакеты ДНС сервера
  • nonettools - исключить пакеты сетевых утилит
  • nonetwork - исключить пакеты сетевых приложений
  • nooffice - исключить office пакеты
  • noopenbox - исключить пакеты openbox
  • nopgsql - исключить пакеты PostgreSQL сервера
  • noprinter - исключить поддержку принтеров
  • noproxy - исключить пакеты прокси-сервера
  • nosamba - исключить пакеты Samba сервера
  • nowireless - исключить поддержку беспроводных сетей
  • noxfce - исключить XFCE
  • noxorg - исключить пакеты Xorg-сервера

Значение флага CALCULATE может быть изменено в файле /etc/make.conf. Вы даже можете исключить все зависимости, сохранив лишь минимальный объем дистрибутива: для этого укажите в значении флага "*".

Удаление зависимостей

Удаление зависимостей происходит в несколько этапов:

  1. измените USE флаг CALCULATE/etc/make.conf);
  2. обновите портежи с оверлеем Calculate (eix-sync);
  3. обновите пакеты (emerge -uDNa world);
  4. удалите лишние зависимости (emerge -ac).

Второй способ - выяснить зависимости, переустановить мета-пакет с измененным USE-флагом CALCULATE и, наконец, удалить пакет. Далее рассмотрим примеры.

Пример удаления Skype

Для примера удалим программу Skype, входящую в дистрибутивы CLD, CLDG и CLDX. Узнать имя пакета программы Skype можно выполнив eix -Ic skype.

  1. Определим зависимости:
    # equery d net-im/skype
     * These packages depend on net-im/skype:
    app-misc/cl-nettools-meta-11.6-r3 (cdistro_desktop ? net-im/skype)
    
  2. Определим USE флаг мета-пакета:
    # equery d app-misc/cl-nettools-meta
     * These packages depend on app-misc/cl-nettools-meta:
    app-misc/cld-meta-11.6 (!calculate_nonettools ? app-misc/cl-nettools-meta)
    
  3. Отредактируем /etc/make.conf:
    CALCULATE="nonettools" 
    
  4. Переустановим мета-пакет с новым флагом:
    emerge -1N app-misc/cld-meta
    
    Обратите внимание, флаг "N" нужен для того, чтобы измененные USE-флаги учитывались, флаг "1", чтобы пакет не попал в world-файл.
  5. Удалим Skype:
    emerge -C net-im/skype
    

Обратите внимание, значение "nonettools" USE флага CALCULATE отключает из зависимостей все программы мета-пакета app-misc/cl-nettools-meta. Увидеть программы, исключенные из зависимостей и, возможно, удалить их вы можете, выполнив emerge -ac.

Скорей всего вы увидите в списке используемые вами программы. Перенесите необходимые вам программы, которые вы хотите оставить в системе в world:

echo app-text/wgetpaste >> /var/lib/portage/world
echo net-analyzer/nmap >> /var/lib/portage/world

и т.д.

Спасибо!