Как с помощью yum скачать пакет, не устанавливая его в системе?

Система: Red Hat Enterprise Linux 5

Решение:

Убедитесь, что пакет yum-downloadonly установлен в системе. Если нет, то этот пакет доступен в Red Hat Network (RHN).  Чтобы установить пакет yum-downloadonly в системе, зарегистрированной в Red Hat Network, выполните команду:

yum-downloadonly — это плагин, который может быть использован для загрузки пакетов из RHN или репозиториев yum, без установки их в системе. Проверьте содержимое файла /etc/yum/pluginconf.d/downloadonly.conf и убедитесь, что плагин разрешён:

Теперь, для примера, выполните следующую команду, которая загружает последнюю версию vsftpd, если она доступна, без установки в системе:

По-умолчанию, пакет сохраняется в каталог /var/cache/yum/<repo>/packages/. В нашем случае <repo> это rhel-i386-server-5. Чтобы сохранить пакет в другом каталоге, укажите параметр --downloaddir вместе с --downloadonly. Например:

В результате последняя доступная версия пакета vsftpd, если он не установлен в системе, будет загружена и сохранена в каталоге /tmp.

Чтобы скачать пакет установленный в системе, используйте команду yumdownloader. Например, в системе установлен пакет httpd-2.2.3-22.el5:

Чтобы скачать его, воспользуйтесь командой yumdownloader:

Пакет сохраняется в текущем каталоге. Чтобы указать другое место, добавьте ключ --destdir с указанием нужного каталога. За подробной информацией о возможностях и параметрах команды обращайтесь к странице руководства, доступной по команде man yumdownloader.

Прим.пер.: утилита yumdownloader входит в пакет yum-utils.

Как активировать маскарад в iptables?

Приведённые здесь инструкции активируют функциональность маскарада, но не обеспечивают полной настройки пакетного фильтра.

В нашем примере, мы будем использовать устройство eth0. Следующая команда iptables добавляет цель MASQUERADE в послемаршрутизационную цепь обработки пакетов (т.е. непосредственно включает маскарад):

После этого, нужно отредактировать файл /etc/sysctl.conf, чтобы настроить продвижение пакетов. Для этого измените строку:

на:

Если такой строки в файле нет, просто добавьте вышеприведённую строку, которая устанавливает значение параметра ip_forward равным 1 (единице). После этого, чтобы пересчитать файл конфигурации sysctl, запустите команду:

Почему команда ls добавляет точку (.) или плюс (+) к полю прав доступа некоторых файлов?

Система: Fedora 11

Пример:

Это новая функциональность, добавленная в последние версии пакета coreutils, который включён в дистрибутив Fedora 11. Ответ на этот вопрос содержит страница информации команды ls. Посмотреть её можно командой # info ls. Вот выдержка оттуда:

За битами прав доступа следует один символ, который указывает на то, используется ли альтернативный метод контроля доступа, такой, например, как списки контроля доступа. Если этот символ отсутствует, это означает, что альтернативные методы не используется. Если же отображается какой-либо печатный символ — значит используется.

Команда GNU ls использует символ точки (.) для обозначения, что у файла есть только контекст безопасности SELinux. Если у файла присутствуют и другие методы контроля доступа в любой комбинации, он помечается символом плюс (+).

Как определить, выполняется ли текущая система в виртуальной машине?

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

Xen

VMWare

QEMU или KVM

Кроме того, можно также использовать команду dmidecode, для получения информации из системного BIOS. Например:

VMWare:

QEMU или KVM:

Как получить дополнительную информацию о производительности дисков?

Команда iostat предоставляет статистику операций ввода/вывода, но иногда администраторам требуется более детальная информация. В таких случаях может оказаться полезным файл /proc/diskstats. Ниже приведён пример выполнения команды cat /proc/diskstats:

Рассмотрим приведённый вывод:

Первые две колонки — это старший и младший номер устройства.

Третья колонка содержит имя устройства, после которого идут ещё 11 колонок.

Поле 1: количество выполненных операций чтения. Это общее число успешно завершённых операций чтения.

Поле 2: количество объединённых операций чтения.

Поле 3: количество считанных секторов. Это общее число успешно прочитанных секторов.

Поле 4: количество миллисекунд, затраченных на чтение. Это общее число миллисекунд, затраченных на операции чтения (измеряется от вызова __make_request() до end_that_request_last()).

Поле 5: количество выполненных операций записи. Это общее число успешно завершённых операций записи.

Поле 6: количество объединённых операций записи. Последовательные операции чтения и записи могут объединяться для повышения эффективности. Потому две операции считывания по 4K, могут стать одной операцией по считыванию 8K непосредственно перед передачей запроса диску. Таким образом, эти операции будут посчитаны (и выполнены) как одна операция ввода/вывода. Это поле показывает насколько часто происходит такая ситуация.

Поле 7: количество записанных секторов. Это общее число успешно записанных секторов.

Поле 8: количество миллисекунд, затраченных на запись. Это общее число миллисекунд, затраченных на операции записи (измеряется от вызова __make_request() до end_that_request_last()).

Поле 9: количество выполняемых операций ввода/вывода в текущий момент. Единственное поле, значение которого может уменьшаться до нуля. Увеличивается при передаче запросов соответствующей request_queue_t и уменьшается при их завершении.

Поле 10: количество миллисекунд, затраченных на выполнение операций ввода/вывода. Это значение возрастает, пока значение поля 9 не равно нулю.

Поле 11: взвешенное число миллисекунд, затраченных на выполнение операций ввода/вывода. При каждом начале, завершении,или объединении операций ввода/вывода, или при считывании этой статистики, это поле увеличивается на число выполняемых в текущий момент операций ввода/вывода (поле 9), умноженное на количество миллисекунд, затраченных на выполнение операций ввода/вывода, с момента последнего обновления данного поля. Это позволяет получить простую статистику как времени выполнения операций ввода/вывода, так и количества незавершённых операций, число которых может возрастать.

Прим.пер.: здесь рассматривается формат записи, относящийся к диску, не разделу. Для разделов представлены только 4 поля, аналоги описанных полей 1,3,5,7. Начиная с ядра 2.6.25 у разделов появился полный набор полей статистики.

Как настроить дополнительные маршруты в Red Hat Enterprise Linux?

Система: Red Hat Enterprise Linux 3.5, 4 and 5

Чтобы задать статические маршруты, используются файлы /etc/sysconfig/network-scripts/route-interface. Они считываются при инициализации сетевых интерфейсов (ниже описывается синтаксис файлов).

Существуют два варианта синтаксиса этих файлов. Первый — это аргументы к команде ip, второй состоит из директив “сеть/маска/шлюз”.

Синтаксис 1:

Если используется синтаксис с аргументами команды ip, скрипт ifup-route для каждой строки из файла выполняет команду ip route add. Строка в файле должна содержать все необходимые параметры для добавления маршрута. Например, чтобы задать маршрут по-умолчанию, файл должен содержать следующее:

В приведённом примере, X.X.X.X — это IP-адрес шлюза. Вторая строка задаёт другой статический маршрут, где X.X.X.X это тоже IP-адрес шлюза. Каждая строка в файле обрабатывается как отдельный маршрут.

Синтаксис 2:

Альтернативный вариант синтаксиса следующий:

Где X.X.X.X это IP-адрес шлюза. Следующие записи должны быть последовательно пронумерованы (например ADDRESS1=, NETMASK1=, GATEWAY1=). Обратите внимание, что нумерация должна идти последовательно без пропусков (после 0 должна идти 1, а не любое число, большее 0).

Как создать файловую систему ext3, оптимизированную для работы на RAID и приложений с прямым вводом/выводом?

Система: Red Hat Enterprise Linux 3, Red Hat Enterprise Linux 4, Red Hat Enterprise Linux 5

Решение:

RAID уровней 0, 4, 5 и 6 для записи на разные диски, разбивает данные на большие блоки — “полосы”, обычно по 64KB. Выравнивание разделов и файловых систем в соответствии с размером этих полос может повысить производительность, в частности, программ, которые используют прямой ввод/вывод.

Программа fdisk создаёт разделы, выровненные по границам цилиндров, в соответствии с исторической геометрией “цилиндр/дорожка/сектор” (cylinder/head/sector, C/H/S). Это позволяет обеспечить максимальную совместимость с другими операционными системами и утилитами. К сожалению, такая геометрия обычно не соответствует размеру полосы RAID-массива. Если доступ к RAID будет осуществляться только операционными системами и утилитами, полностью поддерживающими логическую адресацию блоков (Logical Block Addressing, LBA), то необходимость в выравнивании по геометрии C/H/S отпадает, а с помощью программы parted можно выровнять разделы под полосы RAID-массива.

Внимание: все приводимые здесь примеры уничтожают существующие разделы и файловые системы. Применяйте их только для создания новых файловых систем.

Пример 1: выровненный по границе цилиндра раздел, созданный утилитой fdisk на диске /dev/sdb.

Parted показывает, что fdisk создал раздел, начиная с 63-сектора (32,256 байта) тома, что совместимо с геометрией C/H/S, но не оптимально для RAID. Поскольку RAID использует полосы размером 64KB, начало раздела должно быть сдвинуто на сектор 128. Начинать раздел с нулевого сектора нельзя, поскольку будет перезаписана таблица разделов. Большинство RAID-массивов используют сектора размером 512 байт, но возможны сектора и большего размера.

Примечание: По-умолчанию, parted использует в единицах размера легко читаемые сокращения системы СИ (степени числа 10). Поскольку они редко совпадают со степенями числа 2, parted нужно перевести в режим работы с секторами (unit s), перед тем как проверять или задавать выравнивание разделов по секторам.

Пример 2: удалите раздел /dev/sdb1 и создайте его заново, начиная с сектора 128.

Примечание: Команды move и resize утилиты parted пытаются сохранить содержимое файловой системы раздела. Если в разделе нет файловой системы, то эти команды откажутся работать.

Выровненная файловая система ext3 может быть создана на выровненном разделе или на логическом томе, состоящем из выровненных физических томов. LVM не влияет на выравнивание, если размер физического экстента, превосходит размер блока RAID. Обычно размер RAID блока равен 64KB, а размер физического экстента — 4MB.

Команда mke2fs принимает параметр stride, который позволяет оптимизировать размещение метаданных файловой системы для RAID-массивов. Параметр задаётся в блоках файловой системы, которые в большинстве случаев равняются 4KB. Чтобы избежать возможных неточностей и гарантировать правильность вычислений, лучше всего его задать явно.

Пример 3: создайте файловую систему ext3 на /dev/sdb1, оптимизированную для RAID с размером блока 64KB.

Как определить и настроить вероятность с которой процесс будет завершён при нехватке оперативной памяти

Ядро Red Hat Enterprise Linux 5.2 создает 2 файла для каждого процесса, которые позволяют управлять вероятностью, с которой этот процесс будет завершён, когда система будет вынуждена заврешать процессы из-за нехватки оперативной памяти (out-of-memory, OOM). Это файлы:

  • /proc/[pid]/oom_adj — используется для изменения “OOM-счёта” (OOM score), который определяет вероятность завершения процесса при нехватке оперативной памяти. Чем больше значение OOM-счёта, тем больше вероятность того, что процесс будет завершён подсистемой oomkill. Допустимые значения находятся в промежутке от -17 до 15; обратите внимание, что OOM-счёт равный -17 означает, что [pid] не будет завершён при нехватке памяти.

    Чтобы задать OOM-счёт, просто выполните команду echo значение с выводом в файл /proc/[pid]/oom_adj. Например, чтобы установить OOM-счёт равный 15 для процесса 1111, выполните:

    Учтите, что OOM-счёт наследуется процессом-потомком от родительского процесса при использовании системных вызовов семейства fork().

  • /proc/[pid]/oom_score — содержит текущий OOM-счёт для данного процесса. Используйте команду cat чтобы посмотреть текущий OOM-счёт для процесса с номером [pid]. Например, чтобы узнать текущий OOM-счёт для процесса 1111, выполните:

Прим. пер.: Значение в файле oom_score — динамически вычисляемое, оно не равняется значению, которое передаётся в файл oom_adj. Значение, передаваемое в файл oom_adj, меняет вероятность в большую или меньшую сторону, а не задаёт абсолютное значение.

Как выполнить минимальную установку Red Hat Enterprise Linux 5 с помощью Anaconda?

Система: Red Hat Enterprise Linux 5

Проблема

Минимальная установка Red Hat Enterprise Linux необходима для некоторых продуктов Red Hat, таких как Red Hat Network Satellite (RHN Satellite). Одной из наиболее распространённых причин неудачной установки RHN Satellite, является установка на “не-минимальную” (или, “не-@base“) систему Red Hat Enterprise Linux.

Решение

Следующие шаги описывают порядок действий для установки минимальной системы Red Hat Enterprise Linux 5 с помощью графического режима утилиты установки Anaconda:

  1. Загрузитесь с установочного носителя и начните установку.
  2. Когда вы дойдёте до экрана выбора пакетов (package customization), выберите опцию “Customize now” и нажмите “Next.”
  3. Следующий экран будет содержать несколько категорий, в каждой из которых находятся разные группы пакетов. Пройдите по всем категориям, снимая отметки со всех групп, кроме группы ‘Base’ в категории ‘Base’.
  4. Нажмите “Next” чтобы продолжить процесс установки.

После завершение установки, система должна автоматически загрузиться в уровень выполнения 3. Зарегистрируйтесь в системе как пользователь root и просмотрите файл /root/anaconda-ks.cfg. Если @base это единственная присутствующая в нём группа пакетов, то система установлена в минимальном варианте.

Как определить архитектуру установленного пакета?

По-умолчанию, если вы сделаете запрос командой rpm -q, архитектура пакета отображаться не будет. Чтобы узнать архитектуру пакета, используйте команду rpm с такими параметрами:

Замените <имя пакета> названием пакета, архитектуру которого нужно узнать. Если вы не знаете точного имени пакета, то та же опция --queryformat может использоваться с командой rpm -qa, а вывод пропустите через фильтр grep, чтобы найти все пакеты, соответствующие шаблону:

Чтобы вывод команды rpm всегда включал архитектуру пакета, отредактируйте файл /etc/rpm/macros.prelink и добавьте в конце следующую строку: