9. Системные утилиты

Управление ПО

Поиск программ

Для быстрого поиска программ служит программа eix (пакет app-portage/eix), имеющая собственную базу данных для ускорения поиска.

Пример:

eix mozilla
eix -S browser

Отобразить список установленных пакетов можно при помощи команды:

qlist -I

Отобразить список установленных пакетов с версией:

qlist -Iv

Отобразить список установленных пакетов с версией и USE флагами:

qlist -Uv

Если вы не нашли интересующей вас программы в дереве портежей, вы можете поискать ее в оверлеях. Для поиска воспользуйтесь сайтом http://gpo.zugaina.org. Название оверлея будет справа в нижней строке результата поиска.
Прежде чем установить программу, найденную на сайте, подключите оверлей в вашу систему, выполнив:

layman -a <оверлей>

Список оверлеев можно получить командой:
layman -L

Установка и удаление программ

Для установки и удаления программ используйте программу emerge (sys-apps/portage).

emerge kde-base/kgoldrunner
emerge -C mc

В приведенном примере будет установлена игра kgoldrunner и удалена программа mc (Midnight Commander).

В случае если программа замаскирована, вы можете воспользоваться опцией --autounmask для вызова справки по размаскировке пакетов.

Пример установки замаскированной версии пакета:

emerge --autounmask =www-client/opera-11.10.2092

В конце перечня пакетов, подлежащих установке, вы увидите следующие рекомендации:

The following keyword changes are necessary to proceed:
#required by =www-client/opera-11.10.2092 (argument)
=www-client/opera-11.10.2092 ~amd64

Поместите текст под фразой "The following keyword changes are necessary to proceed:" в файл /etc/portage/package.keywords/custom (комментарии можно опустить).

echo "=www-client/opera-11.10.2092 ~amd64" >> /etc/portage/package.keywords/custom

Есть и более простой способ подтверждения размаскировки - использовать dispatch-conf (см. ниже).

Исправление зависимостей

Когда вы вносите изменения в установленные пакеты, может наступить случай нарушения зависимостей. Чтобы выявить и исправить такие нарушения, мы рекомендуем после обновления или удаления какой-либо программы выполнять команду revdep-rebuild.

Пример:

revdep-rebuild

Настройки программ

Во время обновления программ, для предотвращения ошибок, новые файлы настроек создаются с суффиксом ._cfg0000_ . Для некоторых сервисов важно после обновления заменять старые настройки новыми. Иногда старые настройки могут привести в нерабочее состояние установленную программу, например, старые скрипты запуска сервисов, расположенные в директории /etc/init.d.
Для своевременной замены конфигурационных файлов используйте программу dispatch-conf.

Пример:

dispatch-conf

После запуска программа будет показывать отличия новой версии каждого конфигурационного файла от старого. Обратите внимание: если настройки файла были модифицированы Calculate (вы увидите соответствующий комментарий), заменять эти настройки не следует - нажмите клавишу z для пропуска изменений. Для замены файла новым нажмите клавишу u.

Управление сервисами

Для добавления и удаления скрипта из уровня запуска служит скрипт rc-update.

Примеры:

# вывести список сервисов
rc-update show
# добавить numlock на уровень запуска default
rc-update add numlock default
# перестать запускать numlock
rc-update del numlock

Показать запущенные сервисы можно командой:

rc-status --all

Содержимое пакета

Получить перечень файлов установленного пакета, а также узнать, какому пакету принадлежит файл в системе, можно при помощи программ qlist и qfile (app-portage/portage-utils).

Пример:

# список файлов пакета app-portage/portage-utils
qlist -ae app-portage/portage-utils
# узнать пакет в который входит qfile
qfile qfile

Вам также может пригодиться программка which (sys-apps/which), показывающая путь к файлу.

Пример:

# which equery
/usr/bin/equery

Обеспечение безопасности

Постоянное обновление системы - одно из важнейших мероприятий по обеспечению безопасности.
Можно следить за обновлениями посредством GLSA - glsa-check (app-portage/gentoolkit).

Просмотреть пакеты, которые необходимо переустановить:

glsa-check -p $(glsa-check -t all)

Переустановка уязвимых пакетов:

glsa-check -f $(glsa-check -t all)

Не помешает после этой операции проверить зависимости, см. выше Исправление зависимостей.

Полезное

Зависимости пакетов

Получить информацию о зависимостях пакетов можно с помощью программы qdepends (app-portage/portage-utils).

Пример:

qdepends -Q python

Экономия трафика

Если у Вас дорогой или лимитированный трафик, то можно сэкономить с помощью пакета getdelta.

Для его установки, если у вас архитектура i686, выполните:

ACCEPT_KEYWORDS=~x86 emerge getdelta

если x86_64, то:

ACCEPT_KEYWORDS=~amd64 emerge getdelta

Необходимо добавить в файл /etc/make.conf строку:

FETCHCOMMAND="/usr/bin/getdelta.sh \${URI} \${DISTDIR}/\${FILE}" 

Далее все действия не отличаются от обычной установки программ, с той лишь разницей, что качаются дельты исходников, что значительно сокращает объем необходимого на обновление трафика.

Чистка distfiles

С течением времени может накопиться достаточно большое количество разных версий пакетов программ. При нехватке дискового пространства вы можете удалить пакеты с устаревшими версиями программ, для этого воспользуйтесь программой eclean-dist (app-portage/gentoolkit):

eclean-dist

Дефрагментация дисков

Современные файловые системы, используемые в Linux, минимизируют фрагментацию дисков, поэтому существует достаточно небольшое количество программ для дефрагментации.

Для файловой системы XFS - пакет sys-fs/xfsdump (утилиты для дефрагментации и настройки XFS).

Пример команды для просмотра текущей фрагментации диска:

xfs_db -r -c frag /dev/sdaХ

где Х - номер раздела.

Пример команды для дефрагментирования:

xfs_fsr -v /dev/sdaX

Проверка жесткого диска

Для проверки жесткого диска на битые секторы используйте утилиту badblocks.

badblocks -svn -o /sda_log.txt -b 4096 -c 256 -p 2 /dev/sda

Спасибо!