https://wiki.archlinux.org/api.php?action=feedcontributions&user=Irrlicht&feedformat=atomArchWiki - User contributions [en]2024-03-29T05:09:39ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=ECryptfs_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=125082ECryptfs (Русский)2010-12-12T21:06:48Z<p>Irrlicht: Created page with "Category:Security (Русский) Category:File systems (Русский) Category:HOWTOs (Русский) {{i18n|Шифрование системы с помощь..."</p>
<hr />
<div>[[Category:Security (Русский)]]<br />
[[Category:File systems (Русский)]]<br />
[[Category:HOWTOs (Русский)]]<br />
{{i18n|Шифрование системы с помощью eCryptfs}}<br />
<br />
= Введение =<br />
В статье описывается базовое использование [https://launchpad.net/ecryptfs eCryptfs]. Статья проведёт вас через процесс установки защифрованной домашней директории,<br />
в которой вы можете хранить личные/секретные данные. Если вы не уверены, нужно ли вам шифрование, прочтите сначала [[System_Encryption_with_LUKS_for_dm-crypt|dm-crypt]].<br />
<br />
Реализация eCryptfs отличается от реализации dm-crypt, которая шифрует блочное устройство полностью, а eCryptfs шифрует вайловую систему - тоесть каждый файл поотдельности. О сравнении двух методов шифрования можно прочитать на [http://ecryptfs.sourceforge.net/ecryptfs-faq.html#compare].<br />
<br />
Если коротко, то eCryptfs не нуждается в резервировании места на диске(создание специального раздела). eCryptfs может быть смонтирован в любую директорию и шифровать её содержимое(например домашняя директория! пользователя или любая директория в сети). Все метаданные для расшифровки хранятся в заголовках файлов, поэтому зашифрованые файлы можно перемещать, копировать, делать резервные копии. Есть и другие плюсы данного метода, как и минусы. Самый большой минус - eCryptfs не может шифровать весь раздел/жёсткий диск. По этому eCryptfs не может зашифровать раздел swap(но вы можете комбинировать eCryptfs и dm-crypt).<br />
<br />
<br />
= Основы =<br />
eCryptfs входит в ядро с версии 2.6.19, но для работы с ней, вам нужны дополнительные инструменты: [http://aur.archlinux.org/packages.php?ID=8397 ecryptfs-utils] и [http://aur.archlinux.org/packages.php?ID=6895 keyutils].<br />
<br />
После установки загрузите модуль ядра:<br />
# modprobe ecryptfs<br />
<br />
Пакет ecryptfs-utils нужен для управления ключами для доступа к зашифрованым данным. Некоторые скрипы из этого пакета помогут автоматизировать весь процесс (''ecryptfs-setup-private'') или помут в комбинировании eCryptfs и dm-crypt для шифрования раздела swap. Мы не будем использовать эти скрипты, а сделаем всё в ручном режиме для лучшего понимания принципа работы данного метода.<br />
<br />
Прежде чем мы начнём, я советую вам прочитать документацию по eCryptfs(man).<br />
<br />
<br />
== Установка ==<br />
Для начала создайте директории, которые вы хотите зашифровать. В этом примере мы назовём директорию - Private.<br />
$ su -<br />
# mkdir -m 700 /home/username/.Private<br />
# mkdir -m 500 /home/username/Private<br />
# chown username:username /home/username/{.Private,Private}<br />
<br />
В сумме получается:<br />
* Зашифрованые данные будут храниться в ~/.Private<br />
* Когда эта директория смонтированна, данные будут доступны в ~/Private<br />
** Когда директория не смонтированна, данные в неё не могут быть записаны<br />
** Когда директория смонтированна, права доступа к ней такие-же как и у ~/.Private<br />
<br />
<br />
eCryptfs может быть смонтированны поверх ~/Private.<br />
# mount -t ecryptfs /home/username/.Private /home/username/Private<br />
<br />
Вам нужно будет ввести пароль и выбрать некоторые опции с которыми директория будет монтироватся в будущем. Так-же вы можете задать несколько различных ключей для шифрования различных данных(об этом ниже). Для краткости мы опишем процесс с одним ключём. <br />
Пример:<br />
Key type: passphrase<br />
Passphrase: ThisIsAVeryWeakPassphrase<br />
Cypher: aes<br />
Key byte: 16<br />
Plaintext passtrough: no<br />
Filename encryption: no<br />
Add signature to cache: yes <br />
<br />
В сумме получается:<br />
* Ваш ключ это ваша так называемая '''mount passphrase''' хранится в виде хэша+соль.<br />
** По теминологии eCryptfs этот ключ называется "file encryption key, encryption key", или '''fekek'''.<br />
* eCryptfs поддерживает несколько методов шифрования AES, blowfish, twofish...<br />
* <br />
* Plaintext passtrough разрешает сохранять и работать с '''не зашифрованными данными''' внутри ~/.Private.<br />
* Шифрование файловой ситемы доступно с версии ядра 2.6.29.<br />
** По теминологии eCryptfs этот ключ, который служит для шифрования имён файлов называется "filename encryption key" или '''fnek'''<br />
* Сигнатура ключа(ей) хранится в {{Filename|/root/.ecryptfs/sig-cache.txt}}.<br />
<br />
<br />
Т.к. мы хотим монтировать директории без прав супер-пользователя, нам нужно переместить директорию с конфигурацией eCryptfs в нашу домашнюю директорию и сделать нас её владельцем:<br />
# mv /root/.ecryptfs /home/username<br />
# chown username:username /home/username/.ecryptfs<br />
<br />
<br />
Установка на этом законченна и директория смонтирована. Вы можете размещать любые файлы в ~/Private и они будут прозрачно зашифрованы. Теперь отмонтируйте директорию и если вы попробуете прочитать содетжимое файлов, вы увидете, что они зашифрованы. Как получить к ним доступ? Смотрите следующий шаг.<br />
<br />
<br />
== Монтирование ==<br />
Когда вам снова понадобятся ваши файлы, вы можете повторить процедуру монтирования описанную выше ислпользую тот-же ключ и опции.<br />
<br />
Каждый раз проделывать эти операции может быть утомительно. Вариант номер один: передать все опции команде монтирования кроме ключа.<br />
<br />
$ sudo mount -t ecryptfs /home/username/.Private /home/username/Private -o ecryptfs_cipher=aes,ecryptfs_key_bytes=16,key=passphrase<br />
<br />
Вариант номер два(рекомендован): добавить строку в '''{{Filename|/etc/fstab}}''':<br />
<br />
# eCryptfs mount points<br />
/home/username/.Private /home/username/Private ecryptfs rw,user,noauto,ecryptfs_sig=XY,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecrypfs_unlink_sigs 0 0<br />
<br />
<br />
В сумме получается:<br />
* You will notice that we defined the '''user''' option, it enables you to mount the directory as a user<br />
* Notice the '''ecryptfs_sig''' option, replace ''XY'' with your own key signature (as seen in the '''mtab''' line earlier and in {{Filename|sig-cache.txt}})<br />
* If you enabled file name encryption then pass an additional mount option: '''ecryptfs_fnek_sig'''=''XY'', where ''XY'' is the same signature you provide with the '''ecryptfs_sig''' option.<br />
* Last option '''ecrypfs_unlink_sigs''' ensures that your keyring is cleared every time the directory is un-mounted<br />
<br />
<br />
Since your key was deleted from the kernel keyring when you un-mounted, in order to mount you need to insert it into the keyring again. You can use the '''ecryptfs-add-passphrase''' utility or the '''ecryptfs-manager''' to do it:<br />
<br />
When the key is inserted you can mount the directory: <br />
$ ecryptfs-add-passphrase<br />
Passphrase: ThisIsAVeryWeakPassphrase<br />
<br />
$ mount -i /home/username/Private<br />
<br />
You will notice that we used the '''{{Codeline|-i}}''' option this time. It disables invoking the mount helper. Speaking of which, using {{Codeline|-i}} by default mounts with: '''nosuid, noexec''' and '''nodev'''. If you want to have at least executable files in your private directory you can add the '''exec''' option to the fstab line.<br />
<br />
This would be a good place to mention the '''keyctl''' utility from the (earlier installed) ''keyutils'' package. It can be used for any advanced key management tasks. Following examples show how to list your keyring contents and how to clear them:<br />
$ keyctl list @u<br />
$ keyctl clear @u<br />
<br />
== Usage ==<br />
Besides using your private directory as storage for sensitive files, and private data, you can also use it to protect application data. Take ''Firefox'' for an example, not only does it have an internal password manager but the browsing history and cache can also be sensitive. Protecting it is easy:<br />
$ mv ~/.mozilla ~/Private/mozilla<br />
$ ln -s ~/Private/mozilla ~/.mozilla<br />
<br />
== Removal ==<br />
If you want to move a file out of the private directory just move it to it's new destination while ~/Private is mounted. Also note that there are no special steps involved if you want to remove your private directory. Make sure it is un-mounted and delete ~/.Private, along with all the files.<br />
<br />
== Backup ==<br />
Setup explained here separates the directory with encrypted data from the mount point, so the encrypted data is available for backup at any time. With an overlay mount (i.e. ''~/Secret'' mounted over ''~/Secret'') the lower, encrypted, data is harder to get to. Today when cronjobs and other automation software do automatic backups the risk of leaking your sensitive data is higher.<br />
<br />
We explained earlier that all cryptographic metadata is stored in the headers of files. You can easily do backups, or incremental backups, of your '''~/.Private''' directory, treating it like any other directory.<br />
<br />
= Advanced =<br />
This wiki article covers only the basic setup of a private encrypted directory. There is however another article about eCryptfs on Arch Linux, which covers encryption of your entire $HOME and encrypting swap space without breaking hibernation (suspend to disk).<br />
<br />
That article includes many more steps (i.e. using PAM modules and automatic mounting) and the author was opposed to replicating it here, because there is just no single "right" way to do it. The author proposes some solutions and discusses the security implications, but they are his solutions and as such might not be the best nor are they endorsed by the eCryptfs project in any way.<br />
<br />
Article: [http://sysphere.org/~anrxc/j/articles/ecryptfs/index.html eCryptfs and $HOME] by Adrian C. (anrxc).<br />
<br />
== PAM Mount ==<br />
The above "''eCryptfs and $HOME''" article uses a shell init file to mount the home directory. The same can be done using [http://aur.archlinux.org/packages.php?ID=1976 pam_mount] with the added benefit that home is un-mounted when all sessions are logged out. As eCryptfs needs the {{Codeline|-i}} switch, the ''lclmount'' setting will need to be changed. I use the following in {{Filename|/etc/security/pam_mount.conf.xml}}:<br />
<lclmount>mount -i %(VOLUME) "%(before=\"-o\" OPTIONS)"</lclmount><br />
<br />
Remember to also set the volume definition (preferably to {{Filename|~/.pam_mount.conf.xml}} and uncomment luserconf).<br />
<pam_mount><br />
<volume noroot="1" fstype="ecryptfs" path="/home/user/.Private" mountpoint="/home/user"/><br />
</pam_mount><br />
<br />
''noroot'' is needed (at least in my configuration) because the encryption key will be added to the user's keyring.<br />
<br />
<br />
To avoid wasting time needlessly unwrapping the passphrase you can create a script that will check ''pmvarrun'' to see the number of open sessions:<br />
#!/bin/sh<br />
#<br />
# /usr/local/bin/doecryptfs<br />
<br />
exit $(/usr/sbin/pmvarrun -u$PAM_USER -o0)<br />
<br />
With the following line added before the eCryptfs unwrap module in your PAM stack:<br />
auth [success=ignore default=1] pam_exec.so quiet /usr/local/bin/doecryptfs<br />
auth required pam_ecryptfs.so unwrap<br />
The article suggests adding these to {{Filename|/etc/pam.d/login}}, but the changes will need to be added to all other places you login, such as {{Filename|/etc/pam.d/kde}}.</div>Irrlichthttps://wiki.archlinux.org/index.php?title=LVM_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124591LVM (Русский)2010-12-09T16:24:23Z<p>Irrlicht: /* Snapshots */</p>
<hr />
<div>[[Category:Getting and installing Arch (English)]]<br />
[[Category:File systems (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n|LVM}}<br />
<br />
{{translateme}}<br />
=Введение=<br />
<br />
Менеджер логических томов (англ. Logical Volume Manager) — менеджер логических томов. В отличие от разделов жёсткого диска, размеры логических томов можно легко менять.<br />
<br />
Устройство LVM:<br />
<br />
<br />
* '''Физический том(англ. physical volume)''': Раздел на жёстком диске или жёсткий диск на котором создаются логические тома.<br />
* '''Группа томов (англ. volume group)''': Набор физических томов в один объект. Содержат логические тома.Группу томов можно представить как жёсткие диски.<br />
* '''Логический том (англ. logical volume)''': аналогичен разделу (hda1, sdа1) на не-LVM системах. Так же, как и на них, представляется как блочное устройство и может нести файловую систему.<br />
* '''Физический диапазон (англ. physical extent) ''': Небольшая часть диска(обычно имеет размер 4MB), которая может быть добавлена к логическому тому. Может быть добавлен к любому разделу.<br />
* '''Логические диапазоны (англ. logical extent)''': диапазоны, на которые разбивается логический том. Их объём одинаков по всей группе томов.<br />
<br />
<br />
<br />
Некоторые возможности LVM:<br />
<br />
* использование любого количества жёстких дисков или их разделов как один большой раздел.<br />
* логические тома могут быть "размазаны" на несколько жёстких дисков. Максимальный размер равен объёму всех жёстких дисков.<br />
* изменение/создание/удаление логических томов в любом виде. То есть не зависит от физического расположения тома.<br />
* изменение/создание/удаление логических томов и групп томов в режиме "online"(Внимание: не все файловые системы, поддерживают изменение размере в режиме "online")<br />
* динамическое увеличение размера логических томов по мере их наполнения. Увеличение размера производится пользователем, некоторые файловые системы поддерживают изменение размера в режиме "online".<br />
<br />
<br />
<br />
Пример:<br />
'''Жёсткий диск'''<br />
<br />
Disk1 (/dev/sda):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br />
|Partition1 50GB (Physical volume) |Partition2 80GB (Physical volume) |<br />
|/dev/sda1 |/dev/sda2 |<br />
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |<br />
<br />
Disk2 (/dev/sdb):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br />
|Partition1 120GB (Physical volume) |<br />
|/dev/sdb1 |<br />
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _|<br />
<br />
'''Логические тома'''<br />
<br />
Volume Group1 (/dev/MyStorage/ = /dev/sda1 + /dev/sda2 + /dev/sdb1):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ <br />
|Logical volume1 15GB |Logical volume2 35GB |Logical volume3 200GB |<br />
|/dev/MyStorage/rootvol|/dev/MyStorage/homevol |/dev/MyStorage/mediavol |<br />
|_ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |<br />
<br />
В сумме получается: объединение всего доступного места в одну группу томов(LV) и более гибкий контроль над разделами(логическими томами)<br />
<br />
=Установка=<br />
<br />
Перед началом установки нужно загрузить модуль ядра:<br />
# modprobe dm-mod<br />
Если вы уже установили Arch Linux и хотите попробовать LVM в действии, перейдите сразу к [[Lvm#Partition_disks|partition disks]].<br />
<br />
====Установка Arch Linux на LVM====<br />
Перед запуском /arch/setup нужно разметить жёсткий диск. Например с помощью {{Codeline|cfdisk}}. Загрузчик grub версии ниже 1.0 не поддерживает загрузку с томов LVM, поэтому раздел {{Filename|/boot}} должен быть расположен на загрузочном разделе(100МБ должно хватить) либо используйте lilo или grub версии 1.95 и выше. <br />
<br />
====Разметка дисков====<br />
<br />
Для начала нужно создать раздел для LVM. Тип файловой системы должен быть 'Linux LVM' поэтому при разметке используйте id 0x8e (тип файловой системы: 8e).<br />
Для работы LVM требует наличие одного раздела типа 'Linux LVM' на каждом жёстком диске, который вы хотите использовать с LVM. Логические тома находятся внутри этих разделов, поэтому задайте им соответствующий размер. Если вы предполагаете не создавать других разделов на этих дисках - используйте всё доступное место на каждом диске.<br />
<br />
<br />
{{Warning|/boot не может находиться внутри LVM раздела т.к. grub (версии<1.95) не имеет поддержки загрузки с LVM.}}<br />
<br />
{{Tip|Все разделы LVM на всех дисках могут быть представлены в виде одного большого диска.}}<br />
<br />
====Создание физических томов(PV)====<br />
Произведите инициализацию разделов чтобы LVM мог использовать их. Используйте {{Codeline|fdisk -l}} чтобы найти разделы с файловой системой 'Linux LVM' и создайте в них физические тома:<br />
# pvcreate /dev/sda2<br />
Замените {{Filename|/dev/sda2}} на имена разделов на вашей системе. Эта команда поместит заголовок на каждый раздел. Теперь он может быть использован LVM.<br />
Отобразить все разделы, которые LVM может использовать, можно с помощью:<br />
# pvdisplay<br />
<br />
====Создание группы логических томов====<br />
Следующий шаг - это создание логических томов внутри физических томов. <br />
Выполните следующую команду на каждом физическом томе:<br />
# vgcreate VolGroup00 /dev/sda2<br />
# vgextend VolGroup00 /dev/sdb1<br />
Метку "VolGroup00" можно заменить на любую другую.<br />
Отобразить все доступные логические тома можно с помощью:<br />
# vgdisplay<br />
<br />
{{Note|Можно создать несколько логических групп, но тогда они будут видны в системе в виде нескольких дисков.}}<br />
<br />
====Создание логических томов====<br />
Теперь нужно создать логические тома внутри группы томов. Следующая команда создаст логический том внутри "VolGroup00" с размером 10GB и меткой "lvolhome" <br />
# lvcreate -L 10G VolGroup00 -n lvolhome<br />
Этот том будет доступен позже как устойство {{Filename|/dev/mapper/Volgroup00-lvolhome}} или {{Filename|/dev/VolGroup00/lvolhome}}.<br />
Как и в случае в логическими томами, метка логического тома может быть выбрана на ваше усмотрение.<br />
<br />
Чтобы создать раздел swap внутри тома, нужен дополнительный параметр: <br />
# lvcreate -C y -L 10G VolGroup00 -n lvolswap<br />
{{Codeline|-C y}} создаст монолитный раздел, то есть раздел swap будет создан на одном диске и не будет "размазан" на несколько устройств или физических расширений. <br />
<br />
Если вы хотите использовать всё оставшееся свободное место внутри группы томов, выполните:<br />
# lvcreate -l +100%FREE VolGroup00 -n lvolmedia<br />
<br />
Логические тома можно отобразить командой:<br />
# lvdisplay<br />
<br />
{{Note|возможно потребуется загрузка модуля ядра ('''modprobe dm-mod''')}}<br />
<br />
{{Tip|Для начала можно создать относительно небольшие тома и позже по мере надобности их расширить. Оставьте свободное место внутри группы томов, чтобы было место для последующего увеличения разделов.}}<br />
<br />
====Создание файловых систем и их монтирование====<br />
Ваши логические тома должны быть доступны по следующему пути: {{Filename|/dev/mapper/}} и {{Filename|/dev/YourVolumeGroupName}}. Если их там нет, загрузите модуль ядра и сделайте группы доступными:<br />
# modprobe dm-mod<br />
# vgchange -ay<br />
Теперь можно создать файловые системы внутри логических томов и смонтировать их как обычные разделы.Если вы устанавливаете Arch Linux, пропустите этот шаг и используйте программу установки для выбора LVM разделов, которые вы создали.<br />
# mkfs.ext3 /dev/mapper/VolGroup00-lvolhome<br />
# mount /dev/mapper/VolGroup00-lvolhome /home<br />
Если вы устанавливаете Arch Linux, выполните /arch/setup, перейдите к ''Prepare Hard Drive'' далее сразу выберите ''Set Filesystem Mountpoints'' и '''''прочтите абзац [[Lvm#Важно|Важно]] перед тем как продолжить!'''''<br />
<br />
===Важно===<br />
Осталось всего несколько шагов, будьте внимательны при использовании/установке Arch Linux на LVM(в скобках указаны соответствующие меню во время установки):<br />
#Во время выбора точек монтирования выберете только что созданные логические тома(используйте: {{Filename|/dev/mapper/Volgroup00-lvolhome}}).<br> НЕ выбирайте физические разделы на которых были созданы логические тома(не используйте: {{Filename|/dev/sda2}}). (''Set Filesystem Mountpoints'')<br />
#Убедитесь, что вы заменили ''USELVM="no"'' на ''USELVM="yes"''в ''USELVM="no"'' to ''USELVM="yes"''<br />
#Убедитесь, что ''lvm2'' находится в секции HOOKS в {{Filename|/etc/mkinitcpio.conf}} непосредственно перед ''filesystems'', для того чтобы ядро смогло найти LVM во <br />
время загрузки. Если вы хотите использовать LVM образы(англ. snapshots) добавьте ''dm-snapshot'' к переменной MODULES (''Configure System'')<br />
#Убедитесь, что в {{Filename|/boot/grub/menu.lst}} указаны правильные тома для раздела /root.(''Install Bootloader'')<br />
Пример {{Filename|/boot/grub/menu.lst}}<br />
...<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,0)<br />
kernel /vmlinuz26 '''root=/dev/mapper/VolGroup00-lvolroot''' resume=/dev/mapper/VolGroup00-lvolswap ro<br />
initrd /kernel26.img<br />
...<br />
If you are using LILO check {{Filename|/etc/lilo.conf}}:<br />
image=/boot/vmlinuz26<br />
label=arch<br />
append="'''root=/dev/mapper/VolGroup00-lvolroot''' resume=/dev/mapper/VolGroup00-lvolswap ro"<br />
initrd=/boot/kernel26.img<br />
<br />
= Настройка =<br />
<br />
== Увеличение размера логического тома ==<br />
Для этого нужно увеличить сам том и затем размер файловой системы на нём. Представим, что у нас есть логический том размером 15Гб с ext3 на нём. Увеличим его размер до 20Гб:<br />
# lvextend -L 20G VolGroup00/lvolhome (или lvresize -L +5G VolGroup00/lvolhome)<br />
# resize2fs /dev/VolGroup00/lvolhome<br />
Вы можете использовать {{Codeline|lvresize}} вместо {{Codeline|lvextend}}.<br />
<br />
Если вы хотите заполнить всё свободное место в группе томов:<br />
# lvextend -l +100%FREE VolGroup00/lvolhome<br />
<br />
{{Warning|Не все файловые системы поддерживают изменение раздела в режиме "online" без потери данных.}}<br />
<br />
{{Note|Если вы не увеличите размер файловой системы, вы не сможете использовать свободное место добавленное к логическому тому.}}<br />
<br />
== Уменьшение размера логического тома==<br />
Скорее всего размер файловой системы такой-же как и логического тома, поэтому сначала нужно уменьшить её размет и только потом уменьшать размер тома.<br />
Дальнейшие действия зависят от типа файловой системы, возможно вам нужно отмонтировать её. Для логического тома размером 15ГБ и ext3 уменьшение размера до 10ГБ<br />
выглядит следующим образом: <br />
# resize2fs /dev/VolGroup00/lvolhome 9G<br />
# lvreduce -L 10G VolGroup00/lvolhome (или lvresize -L -5G VolGroup00/lvolhome)<br />
# resize2fs /dev/VolGroup00/lvolhome<br />
В данном случае мы уменьшили размер файловой системы до 9Гб чтобы при уменьшении размера логического тома, случайно, не потерять данные в конце файловой системы. После этого размер файловой системы можно увеличить.<br />
Вы можете использовать {{Codeline|lvresize}} вместо {{Codeline|lvreduce}}.<br />
<br />
{{Warning|Не уменьшайте размер файловой системы, до размера меньшего чем объём данных на ней, иначе вы рискуете потерять данные.}}<br />
<br />
{{Warning|Не все файловые системы поддерживают изменение раздела в режиме "online" без потери данных.}}<br />
<br />
{{Note|Рекомендуется задать размер файловой системы меньше чем логического тома чтобы при уменьшении размера логического тома, случайно, не потерять данные в конце файловой системы.}}<br />
<br />
== Добавить раздел к логической группе ==<br />
Тип раздела должен быть 'Linux LVM'. Используйте, например, {{Codeline|cfdisk}}. После этого нужно создать физический том на этом разделе и затем добавить его к логической группе:<br />
# pvcreate /dev/sdb1<br />
# vgextend VolGroup00 /dev/sdb1<br />
<br />
{{Tip|К логической группе могут быть добавлены разделы с любого диска в вашей системе.}}<br />
<br />
== Удаление раздела из логической группы ==<br />
Перед удаление нужно переместить данные на другой раздел. LVM легко с этим справится:<br />
# pvmove /dev/sdb1<br />
Если вы хотите чтобы данные были перемещены на определённый физический том, передайте его в качестве второго аргумента командной строки:<br />
# pvmove /dev/sdb1 /dev/sdf1<br />
Если физический том должен быть удалён из группы томов:<br />
# vgreduce myVg /dev/sdb1<br />
Или удалите все пустые физические тома:<br />
# vgreduce --all vg0<br />
И наконец если вы хотите использовать раздел для чего-то другого и отвязать его от LVM совсем:<br />
# pvremove /dev/sdb1<br />
<br />
== Клонирование ==<br />
====Введение====<br />
<br />
LVM может создавать образ вашей системы по эффективно чем традиционные способы резервного копирования. Достигается это тем, что пока идёт создание клона при изменении исходного тома сначала начальная версия копируется в образ (англ. snapshot) и только потом изменяется. Начальный образ содержит только жёсткие ссылки(hard-links) к индексным дескриптором(inodes) ваших данных и использует их всё время пока данные не были изменены. Так система с размером в 35Гб может использовать только 2ГБ свободного места если в сумме в образе и в оригинале было изменено меньше 2ГБ.<br />
<br />
====Настрйка====<br />
Клон логического тома создаётся так-же как обычный том:<br />
<br />
# lvcreate --size 100M --snapshot --name snap01 /dev/mapper/vg0-pv<br />
На этом томе можно изменять менее 100Мб данных, после этого образ(snapshot) будет заполнен полностью)<br />
<br />
<br />
''dm-snapshot'' должен быть в переменной MODULES в {{Filename|/etc/mkinitcpio.conf}}, иначе система не загрузится<br />
# mkinitcpio -g /boot/kernel26.img<br />
<br />
Образы используются в первую очередь для создания замороженной копии файловой системы чтобы уже с неё делать резервную копию.<br />
<br />
= Решение проблем =<br />
====LVM команды не работают ====<br />
*Загрузите модуль ядра:<br />
# modprobe dm-mod<br />
* Попробуйте использовать префикс ''lvm'':<br />
# lvm pvdisplay<br />
<br />
==== Не видно логические тома ====<br />
При установке на систему с уже существующей группой томов, вы можете не увидеть логические тома даже после "modprobe dm-mod".<br />
<br />
В этом случае вам возможно прийдётся выполнить:<br />
# vgchange -ay <volgroup><br />
<br />
<br />
= Ещё по теме =<br />
Другие статьи на Arch Wiki:<br />
* [[Installing_with_Software_RAID_or_LVM|Installing with software RAID or LVM]]<br />
* [[RAID_Encryption_LVM|RAID encryption LVM]]<br />
Внешние ссылки:<br />
* [http://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux) LVM on wikipedia]<br />
* [http://tldp.org/HOWTO/LVM-HOWTO/ LVM HOWTO on tldp.org ]<br />
* [http://www.gentoo.org/doc/en/lvm2.xml Gentoo LVM2 installation at gentoo.org ]<br />
* [http://en.gentoo-wiki.com/wiki/LVM LVM at en.gentoo-wiki.com]</div>Irrlichthttps://wiki.archlinux.org/index.php?title=LVM_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124590LVM (Русский)2010-12-09T16:17:29Z<p>Irrlicht: /* Введение */</p>
<hr />
<div>[[Category:Getting and installing Arch (English)]]<br />
[[Category:File systems (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n|LVM}}<br />
<br />
{{translateme}}<br />
=Введение=<br />
<br />
Менеджер логических томов (англ. Logical Volume Manager) — менеджер логических томов. В отличие от разделов жёсткого диска, размеры логических томов можно легко менять.<br />
<br />
Устройство LVM:<br />
<br />
<br />
* '''Физический том(англ. physical volume)''': Раздел на жёстком диске или жёсткий диск на котором создаются логические тома.<br />
* '''Группа томов (англ. volume group)''': Набор физических томов в один объект. Содержат логические тома.Группу томов можно представить как жёсткие диски.<br />
* '''Логический том (англ. logical volume)''': аналогичен разделу (hda1, sdа1) на не-LVM системах. Так же, как и на них, представляется как блочное устройство и может нести файловую систему.<br />
* '''Физический диапазон (англ. physical extent) ''': Небольшая часть диска(обычно имеет размер 4MB), которая может быть добавлена к логическому тому. Может быть добавлен к любому разделу.<br />
* '''Логические диапазоны (англ. logical extent)''': диапазоны, на которые разбивается логический том. Их объём одинаков по всей группе томов.<br />
<br />
<br />
<br />
Некоторые возможности LVM:<br />
<br />
* использование любого количества жёстких дисков или их разделов как один большой раздел.<br />
* логические тома могут быть "размазаны" на несколько жёстких дисков. Максимальный размер равен объёму всех жёстких дисков.<br />
* изменение/создание/удаление логических томов в любом виде. То есть не зависит от физического расположения тома.<br />
* изменение/создание/удаление логических томов и групп томов в режиме "online"(Внимание: не все файловые системы, поддерживают изменение размере в режиме "online")<br />
* динамическое увеличение размера логических томов по мере их наполнения. Увеличение размера производится пользователем, некоторые файловые системы поддерживают изменение размера в режиме "online".<br />
<br />
<br />
<br />
Пример:<br />
'''Жёсткий диск'''<br />
<br />
Disk1 (/dev/sda):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br />
|Partition1 50GB (Physical volume) |Partition2 80GB (Physical volume) |<br />
|/dev/sda1 |/dev/sda2 |<br />
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |<br />
<br />
Disk2 (/dev/sdb):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br />
|Partition1 120GB (Physical volume) |<br />
|/dev/sdb1 |<br />
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _|<br />
<br />
'''Логические тома'''<br />
<br />
Volume Group1 (/dev/MyStorage/ = /dev/sda1 + /dev/sda2 + /dev/sdb1):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ <br />
|Logical volume1 15GB |Logical volume2 35GB |Logical volume3 200GB |<br />
|/dev/MyStorage/rootvol|/dev/MyStorage/homevol |/dev/MyStorage/mediavol |<br />
|_ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |<br />
<br />
В сумме получается: объединение всего доступного места в одну группу томов(LV) и более гибкий контроль над разделами(логическими томами)<br />
<br />
=Установка=<br />
<br />
Перед началом установки нужно загрузить модуль ядра:<br />
# modprobe dm-mod<br />
Если вы уже установили Arch Linux и хотите попробовать LVM в действии, перейдите сразу к [[Lvm#Partition_disks|partition disks]].<br />
<br />
====Установка Arch Linux на LVM====<br />
Перед запуском /arch/setup нужно разметить жёсткий диск. Например с помощью {{Codeline|cfdisk}}. Загрузчик grub версии ниже 1.0 не поддерживает загрузку с томов LVM, поэтому раздел {{Filename|/boot}} должен быть расположен на загрузочном разделе(100МБ должно хватить) либо используйте lilo или grub версии 1.95 и выше. <br />
<br />
====Разметка дисков====<br />
<br />
Для начала нужно создать раздел для LVM. Тип файловой системы должен быть 'Linux LVM' поэтому при разметке используйте id 0x8e (тип файловой системы: 8e).<br />
Для работы LVM требует наличие одного раздела типа 'Linux LVM' на каждом жёстком диске, который вы хотите использовать с LVM. Логические тома находятся внутри этих разделов, поэтому задайте им соответствующий размер. Если вы предполагаете не создавать других разделов на этих дисках - используйте всё доступное место на каждом диске.<br />
<br />
<br />
{{Warning|/boot не может находиться внутри LVM раздела т.к. grub (версии<1.95) не имеет поддержки загрузки с LVM.}}<br />
<br />
{{Tip|Все разделы LVM на всех дисках могут быть представлены в виде одного большого диска.}}<br />
<br />
====Создание физических томов(PV)====<br />
Произведите инициализацию разделов чтобы LVM мог использовать их. Используйте {{Codeline|fdisk -l}} чтобы найти разделы с файловой системой 'Linux LVM' и создайте в них физические тома:<br />
# pvcreate /dev/sda2<br />
Замените {{Filename|/dev/sda2}} на имена разделов на вашей системе. Эта команда поместит заголовок на каждый раздел. Теперь он может быть использован LVM.<br />
Отобразить все разделы, которые LVM может использовать, можно с помощью:<br />
# pvdisplay<br />
<br />
====Создание группы логических томов====<br />
Следующий шаг - это создание логических томов внутри физических томов. <br />
Выполните следующую команду на каждом физическом томе:<br />
# vgcreate VolGroup00 /dev/sda2<br />
# vgextend VolGroup00 /dev/sdb1<br />
Метку "VolGroup00" можно заменить на любую другую.<br />
Отобразить все доступные логические тома можно с помощью:<br />
# vgdisplay<br />
<br />
{{Note|Можно создать несколько логических групп, но тогда они будут видны в системе в виде нескольких дисков.}}<br />
<br />
====Создание логических томов====<br />
Теперь нужно создать логические тома внутри группы томов. Следующая команда создаст логический том внутри "VolGroup00" с размером 10GB и меткой "lvolhome" <br />
# lvcreate -L 10G VolGroup00 -n lvolhome<br />
Этот том будет доступен позже как устойство {{Filename|/dev/mapper/Volgroup00-lvolhome}} или {{Filename|/dev/VolGroup00/lvolhome}}.<br />
Как и в случае в логическими томами, метка логического тома может быть выбрана на ваше усмотрение.<br />
<br />
Чтобы создать раздел swap внутри тома, нужен дополнительный параметр: <br />
# lvcreate -C y -L 10G VolGroup00 -n lvolswap<br />
{{Codeline|-C y}} создаст монолитный раздел, то есть раздел swap будет создан на одном диске и не будет "размазан" на несколько устройств или физических расширений. <br />
<br />
Если вы хотите использовать всё оставшееся свободное место внутри группы томов, выполните:<br />
# lvcreate -l +100%FREE VolGroup00 -n lvolmedia<br />
<br />
Логические тома можно отобразить командой:<br />
# lvdisplay<br />
<br />
{{Note|возможно потребуется загрузка модуля ядра ('''modprobe dm-mod''')}}<br />
<br />
{{Tip|Для начала можно создать относительно небольшие тома и позже по мере надобности их расширить. Оставьте свободное место внутри группы томов, чтобы было место для последующего увеличения разделов.}}<br />
<br />
====Создание файловых систем и их монтирование====<br />
Ваши логические тома должны быть доступны по следующему пути: {{Filename|/dev/mapper/}} и {{Filename|/dev/YourVolumeGroupName}}. Если их там нет, загрузите модуль ядра и сделайте группы доступными:<br />
# modprobe dm-mod<br />
# vgchange -ay<br />
Теперь можно создать файловые системы внутри логических томов и смонтировать их как обычные разделы.Если вы устанавливаете Arch Linux, пропустите этот шаг и используйте программу установки для выбора LVM разделов, которые вы создали.<br />
# mkfs.ext3 /dev/mapper/VolGroup00-lvolhome<br />
# mount /dev/mapper/VolGroup00-lvolhome /home<br />
Если вы устанавливаете Arch Linux, выполните /arch/setup, перейдите к ''Prepare Hard Drive'' далее сразу выберите ''Set Filesystem Mountpoints'' и '''''прочтите абзац [[Lvm#Важно|Важно]] перед тем как продолжить!'''''<br />
<br />
===Важно===<br />
Осталось всего несколько шагов, будьте внимательны при использовании/установке Arch Linux на LVM(в скобках указаны соответствующие меню во время установки):<br />
#Во время выбора точек монтирования выберете только что созданные логические тома(используйте: {{Filename|/dev/mapper/Volgroup00-lvolhome}}).<br> НЕ выбирайте физические разделы на которых были созданы логические тома(не используйте: {{Filename|/dev/sda2}}). (''Set Filesystem Mountpoints'')<br />
#Убедитесь, что вы заменили ''USELVM="no"'' на ''USELVM="yes"''в ''USELVM="no"'' to ''USELVM="yes"''<br />
#Убедитесь, что ''lvm2'' находится в секции HOOKS в {{Filename|/etc/mkinitcpio.conf}} непосредственно перед ''filesystems'', для того чтобы ядро смогло найти LVM во <br />
время загрузки. Если вы хотите использовать LVM образы(англ. snapshots) добавьте ''dm-snapshot'' к переменной MODULES (''Configure System'')<br />
#Убедитесь, что в {{Filename|/boot/grub/menu.lst}} указаны правильные тома для раздела /root.(''Install Bootloader'')<br />
Пример {{Filename|/boot/grub/menu.lst}}<br />
...<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,0)<br />
kernel /vmlinuz26 '''root=/dev/mapper/VolGroup00-lvolroot''' resume=/dev/mapper/VolGroup00-lvolswap ro<br />
initrd /kernel26.img<br />
...<br />
If you are using LILO check {{Filename|/etc/lilo.conf}}:<br />
image=/boot/vmlinuz26<br />
label=arch<br />
append="'''root=/dev/mapper/VolGroup00-lvolroot''' resume=/dev/mapper/VolGroup00-lvolswap ro"<br />
initrd=/boot/kernel26.img<br />
<br />
= Настройка =<br />
<br />
== Увеличение размера логического тома ==<br />
Для этого нужно увеличить сам том и затем размер файловой системы на нём. Представим, что у нас есть логический том размером 15Гб с ext3 на нём. Увеличим его размер до 20Гб:<br />
# lvextend -L 20G VolGroup00/lvolhome (или lvresize -L +5G VolGroup00/lvolhome)<br />
# resize2fs /dev/VolGroup00/lvolhome<br />
Вы можете использовать {{Codeline|lvresize}} вместо {{Codeline|lvextend}}.<br />
<br />
Если вы хотите заполнить всё свободное место в группе томов:<br />
# lvextend -l +100%FREE VolGroup00/lvolhome<br />
<br />
{{Warning|Не все файловые системы поддерживают изменение раздела в режиме "online" без потери данных.}}<br />
<br />
{{Note|Если вы не увеличите размер файловой системы, вы не сможете использовать свободное место добавленное к логическому тому.}}<br />
<br />
== Уменьшение размера логического тома==<br />
Скорее всего размер файловой системы такой-же как и логического тома, поэтому сначала нужно уменьшить её размет и только потом уменьшать размер тома.<br />
Дальнейшие действия зависят от типа файловой системы, возможно вам нужно отмонтировать её. Для логического тома размером 15ГБ и ext3 уменьшение размера до 10ГБ<br />
выглядит следующим образом: <br />
# resize2fs /dev/VolGroup00/lvolhome 9G<br />
# lvreduce -L 10G VolGroup00/lvolhome (или lvresize -L -5G VolGroup00/lvolhome)<br />
# resize2fs /dev/VolGroup00/lvolhome<br />
В данном случае мы уменьшили размер файловой системы до 9Гб чтобы при уменьшении размера логического тома, случайно, не потерять данные в конце файловой системы. После этого размер файловой системы можно увеличить.<br />
Вы можете использовать {{Codeline|lvresize}} вместо {{Codeline|lvreduce}}.<br />
<br />
{{Warning|Не уменьшайте размер файловой системы, до размера меньшего чем объём данных на ней, иначе вы рискуете потерять данные.}}<br />
<br />
{{Warning|Не все файловые системы поддерживают изменение раздела в режиме "online" без потери данных.}}<br />
<br />
{{Note|Рекомендуется задать размер файловой системы меньше чем логического тома чтобы при уменьшении размера логического тома, случайно, не потерять данные в конце файловой системы.}}<br />
<br />
== Добавить раздел к логической группе ==<br />
Тип раздела должен быть 'Linux LVM'. Используйте, например, {{Codeline|cfdisk}}. После этого нужно создать физический том на этом разделе и затем добавить его к логической группе:<br />
# pvcreate /dev/sdb1<br />
# vgextend VolGroup00 /dev/sdb1<br />
<br />
{{Tip|К логической группе могут быть добавлены разделы с любого диска в вашей системе.}}<br />
<br />
== Удаление раздела из логической группы ==<br />
Перед удаление нужно переместить данные на другой раздел. LVM легко с этим справится:<br />
# pvmove /dev/sdb1<br />
Если вы хотите чтобы данные были перемещены на определённый физический том, передайте его в качестве второго аргумента командной строки:<br />
# pvmove /dev/sdb1 /dev/sdf1<br />
Если физический том должен быть удалён из группы томов:<br />
# vgreduce myVg /dev/sdb1<br />
Или удалите все пустые физические тома:<br />
# vgreduce --all vg0<br />
И наконец если вы хотите использовать раздел для чего-то другого и отвязать его от LVM совсем:<br />
# pvremove /dev/sdb1<br />
<br />
== Snapshots ==<br />
====Введение====<br />
<br />
LVM может создавать образ вашей системы по эффективно чем традиционные способы резервного копирования. Достигается это тем, что пока идёт создание клона при изменении исходного тома сначала начальная версия копируется в образ (англ. snapshot) и только потом изменяется. Начальный образ содержит только жёсткие ссылки(hard-links) к индексным дескриптором(inodes) ваших данных и использует их всё время пока данные не были изменены. Так система с размером в 35Гб может использовать только 2ГБ свободного места если в сумме в образе и в оригинале было изменено меньше 2ГБ.<br />
<br />
====Configuration====<br />
You create snapshot logical volumes just like normal ones.<br />
<br />
# lvcreate --size 100M --snapshot --name snap01 /dev/mapper/vg0-pv<br />
With that volume, you may modify less than 100M of data, before the snapshot volume fills up.<br />
<br />
It is important to have the ''dm-snapshot'' module listed in the MODULES variable of {{Filename|/etc/mkinitcpio.conf}}, otherwise the system will not boot. If you do this on an already installed system, make sure to rebuild the image with<br />
# mkinitcpio -g /boot/kernel26.img<br />
<br />
Todo: scripts to automate snapshots of root before updates, to rollback... updating {{Filename|menu.lst}} to boot snapshots (separate article?)<br />
<br />
snapshots are primarily used to provide a frozen copy of a filesystem to make backups; a backup taking two hours provides a more consistent image of the filesystem than directly backing up the partition.<br />
<br />
= Решение проблем =<br />
====LVM команды не работают ====<br />
*Загрузите модуль ядра:<br />
# modprobe dm-mod<br />
* Попробуйте использовать префикс ''lvm'':<br />
# lvm pvdisplay<br />
<br />
==== Не видно логические тома ====<br />
При установке на систему с уже существующей группой томов, вы можете не увидеть логические тома даже после "modprobe dm-mod".<br />
<br />
В этом случае вам возможно прийдётся выполнить:<br />
# vgchange -ay <volgroup><br />
<br />
<br />
= Ещё по теме =<br />
Другие статьи на Arch Wiki:<br />
* [[Installing_with_Software_RAID_or_LVM|Installing with software RAID or LVM]]<br />
* [[RAID_Encryption_LVM|RAID encryption LVM]]<br />
Внешние ссылки:<br />
* [http://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux) LVM on wikipedia]<br />
* [http://tldp.org/HOWTO/LVM-HOWTO/ LVM HOWTO on tldp.org ]<br />
* [http://www.gentoo.org/doc/en/lvm2.xml Gentoo LVM2 installation at gentoo.org ]<br />
* [http://en.gentoo-wiki.com/wiki/LVM LVM at en.gentoo-wiki.com]</div>Irrlichthttps://wiki.archlinux.org/index.php?title=LVM_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124589LVM (Русский)2010-12-09T16:06:13Z<p>Irrlicht: Undo revision 124588 by Irrlicht (talk)</p>
<hr />
<div>[[Category:Getting and installing Arch (English)]]<br />
[[Category:File systems (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n|LVM}}<br />
<br />
{{translateme}}<br />
=Введение=<br />
<br />
Менеджер логических томов (англ. Logical Volume Manager) — менеджер логических томов. В отличие от разделов жёсткого диска, размеры логических томов можно легко менять.<br />
<br />
Устройство LVM:<br />
<br />
<br />
* '''Физический том(англ. physical volume)''': Раздел на жёстком диске или жёсткий диск на котором создаются логические тома.<br />
* '''Группа томов (англ. volume group)''': Набор физических томов в один объект. Содержат логические тома.Группу томов можно представить как жёсткие диски.<br />
* '''Логический том (англ. logical volume)''': аналогичен разделу (hda1, sdа1) на не-LVM системах. Так же, как и на них, представляется как блочное устройство и может нести файловую систему.<br />
* '''Физический диапазон (англ. physical extent) ''': Небольшая часть диска(обычно имеет размер 4MB), которая может быть добавлена к логическому тому. Может быть добавлен к любому разделу.<br />
* '''Логические диапазоны (англ. logical extent)''': диапазоны, на которые разбивается логический том. Их объём одинаков по всей группе томов.<br />
<br />
<br />
<br />
Некоторые возможности LVM:<br />
<br />
* использование любого количества жёстких дисков или их разделов как один большой раздел.<br />
* логические тома могут быть "размазаны" на несколько жёстких дисков. Максимальный размер равен объёму всех жёстких дисков.<br />
* изменение/создание/удаление логических томов в любом виде. То есть не зависит от физического расположения тома.<br />
* изменение/создание/удаление логических томов и групп томов в режиме "online"(Внимание: не все файловые системы, поддерживают изменение размере в режиме "online")<br />
* динамическое увеличение размера логических томов по мере их наполнения. Увеличение размера производится пользователем, некоторые файловые системы поддерживают изменение размера в режиме "online".<br />
<br />
<br />
<br />
Пример:<br />
'''Жёсткий диск'''<br />
<br />
Disk1 (/dev/sda):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br />
|Partition1 50GB (Physical volume) |Partition2 80GB (Physical volume) |<br />
|/dev/sda1 |/dev/sda2 |<br />
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |<br />
<br />
Disk2 (/dev/sdb):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br />
|Partition1 120GB (Physical volume) |<br />
|/dev/sdb1 |<br />
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _|<br />
<br />
'''Логические тома'''<br />
<br />
Volume Group1 (/dev/MyStorage/ = /dev/sda1 + /dev/sda2 + /dev/sdb1):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ <br />
|Logical volume1 15GB |Logical volume2 35GB |Logical volume3 200GB |<br />
|/dev/MyStorage/rootvol|/dev/MyStorage/homevol |/dev/MyStorage/mediavol |<br />
|_ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |<br />
<br />
В сумме получается: объединение всего доступного места в одну группу томов(LV) и более гибкий контроль над разделами(логическими томами)<br />
<br />
=Установка=<br />
<br />
Перед началом установки нужно загрузить модуль ядра:<br />
# modprobe dm-mod<br />
Если вы уже установили Arch Linux и хотите попробовать LVM в действии, перейдите сразу к [[Lvm#Partition_disks|partition disks]].<br />
<br />
====Установка Arch Linux на LVM====<br />
Перед запуском /arch/setup нужно разметить жёсткий диск. Например с помощью {{Codeline|cfdisk}}. Загрузчик grub версии ниже 1.0 не поддерживает загрузку с томов LVM, поэтому раздел {{Filename|/boot}} должен быть расположен на загрузочном разделе(100МБ должно хватить) либо используйте lilo или grub версии 1.95 и выше. <br />
<br />
====Разметка дисков====<br />
<br />
Для начала нужно создать раздел для LVM. Тип файловой системы должен быть 'Linux LVM' поэтому при разметке используйте id 0x8e (тип файловой системы: 8e).<br />
Для работы LVM требует наличие одного раздела типа 'Linux LVM' на каждом жёстком диске, который вы хотите использовать с LVM. Логические тома находятся внутри этих разделов, поэтому задайте им соответствующий размер. Если вы предполагаете не создавать других разделов на этих дисках - используйте всё доступное место на каждом диске.<br />
<br />
<br />
{{Warning|/boot не может находиться внутри LVM раздела т.к. grub (версии<1.95) не имеет поддержки загрузки с LVM.}}<br />
<br />
{{Tip|Все разделы LVM на всех дисках могут быть представлены в виде одного большого диска.}}<br />
<br />
====Создание физических томов(PV)====<br />
Произведите инициализацию разделов чтобы LVM мог использовать их. Используйте {{Codeline|fdisk -l}} чтобы найти разделы с файловой системой 'Linux LVM' и создайте в них физические тома:<br />
# pvcreate /dev/sda2<br />
Замените {{Filename|/dev/sda2}} на имена разделов на вашей системе. Эта команда поместит заголовок на каждый раздел. Теперь он может быть использован LVM.<br />
Отобразить все разделы, которые LVM может использовать, можно с помощью:<br />
# pvdisplay<br />
<br />
====Создание группы логических томов====<br />
Следующий шаг - это создание логических томов внутри физических томов. <br />
Выполните следующую команду на каждом физическом томе:<br />
# vgcreate VolGroup00 /dev/sda2<br />
# vgextend VolGroup00 /dev/sdb1<br />
Метку "VolGroup00" можно заменить на любую другую.<br />
Отобразить все доступные логические тома можно с помощью:<br />
# vgdisplay<br />
<br />
{{Note|Можно создать несколько логических групп, но тогда они будут видны в системе в виде нескольких дисков.}}<br />
<br />
====Создание логических томов====<br />
Теперь нужно создать логические тома внутри группы томов. Следующая команда создаст логический том внутри "VolGroup00" с размером 10GB и меткой "lvolhome" <br />
# lvcreate -L 10G VolGroup00 -n lvolhome<br />
Этот том будет доступен позже как устойство {{Filename|/dev/mapper/Volgroup00-lvolhome}} или {{Filename|/dev/VolGroup00/lvolhome}}.<br />
Как и в случае в логическими томами, метка логического тома может быть выбрана на ваше усмотрение.<br />
<br />
Чтобы создать раздел swap внутри тома, нужен дополнительный параметр: <br />
# lvcreate -C y -L 10G VolGroup00 -n lvolswap<br />
{{Codeline|-C y}} создаст монолитный раздел, то есть раздел swap будет создан на одном диске и не будет "размазан" на несколько устройств или физических расширений. <br />
<br />
Если вы хотите использовать всё оставшееся свободное место внутри группы томов, выполните:<br />
# lvcreate -l +100%FREE VolGroup00 -n lvolmedia<br />
<br />
Логические тома можно отобразить командой:<br />
# lvdisplay<br />
<br />
{{Note|возможно потребуется загрузка модуля ядра ('''modprobe dm-mod''')}}<br />
<br />
{{Tip|Для начала можно создать относительно небольшие тома и позже по мере надобности их расширить. Оставьте свободное место внутри группы томов, чтобы было место для последующего увеличения разделов.}}<br />
<br />
====Создание файловых систем и их монтирование====<br />
Ваши логические тома должны быть доступны по следующему пути: {{Filename|/dev/mapper/}} и {{Filename|/dev/YourVolumeGroupName}}. Если их там нет, загрузите модуль ядра и сделайте группы доступными:<br />
# modprobe dm-mod<br />
# vgchange -ay<br />
Теперь можно создать файловые системы внутри логических томов и смонтировать их как обычные разделы.Если вы устанавливаете Arch Linux, пропустите этот шаг и используйте программу установки для выбора LVM разделов, которые вы создали.<br />
# mkfs.ext3 /dev/mapper/VolGroup00-lvolhome<br />
# mount /dev/mapper/VolGroup00-lvolhome /home<br />
Если вы устанавливаете Arch Linux, выполните /arch/setup, перейдите к ''Prepare Hard Drive'' далее сразу выберите ''Set Filesystem Mountpoints'' и '''''прочтите абзац [[Lvm#Важно|Важно]] перед тем как продолжить!'''''<br />
<br />
===Важно===<br />
Осталось всего несколько шагов, будьте внимательны при использовании/установке Arch Linux на LVM(в скобках указаны соответствующие меню во время установки):<br />
#Во время выбора точек монтирования выберете только что созданные логические тома(используйте: {{Filename|/dev/mapper/Volgroup00-lvolhome}}).<br> НЕ выбирайте физические разделы на которых были созданы логические тома(не используйте: {{Filename|/dev/sda2}}). (''Set Filesystem Mountpoints'')<br />
#Убедитесь, что вы заменили ''USELVM="no"'' на ''USELVM="yes"''в ''USELVM="no"'' to ''USELVM="yes"''<br />
#Убедитесь, что ''lvm2'' находится в секции HOOKS в {{Filename|/etc/mkinitcpio.conf}} непосредственно перед ''filesystems'', для того чтобы ядро смогло найти LVM во <br />
время загрузки. Если вы хотите использовать LVM образы(англ. snapshots) добавьте ''dm-snapshot'' к переменной MODULES (''Configure System'')<br />
#Убедитесь, что в {{Filename|/boot/grub/menu.lst}} указаны правильные тома для раздела /root.(''Install Bootloader'')<br />
Пример {{Filename|/boot/grub/menu.lst}}<br />
...<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,0)<br />
kernel /vmlinuz26 '''root=/dev/mapper/VolGroup00-lvolroot''' resume=/dev/mapper/VolGroup00-lvolswap ro<br />
initrd /kernel26.img<br />
...<br />
If you are using LILO check {{Filename|/etc/lilo.conf}}:<br />
image=/boot/vmlinuz26<br />
label=arch<br />
append="'''root=/dev/mapper/VolGroup00-lvolroot''' resume=/dev/mapper/VolGroup00-lvolswap ro"<br />
initrd=/boot/kernel26.img<br />
<br />
= Настройка =<br />
<br />
== Увеличение размера логического тома ==<br />
Для этого нужно увеличить сам том и затем размер файловой системы на нём. Представим, что у нас есть логический том размером 15Гб с ext3 на нём. Увеличим его размер до 20Гб:<br />
# lvextend -L 20G VolGroup00/lvolhome (или lvresize -L +5G VolGroup00/lvolhome)<br />
# resize2fs /dev/VolGroup00/lvolhome<br />
Вы можете использовать {{Codeline|lvresize}} вместо {{Codeline|lvextend}}.<br />
<br />
Если вы хотите заполнить всё свободное место в группе томов:<br />
# lvextend -l +100%FREE VolGroup00/lvolhome<br />
<br />
{{Warning|Не все файловые системы поддерживают изменение раздела в режиме "online" без потери данных.}}<br />
<br />
{{Note|Если вы не увеличите размер файловой системы, вы не сможете использовать свободное место добавленное к логическому тому.}}<br />
<br />
== Уменьшение размера логического тома==<br />
Скорее всего размер файловой системы такой-же как и логического тома, поэтому сначала нужно уменьшить её размет и только потом уменьшать размер тома.<br />
Дальнейшие действия зависят от типа файловой системы, возможно вам нужно отмонтировать её. Для логического тома размером 15ГБ и ext3 уменьшение размера до 10ГБ<br />
выглядит следующим образом: <br />
# resize2fs /dev/VolGroup00/lvolhome 9G<br />
# lvreduce -L 10G VolGroup00/lvolhome (или lvresize -L -5G VolGroup00/lvolhome)<br />
# resize2fs /dev/VolGroup00/lvolhome<br />
В данном случае мы уменьшили размер файловой системы до 9Гб чтобы при уменьшении размера логического тома, случайно, не потерять данные в конце файловой системы. После этого размер файловой системы можно увеличить.<br />
Вы можете использовать {{Codeline|lvresize}} вместо {{Codeline|lvreduce}}.<br />
<br />
{{Warning|Не уменьшайте размер файловой системы, до размера меньшего чем объём данных на ней, иначе вы рискуете потерять данные.}}<br />
<br />
{{Warning|Не все файловые системы поддерживают изменение раздела в режиме "online" без потери данных.}}<br />
<br />
{{Note|Рекомендуется задать размер файловой системы меньше чем логического тома чтобы при уменьшении размера логического тома, случайно, не потерять данные в конце файловой системы.}}<br />
<br />
== Добавить раздел к логической группе ==<br />
Тип раздела должен быть 'Linux LVM'. Используйте, например, {{Codeline|cfdisk}}. После этого нужно создать физический том на этом разделе и затем добавить его к логической группе:<br />
# pvcreate /dev/sdb1<br />
# vgextend VolGroup00 /dev/sdb1<br />
<br />
{{Tip|К логической группе могут быть добавлены разделы с любого диска в вашей системе.}}<br />
<br />
== Удаление раздела из логической группы ==<br />
Перед удаление нужно переместить данные на другой раздел. LVM легко с этим справится:<br />
# pvmove /dev/sdb1<br />
Если вы хотите чтобы данные были перемещены на определённый физический том, передайте его в качестве второго аргумента командной строки:<br />
# pvmove /dev/sdb1 /dev/sdf1<br />
Если физический том должен быть удалён из группы томов:<br />
# vgreduce myVg /dev/sdb1<br />
Или удалите все пустые физические тома:<br />
# vgreduce --all vg0<br />
И наконец если вы хотите использовать раздел для чего-то другого и отвязать его от LVM совсем:<br />
# pvremove /dev/sdb1<br />
<br />
== Snapshots ==<br />
====Введение====<br />
LVM allows you to take a snapshot of your system in a much more efficient way than a traditional backup. It does this efficiently by using a COW (copy-on-write) policy. The initial snapshot you take simply contains hard-links to the inodes of your actual data. So long as your data remains unchanged, the snapshot merely contains its inode pointers and not the data itself. Whenever you modify a file or directory that the snapshot points to, LVM automatically clones the data, the old copy referenced by the snapshot, and the new copy referenced by your active system. Thus, you can snapshot a system with 35GB of data using just 2GB of free space so long as you modify less than 2GB (on both the original and snapshot).<br />
<br />
====Configuration====<br />
You create snapshot logical volumes just like normal ones.<br />
<br />
# lvcreate --size 100M --snapshot --name snap01 /dev/mapper/vg0-pv<br />
With that volume, you may modify less than 100M of data, before the snapshot volume fills up.<br />
<br />
It is important to have the ''dm-snapshot'' module listed in the MODULES variable of {{Filename|/etc/mkinitcpio.conf}}, otherwise the system will not boot. If you do this on an already installed system, make sure to rebuild the image with<br />
# mkinitcpio -g /boot/kernel26.img<br />
<br />
Todo: scripts to automate snapshots of root before updates, to rollback... updating {{Filename|menu.lst}} to boot snapshots (separate article?)<br />
<br />
snapshots are primarily used to provide a frozen copy of a filesystem to make backups; a backup taking two hours provides a more consistent image of the filesystem than directly backing up the partition.<br />
<br />
= Решение проблем =<br />
====LVM команды не работают ====<br />
*Загрузите модуль ядра:<br />
# modprobe dm-mod<br />
* Попробуйте использовать префикс ''lvm'':<br />
# lvm pvdisplay<br />
<br />
==== Не видно логические тома ====<br />
При установке на систему с уже существующей группой томов, вы можете не увидеть логические тома даже после "modprobe dm-mod".<br />
<br />
В этом случае вам возможно прийдётся выполнить:<br />
# vgchange -ay <volgroup><br />
<br />
<br />
= Ещё по теме =<br />
Другие статьи на Arch Wiki:<br />
* [[Installing_with_Software_RAID_or_LVM|Installing with software RAID or LVM]]<br />
* [[RAID_Encryption_LVM|RAID encryption LVM]]<br />
Внешние ссылки:<br />
* [http://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux) LVM on wikipedia]<br />
* [http://tldp.org/HOWTO/LVM-HOWTO/ LVM HOWTO on tldp.org ]<br />
* [http://www.gentoo.org/doc/en/lvm2.xml Gentoo LVM2 installation at gentoo.org ]<br />
* [http://en.gentoo-wiki.com/wiki/LVM LVM at en.gentoo-wiki.com]</div>Irrlichthttps://wiki.archlinux.org/index.php?title=LVM_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124588LVM (Русский)2010-12-09T16:04:50Z<p>Irrlicht: /* Введение */</p>
<hr />
<div>[[Category:Getting and installing Arch (English)]]<br />
[[Category:File systems (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n|LVM}}<br />
<br />
{{translateme}}<br />
{{i18n|Template:i18n}}<br />
=Введение=<br />
<br />
Менеджер логических томов (англ. Logical Volume Manager) — менеджер логических томов. В отличие от разделов жёсткого диска, размеры логических томов можно легко менять.<br />
<br />
Устройство LVM:<br />
<br />
<br />
* '''Физический том(англ. physical volume)''': Раздел на жёстком диске или жёсткий диск на котором создаются логические тома.<br />
* '''Группа томов (англ. volume group)''': Набор физических томов в один объект. Содержат логические тома.Группу томов можно представить как жёсткие диски.<br />
* '''Логический том (англ. logical volume)''': аналогичен разделу (hda1, sdа1) на не-LVM системах. Так же, как и на них, представляется как блочное устройство и может нести файловую систему.<br />
* '''Физический диапазон (англ. physical extent) ''': Небольшая часть диска(обычно имеет размер 4MB), которая может быть добавлена к логическому тому. Может быть добавлен к любому разделу.<br />
* '''Логические диапазоны (англ. logical extent)''': диапазоны, на которые разбивается логический том. Их объём одинаков по всей группе томов.<br />
<br />
<br />
<br />
Некоторые возможности LVM:<br />
<br />
* использование любого количества жёстких дисков или их разделов как один большой раздел.<br />
* логические тома могут быть "размазаны" на несколько жёстких дисков. Максимальный размер равен объёму всех жёстких дисков.<br />
* изменение/создание/удаление логических томов в любом виде. То есть не зависит от физического расположения тома.<br />
* изменение/создание/удаление логических томов и групп томов в режиме "online"(Внимание: не все файловые системы, поддерживают изменение размере в режиме "online")<br />
* динамическое увеличение размера логических томов по мере их наполнения. Увеличение размера производится пользователем, некоторые файловые системы поддерживают изменение размера в режиме "online".<br />
<br />
<br />
<br />
Пример:<br />
'''Жёсткий диск'''<br />
<br />
Disk1 (/dev/sda):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br />
|Partition1 50GB (Physical volume) |Partition2 80GB (Physical volume) |<br />
|/dev/sda1 |/dev/sda2 |<br />
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |<br />
<br />
Disk2 (/dev/sdb):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br />
|Partition1 120GB (Physical volume) |<br />
|/dev/sdb1 |<br />
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _|<br />
<br />
'''Логические тома'''<br />
<br />
Volume Group1 (/dev/MyStorage/ = /dev/sda1 + /dev/sda2 + /dev/sdb1):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ <br />
|Logical volume1 15GB |Logical volume2 35GB |Logical volume3 200GB |<br />
|/dev/MyStorage/rootvol|/dev/MyStorage/homevol |/dev/MyStorage/mediavol |<br />
|_ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |<br />
<br />
В сумме получается: объединение всего доступного места в одну группу томов(LV) и более гибкий контроль над разделами(логическими томами)<br />
<br />
=Установка=<br />
<br />
Перед началом установки нужно загрузить модуль ядра:<br />
# modprobe dm-mod<br />
Если вы уже установили Arch Linux и хотите попробовать LVM в действии, перейдите сразу к [[Lvm#Partition_disks|partition disks]].<br />
<br />
====Установка Arch Linux на LVM====<br />
Перед запуском /arch/setup нужно разметить жёсткий диск. Например с помощью {{Codeline|cfdisk}}. Загрузчик grub версии ниже 1.0 не поддерживает загрузку с томов LVM, поэтому раздел {{Filename|/boot}} должен быть расположен на загрузочном разделе(100МБ должно хватить) либо используйте lilo или grub версии 1.95 и выше. <br />
<br />
====Разметка дисков====<br />
<br />
Для начала нужно создать раздел для LVM. Тип файловой системы должен быть 'Linux LVM' поэтому при разметке используйте id 0x8e (тип файловой системы: 8e).<br />
Для работы LVM требует наличие одного раздела типа 'Linux LVM' на каждом жёстком диске, который вы хотите использовать с LVM. Логические тома находятся внутри этих разделов, поэтому задайте им соответствующий размер. Если вы предполагаете не создавать других разделов на этих дисках - используйте всё доступное место на каждом диске.<br />
<br />
<br />
{{Warning|/boot не может находиться внутри LVM раздела т.к. grub (версии<1.95) не имеет поддержки загрузки с LVM.}}<br />
<br />
{{Tip|Все разделы LVM на всех дисках могут быть представлены в виде одного большого диска.}}<br />
<br />
====Создание физических томов(PV)====<br />
Произведите инициализацию разделов чтобы LVM мог использовать их. Используйте {{Codeline|fdisk -l}} чтобы найти разделы с файловой системой 'Linux LVM' и создайте в них физические тома:<br />
# pvcreate /dev/sda2<br />
Замените {{Filename|/dev/sda2}} на имена разделов на вашей системе. Эта команда поместит заголовок на каждый раздел. Теперь он может быть использован LVM.<br />
Отобразить все разделы, которые LVM может использовать, можно с помощью:<br />
# pvdisplay<br />
<br />
====Создание группы логических томов====<br />
Следующий шаг - это создание логических томов внутри физических томов. <br />
Выполните следующую команду на каждом физическом томе:<br />
# vgcreate VolGroup00 /dev/sda2<br />
# vgextend VolGroup00 /dev/sdb1<br />
Метку "VolGroup00" можно заменить на любую другую.<br />
Отобразить все доступные логические тома можно с помощью:<br />
# vgdisplay<br />
<br />
{{Note|Можно создать несколько логических групп, но тогда они будут видны в системе в виде нескольких дисков.}}<br />
<br />
====Создание логических томов====<br />
Теперь нужно создать логические тома внутри группы томов. Следующая команда создаст логический том внутри "VolGroup00" с размером 10GB и меткой "lvolhome" <br />
# lvcreate -L 10G VolGroup00 -n lvolhome<br />
Этот том будет доступен позже как устойство {{Filename|/dev/mapper/Volgroup00-lvolhome}} или {{Filename|/dev/VolGroup00/lvolhome}}.<br />
Как и в случае в логическими томами, метка логического тома может быть выбрана на ваше усмотрение.<br />
<br />
Чтобы создать раздел swap внутри тома, нужен дополнительный параметр: <br />
# lvcreate -C y -L 10G VolGroup00 -n lvolswap<br />
{{Codeline|-C y}} создаст монолитный раздел, то есть раздел swap будет создан на одном диске и не будет "размазан" на несколько устройств или физических расширений. <br />
<br />
Если вы хотите использовать всё оставшееся свободное место внутри группы томов, выполните:<br />
# lvcreate -l +100%FREE VolGroup00 -n lvolmedia<br />
<br />
Логические тома можно отобразить командой:<br />
# lvdisplay<br />
<br />
{{Note|возможно потребуется загрузка модуля ядра ('''modprobe dm-mod''')}}<br />
<br />
{{Tip|Для начала можно создать относительно небольшие тома и позже по мере надобности их расширить. Оставьте свободное место внутри группы томов, чтобы было место для последующего увеличения разделов.}}<br />
<br />
====Создание файловых систем и их монтирование====<br />
Ваши логические тома должны быть доступны по следующему пути: {{Filename|/dev/mapper/}} и {{Filename|/dev/YourVolumeGroupName}}. Если их там нет, загрузите модуль ядра и сделайте группы доступными:<br />
# modprobe dm-mod<br />
# vgchange -ay<br />
Теперь можно создать файловые системы внутри логических томов и смонтировать их как обычные разделы.Если вы устанавливаете Arch Linux, пропустите этот шаг и используйте программу установки для выбора LVM разделов, которые вы создали.<br />
# mkfs.ext3 /dev/mapper/VolGroup00-lvolhome<br />
# mount /dev/mapper/VolGroup00-lvolhome /home<br />
Если вы устанавливаете Arch Linux, выполните /arch/setup, перейдите к ''Prepare Hard Drive'' далее сразу выберите ''Set Filesystem Mountpoints'' и '''''прочтите абзац [[Lvm#Важно|Важно]] перед тем как продолжить!'''''<br />
<br />
===Важно===<br />
Осталось всего несколько шагов, будьте внимательны при использовании/установке Arch Linux на LVM(в скобках указаны соответствующие меню во время установки):<br />
#Во время выбора точек монтирования выберете только что созданные логические тома(используйте: {{Filename|/dev/mapper/Volgroup00-lvolhome}}).<br> НЕ выбирайте физические разделы на которых были созданы логические тома(не используйте: {{Filename|/dev/sda2}}). (''Set Filesystem Mountpoints'')<br />
#Убедитесь, что вы заменили ''USELVM="no"'' на ''USELVM="yes"''в ''USELVM="no"'' to ''USELVM="yes"''<br />
#Убедитесь, что ''lvm2'' находится в секции HOOKS в {{Filename|/etc/mkinitcpio.conf}} непосредственно перед ''filesystems'', для того чтобы ядро смогло найти LVM во <br />
время загрузки. Если вы хотите использовать LVM образы(англ. snapshots) добавьте ''dm-snapshot'' к переменной MODULES (''Configure System'')<br />
#Убедитесь, что в {{Filename|/boot/grub/menu.lst}} указаны правильные тома для раздела /root.(''Install Bootloader'')<br />
Пример {{Filename|/boot/grub/menu.lst}}<br />
...<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,0)<br />
kernel /vmlinuz26 '''root=/dev/mapper/VolGroup00-lvolroot''' resume=/dev/mapper/VolGroup00-lvolswap ro<br />
initrd /kernel26.img<br />
...<br />
If you are using LILO check {{Filename|/etc/lilo.conf}}:<br />
image=/boot/vmlinuz26<br />
label=arch<br />
append="'''root=/dev/mapper/VolGroup00-lvolroot''' resume=/dev/mapper/VolGroup00-lvolswap ro"<br />
initrd=/boot/kernel26.img<br />
<br />
= Настройка =<br />
<br />
== Увеличение размера логического тома ==<br />
Для этого нужно увеличить сам том и затем размер файловой системы на нём. Представим, что у нас есть логический том размером 15Гб с ext3 на нём. Увеличим его размер до 20Гб:<br />
# lvextend -L 20G VolGroup00/lvolhome (или lvresize -L +5G VolGroup00/lvolhome)<br />
# resize2fs /dev/VolGroup00/lvolhome<br />
Вы можете использовать {{Codeline|lvresize}} вместо {{Codeline|lvextend}}.<br />
<br />
Если вы хотите заполнить всё свободное место в группе томов:<br />
# lvextend -l +100%FREE VolGroup00/lvolhome<br />
<br />
{{Warning|Не все файловые системы поддерживают изменение раздела в режиме "online" без потери данных.}}<br />
<br />
{{Note|Если вы не увеличите размер файловой системы, вы не сможете использовать свободное место добавленное к логическому тому.}}<br />
<br />
== Уменьшение размера логического тома==<br />
Скорее всего размер файловой системы такой-же как и логического тома, поэтому сначала нужно уменьшить её размет и только потом уменьшать размер тома.<br />
Дальнейшие действия зависят от типа файловой системы, возможно вам нужно отмонтировать её. Для логического тома размером 15ГБ и ext3 уменьшение размера до 10ГБ<br />
выглядит следующим образом: <br />
# resize2fs /dev/VolGroup00/lvolhome 9G<br />
# lvreduce -L 10G VolGroup00/lvolhome (или lvresize -L -5G VolGroup00/lvolhome)<br />
# resize2fs /dev/VolGroup00/lvolhome<br />
В данном случае мы уменьшили размер файловой системы до 9Гб чтобы при уменьшении размера логического тома, случайно, не потерять данные в конце файловой системы. После этого размер файловой системы можно увеличить.<br />
Вы можете использовать {{Codeline|lvresize}} вместо {{Codeline|lvreduce}}.<br />
<br />
{{Warning|Не уменьшайте размер файловой системы, до размера меньшего чем объём данных на ней, иначе вы рискуете потерять данные.}}<br />
<br />
{{Warning|Не все файловые системы поддерживают изменение раздела в режиме "online" без потери данных.}}<br />
<br />
{{Note|Рекомендуется задать размер файловой системы меньше чем логического тома чтобы при уменьшении размера логического тома, случайно, не потерять данные в конце файловой системы.}}<br />
<br />
== Добавить раздел к логической группе ==<br />
Тип раздела должен быть 'Linux LVM'. Используйте, например, {{Codeline|cfdisk}}. После этого нужно создать физический том на этом разделе и затем добавить его к логической группе:<br />
# pvcreate /dev/sdb1<br />
# vgextend VolGroup00 /dev/sdb1<br />
<br />
{{Tip|К логической группе могут быть добавлены разделы с любого диска в вашей системе.}}<br />
<br />
== Удаление раздела из логической группы ==<br />
Перед удаление нужно переместить данные на другой раздел. LVM легко с этим справится:<br />
# pvmove /dev/sdb1<br />
Если вы хотите чтобы данные были перемещены на определённый физический том, передайте его в качестве второго аргумента командной строки:<br />
# pvmove /dev/sdb1 /dev/sdf1<br />
Если физический том должен быть удалён из группы томов:<br />
# vgreduce myVg /dev/sdb1<br />
Или удалите все пустые физические тома:<br />
# vgreduce --all vg0<br />
И наконец если вы хотите использовать раздел для чего-то другого и отвязать его от LVM совсем:<br />
# pvremove /dev/sdb1<br />
<br />
== Snapshots ==<br />
====Введение====<br />
LVM allows you to take a snapshot of your system in a much more efficient way than a traditional backup. It does this efficiently by using a COW (copy-on-write) policy. The initial snapshot you take simply contains hard-links to the inodes of your actual data. So long as your data remains unchanged, the snapshot merely contains its inode pointers and not the data itself. Whenever you modify a file or directory that the snapshot points to, LVM automatically clones the data, the old copy referenced by the snapshot, and the new copy referenced by your active system. Thus, you can snapshot a system with 35GB of data using just 2GB of free space so long as you modify less than 2GB (on both the original and snapshot).<br />
<br />
====Configuration====<br />
You create snapshot logical volumes just like normal ones.<br />
<br />
# lvcreate --size 100M --snapshot --name snap01 /dev/mapper/vg0-pv<br />
With that volume, you may modify less than 100M of data, before the snapshot volume fills up.<br />
<br />
It is important to have the ''dm-snapshot'' module listed in the MODULES variable of {{Filename|/etc/mkinitcpio.conf}}, otherwise the system will not boot. If you do this on an already installed system, make sure to rebuild the image with<br />
# mkinitcpio -g /boot/kernel26.img<br />
<br />
Todo: scripts to automate snapshots of root before updates, to rollback... updating {{Filename|menu.lst}} to boot snapshots (separate article?)<br />
<br />
snapshots are primarily used to provide a frozen copy of a filesystem to make backups; a backup taking two hours provides a more consistent image of the filesystem than directly backing up the partition.<br />
<br />
= Решение проблем =<br />
====LVM команды не работают ====<br />
*Загрузите модуль ядра:<br />
# modprobe dm-mod<br />
* Попробуйте использовать префикс ''lvm'':<br />
# lvm pvdisplay<br />
<br />
==== Не видно логические тома ====<br />
При установке на систему с уже существующей группой томов, вы можете не увидеть логические тома даже после "modprobe dm-mod".<br />
<br />
В этом случае вам возможно прийдётся выполнить:<br />
# vgchange -ay <volgroup><br />
<br />
<br />
= Ещё по теме =<br />
Другие статьи на Arch Wiki:<br />
* [[Installing_with_Software_RAID_or_LVM|Installing with software RAID or LVM]]<br />
* [[RAID_Encryption_LVM|RAID encryption LVM]]<br />
Внешние ссылки:<br />
* [http://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux) LVM on wikipedia]<br />
* [http://tldp.org/HOWTO/LVM-HOWTO/ LVM HOWTO on tldp.org ]<br />
* [http://www.gentoo.org/doc/en/lvm2.xml Gentoo LVM2 installation at gentoo.org ]<br />
* [http://en.gentoo-wiki.com/wiki/LVM LVM at en.gentoo-wiki.com]</div>Irrlichthttps://wiki.archlinux.org/index.php?title=LVM_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124587LVM (Русский)2010-12-09T16:02:29Z<p>Irrlicht: /* Введение */</p>
<hr />
<div>[[Category:Getting and installing Arch (English)]]<br />
[[Category:File systems (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n|LVM}}<br />
<br />
{{translateme}}<br />
=Введение=<br />
<br />
Менеджер логических томов (англ. Logical Volume Manager) — менеджер логических томов. В отличие от разделов жёсткого диска, размеры логических томов можно легко менять.<br />
<br />
Устройство LVM:<br />
<br />
<br />
* '''Физический том(англ. physical volume)''': Раздел на жёстком диске или жёсткий диск на котором создаются логические тома.<br />
* '''Группа томов (англ. volume group)''': Набор физических томов в один объект. Содержат логические тома.Группу томов можно представить как жёсткие диски.<br />
* '''Логический том (англ. logical volume)''': аналогичен разделу (hda1, sdа1) на не-LVM системах. Так же, как и на них, представляется как блочное устройство и может нести файловую систему.<br />
* '''Физический диапазон (англ. physical extent) ''': Небольшая часть диска(обычно имеет размер 4MB), которая может быть добавлена к логическому тому. Может быть добавлен к любому разделу.<br />
* '''Логические диапазоны (англ. logical extent)''': диапазоны, на которые разбивается логический том. Их объём одинаков по всей группе томов.<br />
<br />
<br />
<br />
Некоторые возможности LVM:<br />
<br />
* использование любого количества жёстких дисков или их разделов как один большой раздел.<br />
* логические тома могут быть "размазаны" на несколько жёстких дисков. Максимальный размер равен объёму всех жёстких дисков.<br />
* изменение/создание/удаление логических томов в любом виде. То есть не зависит от физического расположения тома.<br />
* изменение/создание/удаление логических томов и групп томов в режиме "online"(Внимание: не все файловые системы, поддерживают изменение размере в режиме "online")<br />
* динамическое увеличение размера логических томов по мере их наполнения. Увеличение размера производится пользователем, некоторые файловые системы поддерживают изменение размера в режиме "online".<br />
<br />
<br />
<br />
Пример:<br />
'''Жёсткий диск'''<br />
<br />
Disk1 (/dev/sda):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br />
|Partition1 50GB (Physical volume) |Partition2 80GB (Physical volume) |<br />
|/dev/sda1 |/dev/sda2 |<br />
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |<br />
<br />
Disk2 (/dev/sdb):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br />
|Partition1 120GB (Physical volume) |<br />
|/dev/sdb1 |<br />
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _|<br />
<br />
'''Логические тома'''<br />
<br />
Volume Group1 (/dev/MyStorage/ = /dev/sda1 + /dev/sda2 + /dev/sdb1):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ <br />
|Logical volume1 15GB |Logical volume2 35GB |Logical volume3 200GB |<br />
|/dev/MyStorage/rootvol|/dev/MyStorage/homevol |/dev/MyStorage/mediavol |<br />
|_ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |<br />
<br />
В сумме получается: объединение всего доступного места в одну группу томов(LV) и более гибкий контроль над разделами(логическими томами)<br />
<br />
=Установка=<br />
<br />
Перед началом установки нужно загрузить модуль ядра:<br />
# modprobe dm-mod<br />
Если вы уже установили Arch Linux и хотите попробовать LVM в действии, перейдите сразу к [[Lvm#Partition_disks|partition disks]].<br />
<br />
====Установка Arch Linux на LVM====<br />
Перед запуском /arch/setup нужно разметить жёсткий диск. Например с помощью {{Codeline|cfdisk}}. Загрузчик grub версии ниже 1.0 не поддерживает загрузку с томов LVM, поэтому раздел {{Filename|/boot}} должен быть расположен на загрузочном разделе(100МБ должно хватить) либо используйте lilo или grub версии 1.95 и выше. <br />
<br />
====Разметка дисков====<br />
<br />
Для начала нужно создать раздел для LVM. Тип файловой системы должен быть 'Linux LVM' поэтому при разметке используйте id 0x8e (тип файловой системы: 8e).<br />
Для работы LVM требует наличие одного раздела типа 'Linux LVM' на каждом жёстком диске, который вы хотите использовать с LVM. Логические тома находятся внутри этих разделов, поэтому задайте им соответствующий размер. Если вы предполагаете не создавать других разделов на этих дисках - используйте всё доступное место на каждом диске.<br />
<br />
<br />
{{Warning|/boot не может находиться внутри LVM раздела т.к. grub (версии<1.95) не имеет поддержки загрузки с LVM.}}<br />
<br />
{{Tip|Все разделы LVM на всех дисках могут быть представлены в виде одного большого диска.}}<br />
<br />
====Создание физических томов(PV)====<br />
Произведите инициализацию разделов чтобы LVM мог использовать их. Используйте {{Codeline|fdisk -l}} чтобы найти разделы с файловой системой 'Linux LVM' и создайте в них физические тома:<br />
# pvcreate /dev/sda2<br />
Замените {{Filename|/dev/sda2}} на имена разделов на вашей системе. Эта команда поместит заголовок на каждый раздел. Теперь он может быть использован LVM.<br />
Отобразить все разделы, которые LVM может использовать, можно с помощью:<br />
# pvdisplay<br />
<br />
====Создание группы логических томов====<br />
Следующий шаг - это создание логических томов внутри физических томов. <br />
Выполните следующую команду на каждом физическом томе:<br />
# vgcreate VolGroup00 /dev/sda2<br />
# vgextend VolGroup00 /dev/sdb1<br />
Метку "VolGroup00" можно заменить на любую другую.<br />
Отобразить все доступные логические тома можно с помощью:<br />
# vgdisplay<br />
<br />
{{Note|Можно создать несколько логических групп, но тогда они будут видны в системе в виде нескольких дисков.}}<br />
<br />
====Создание логических томов====<br />
Теперь нужно создать логические тома внутри группы томов. Следующая команда создаст логический том внутри "VolGroup00" с размером 10GB и меткой "lvolhome" <br />
# lvcreate -L 10G VolGroup00 -n lvolhome<br />
Этот том будет доступен позже как устойство {{Filename|/dev/mapper/Volgroup00-lvolhome}} или {{Filename|/dev/VolGroup00/lvolhome}}.<br />
Как и в случае в логическими томами, метка логического тома может быть выбрана на ваше усмотрение.<br />
<br />
Чтобы создать раздел swap внутри тома, нужен дополнительный параметр: <br />
# lvcreate -C y -L 10G VolGroup00 -n lvolswap<br />
{{Codeline|-C y}} создаст монолитный раздел, то есть раздел swap будет создан на одном диске и не будет "размазан" на несколько устройств или физических расширений. <br />
<br />
Если вы хотите использовать всё оставшееся свободное место внутри группы томов, выполните:<br />
# lvcreate -l +100%FREE VolGroup00 -n lvolmedia<br />
<br />
Логические тома можно отобразить командой:<br />
# lvdisplay<br />
<br />
{{Note|возможно потребуется загрузка модуля ядра ('''modprobe dm-mod''')}}<br />
<br />
{{Tip|Для начала можно создать относительно небольшие тома и позже по мере надобности их расширить. Оставьте свободное место внутри группы томов, чтобы было место для последующего увеличения разделов.}}<br />
<br />
====Создание файловых систем и их монтирование====<br />
Ваши логические тома должны быть доступны по следующему пути: {{Filename|/dev/mapper/}} и {{Filename|/dev/YourVolumeGroupName}}. Если их там нет, загрузите модуль ядра и сделайте группы доступными:<br />
# modprobe dm-mod<br />
# vgchange -ay<br />
Теперь можно создать файловые системы внутри логических томов и смонтировать их как обычные разделы.Если вы устанавливаете Arch Linux, пропустите этот шаг и используйте программу установки для выбора LVM разделов, которые вы создали.<br />
# mkfs.ext3 /dev/mapper/VolGroup00-lvolhome<br />
# mount /dev/mapper/VolGroup00-lvolhome /home<br />
Если вы устанавливаете Arch Linux, выполните /arch/setup, перейдите к ''Prepare Hard Drive'' далее сразу выберите ''Set Filesystem Mountpoints'' и '''''прочтите абзац [[Lvm#Важно|Важно]] перед тем как продолжить!'''''<br />
<br />
===Важно===<br />
Осталось всего несколько шагов, будьте внимательны при использовании/установке Arch Linux на LVM(в скобках указаны соответствующие меню во время установки):<br />
#Во время выбора точек монтирования выберете только что созданные логические тома(используйте: {{Filename|/dev/mapper/Volgroup00-lvolhome}}).<br> НЕ выбирайте физические разделы на которых были созданы логические тома(не используйте: {{Filename|/dev/sda2}}). (''Set Filesystem Mountpoints'')<br />
#Убедитесь, что вы заменили ''USELVM="no"'' на ''USELVM="yes"''в ''USELVM="no"'' to ''USELVM="yes"''<br />
#Убедитесь, что ''lvm2'' находится в секции HOOKS в {{Filename|/etc/mkinitcpio.conf}} непосредственно перед ''filesystems'', для того чтобы ядро смогло найти LVM во <br />
время загрузки. Если вы хотите использовать LVM образы(англ. snapshots) добавьте ''dm-snapshot'' к переменной MODULES (''Configure System'')<br />
#Убедитесь, что в {{Filename|/boot/grub/menu.lst}} указаны правильные тома для раздела /root.(''Install Bootloader'')<br />
Пример {{Filename|/boot/grub/menu.lst}}<br />
...<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,0)<br />
kernel /vmlinuz26 '''root=/dev/mapper/VolGroup00-lvolroot''' resume=/dev/mapper/VolGroup00-lvolswap ro<br />
initrd /kernel26.img<br />
...<br />
If you are using LILO check {{Filename|/etc/lilo.conf}}:<br />
image=/boot/vmlinuz26<br />
label=arch<br />
append="'''root=/dev/mapper/VolGroup00-lvolroot''' resume=/dev/mapper/VolGroup00-lvolswap ro"<br />
initrd=/boot/kernel26.img<br />
<br />
= Настройка =<br />
<br />
== Увеличение размера логического тома ==<br />
Для этого нужно увеличить сам том и затем размер файловой системы на нём. Представим, что у нас есть логический том размером 15Гб с ext3 на нём. Увеличим его размер до 20Гб:<br />
# lvextend -L 20G VolGroup00/lvolhome (или lvresize -L +5G VolGroup00/lvolhome)<br />
# resize2fs /dev/VolGroup00/lvolhome<br />
Вы можете использовать {{Codeline|lvresize}} вместо {{Codeline|lvextend}}.<br />
<br />
Если вы хотите заполнить всё свободное место в группе томов:<br />
# lvextend -l +100%FREE VolGroup00/lvolhome<br />
<br />
{{Warning|Не все файловые системы поддерживают изменение раздела в режиме "online" без потери данных.}}<br />
<br />
{{Note|Если вы не увеличите размер файловой системы, вы не сможете использовать свободное место добавленное к логическому тому.}}<br />
<br />
== Уменьшение размера логического тома==<br />
Скорее всего размер файловой системы такой-же как и логического тома, поэтому сначала нужно уменьшить её размет и только потом уменьшать размер тома.<br />
Дальнейшие действия зависят от типа файловой системы, возможно вам нужно отмонтировать её. Для логического тома размером 15ГБ и ext3 уменьшение размера до 10ГБ<br />
выглядит следующим образом: <br />
# resize2fs /dev/VolGroup00/lvolhome 9G<br />
# lvreduce -L 10G VolGroup00/lvolhome (или lvresize -L -5G VolGroup00/lvolhome)<br />
# resize2fs /dev/VolGroup00/lvolhome<br />
В данном случае мы уменьшили размер файловой системы до 9Гб чтобы при уменьшении размера логического тома, случайно, не потерять данные в конце файловой системы. После этого размер файловой системы можно увеличить.<br />
Вы можете использовать {{Codeline|lvresize}} вместо {{Codeline|lvreduce}}.<br />
<br />
{{Warning|Не уменьшайте размер файловой системы, до размера меньшего чем объём данных на ней, иначе вы рискуете потерять данные.}}<br />
<br />
{{Warning|Не все файловые системы поддерживают изменение раздела в режиме "online" без потери данных.}}<br />
<br />
{{Note|Рекомендуется задать размер файловой системы меньше чем логического тома чтобы при уменьшении размера логического тома, случайно, не потерять данные в конце файловой системы.}}<br />
<br />
== Добавить раздел к логической группе ==<br />
Тип раздела должен быть 'Linux LVM'. Используйте, например, {{Codeline|cfdisk}}. После этого нужно создать физический том на этом разделе и затем добавить его к логической группе:<br />
# pvcreate /dev/sdb1<br />
# vgextend VolGroup00 /dev/sdb1<br />
<br />
{{Tip|К логической группе могут быть добавлены разделы с любого диска в вашей системе.}}<br />
<br />
== Удаление раздела из логической группы ==<br />
Перед удаление нужно переместить данные на другой раздел. LVM легко с этим справится:<br />
# pvmove /dev/sdb1<br />
Если вы хотите чтобы данные были перемещены на определённый физический том, передайте его в качестве второго аргумента командной строки:<br />
# pvmove /dev/sdb1 /dev/sdf1<br />
Если физический том должен быть удалён из группы томов:<br />
# vgreduce myVg /dev/sdb1<br />
Или удалите все пустые физические тома:<br />
# vgreduce --all vg0<br />
И наконец если вы хотите использовать раздел для чего-то другого и отвязать его от LVM совсем:<br />
# pvremove /dev/sdb1<br />
<br />
== Snapshots ==<br />
====Введение====<br />
LVM allows you to take a snapshot of your system in a much more efficient way than a traditional backup. It does this efficiently by using a COW (copy-on-write) policy. The initial snapshot you take simply contains hard-links to the inodes of your actual data. So long as your data remains unchanged, the snapshot merely contains its inode pointers and not the data itself. Whenever you modify a file or directory that the snapshot points to, LVM automatically clones the data, the old copy referenced by the snapshot, and the new copy referenced by your active system. Thus, you can snapshot a system with 35GB of data using just 2GB of free space so long as you modify less than 2GB (on both the original and snapshot).<br />
<br />
====Configuration====<br />
You create snapshot logical volumes just like normal ones.<br />
<br />
# lvcreate --size 100M --snapshot --name snap01 /dev/mapper/vg0-pv<br />
With that volume, you may modify less than 100M of data, before the snapshot volume fills up.<br />
<br />
It is important to have the ''dm-snapshot'' module listed in the MODULES variable of {{Filename|/etc/mkinitcpio.conf}}, otherwise the system will not boot. If you do this on an already installed system, make sure to rebuild the image with<br />
# mkinitcpio -g /boot/kernel26.img<br />
<br />
Todo: scripts to automate snapshots of root before updates, to rollback... updating {{Filename|menu.lst}} to boot snapshots (separate article?)<br />
<br />
snapshots are primarily used to provide a frozen copy of a filesystem to make backups; a backup taking two hours provides a more consistent image of the filesystem than directly backing up the partition.<br />
<br />
= Решение проблем =<br />
====LVM команды не работают ====<br />
*Загрузите модуль ядра:<br />
# modprobe dm-mod<br />
* Попробуйте использовать префикс ''lvm'':<br />
# lvm pvdisplay<br />
<br />
==== Не видно логические тома ====<br />
При установке на систему с уже существующей группой томов, вы можете не увидеть логические тома даже после "modprobe dm-mod".<br />
<br />
В этом случае вам возможно прийдётся выполнить:<br />
# vgchange -ay <volgroup><br />
<br />
<br />
= Ещё по теме =<br />
Другие статьи на Arch Wiki:<br />
* [[Installing_with_Software_RAID_or_LVM|Installing with software RAID or LVM]]<br />
* [[RAID_Encryption_LVM|RAID encryption LVM]]<br />
Внешние ссылки:<br />
* [http://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux) LVM on wikipedia]<br />
* [http://tldp.org/HOWTO/LVM-HOWTO/ LVM HOWTO on tldp.org ]<br />
* [http://www.gentoo.org/doc/en/lvm2.xml Gentoo LVM2 installation at gentoo.org ]<br />
* [http://en.gentoo-wiki.com/wiki/LVM LVM at en.gentoo-wiki.com]</div>Irrlichthttps://wiki.archlinux.org/index.php?title=LVM_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124585LVM (Русский)2010-12-09T15:49:02Z<p>Irrlicht: Created page with "Category:Getting and installing Arch (English) Category:File systems (English) Category:HOWTOs (English) {{i18n|LVM}} =Введение= Менеджер логич..."</p>
<hr />
<div>[[Category:Getting and installing Arch (English)]]<br />
[[Category:File systems (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n|LVM}}<br />
<br />
=Введение=<br />
<br />
Менеджер логических томов (англ. Logical Volume Manager) — менеджер логических томов. В отличие от разделов жёсткого диска, размеры логических томов можно легко менять.<br />
<br />
Устройство LVM:<br />
<br />
<br />
* '''Физический том(англ. physical volume)''': Раздел на жёстком диске или жёсткий диск на котором создаются логические тома.<br />
* '''Группа томов (англ. volume group)''': Набор физических томов в один объект. Содержат логические тома.Группу томов можно представить как жёсткие диски.<br />
* '''Логический том (англ. logical volume)''': аналогичен разделу (hda1, sdа1) на не-LVM системах. Так же, как и на них, представляется как блочное устройство и может нести файловую систему.<br />
* '''Физический диапазон (англ. physical extent) ''': Небольшая часть диска(обычно имеет размер 4MB), которая может быть добавлена к логическому тому. Может быть добавлен к любому разделу.<br />
* '''Логические диапазоны (англ. logical extent)''': диапазоны, на которые разбивается логический том. Их объём одинаков по всей группе томов.<br />
<br />
<br />
<br />
Некоторые возможности LVM:<br />
<br />
* использование любого количества жёстких дисков или их разделов как один большой раздел.<br />
* логические тома могут быть "размазаны" на несколько жёстких дисков. Максимальный размер равен объёму всех жёстких дисков.<br />
* изменение/создание/удаление логических томов в любом виде. То есть не зависит от физического расположения тома.<br />
* изменение/создание/удаление логических томов и групп томов в режиме "online"(Внимание: не все файловые системы, поддерживают изменение размере в режиме "online")<br />
* динамическое увеличение размера логических томов по мере их наполнения. Увеличение размера производится пользователем, некоторые файловые системы поддерживают изменение размера в режиме "online".<br />
<br />
<br />
<br />
Пример:<br />
'''Жёсткий диск'''<br />
<br />
Disk1 (/dev/sda):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br />
|Partition1 50GB (Physical volume) |Partition2 80GB (Physical volume) |<br />
|/dev/sda1 |/dev/sda2 |<br />
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |<br />
<br />
Disk2 (/dev/sdb):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br />
|Partition1 120GB (Physical volume) |<br />
|/dev/sdb1 |<br />
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _|<br />
<br />
'''Логические тома'''<br />
<br />
Volume Group1 (/dev/MyStorage/ = /dev/sda1 + /dev/sda2 + /dev/sdb1):<br />
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ <br />
|Logical volume1 15GB |Logical volume2 35GB |Logical volume3 200GB |<br />
|/dev/MyStorage/rootvol|/dev/MyStorage/homevol |/dev/MyStorage/mediavol |<br />
|_ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |<br />
<br />
В сумме получается: объединение всего доступного места в одну группу томов(LV) и более гибкий контроль над разделами(логическими томами)<br />
<br />
<br />
=Установка=<br />
<br />
Перед началом установки нужно загрузить модуль ядра:<br />
# modprobe dm-mod<br />
Если вы уже установили Arch Linux и хотите попробовать LVM в действии, перейдите сразу к [[Lvm#Partition_disks|partition disks]].<br />
<br />
====Установка Arch Linux на LVM====<br />
Перед запуском /arch/setup нужно разметить жёсткий диск. Например с помощью {{Codeline|cfdisk}}. Загрузчик grub версии ниже 1.0 не поддерживает загрузку с томов LVM, поэтому раздел {{Filename|/boot}} должен быть расположен на загрузочном разделе(100МБ должно хватить) либо используйте lilo или grub версии 1.95 и выше. <br />
<br />
====Разметка дисков====<br />
<br />
Для начала нужно создать раздел для LVM. Тип файловой системы должен быть 'Linux LVM' поэтому при разметке используйте id 0x8e (тип файловой системы: 8e).<br />
Для работы LVM требует наличие одного раздела типа 'Linux LVM' на каждом жёстком диске, который вы хотите использовать с LVM. Логические тома находятся внутри этих разделов, поэтому задайте им соответствующий размер. Если вы предполагаете не создавать других разделов на этих дисках - используйте всё доступное место на каждом диске.<br />
<br />
<br />
{{Warning|/boot не может находиться внутри LVM раздела т.к. grub (версии<1.95) не имеет поддержки загрузки с LVM.}}<br />
<br />
{{Tip|Все разделы LVM на всех дисках могут быть представлены в виде одного большого диска.}}<br />
<br />
====Создание физических томов(PV)====<br />
Произведите инициализацию разделов чтобы LVM мог использовать их. Используйте {{Codeline|fdisk -l}} чтобы найти разделы с файловой системой 'Linux LVM' и создайте в них физические тома:<br />
# pvcreate /dev/sda2<br />
Замените {{Filename|/dev/sda2}} на имена разделов на вашей системе. Эта команда поместит заголовок на каждый раздел. Теперь он может быть использован LVM.<br />
Отобразить все разделы, которые LVM может использовать, можно с помощью:<br />
# pvdisplay<br />
<br />
====Создание группы логических томов====<br />
Следующий шаг - это создание логических томов внутри физических томов. <br />
Выполните следующую команду на каждом физическом томе:<br />
# vgcreate VolGroup00 /dev/sda2<br />
# vgextend VolGroup00 /dev/sdb1<br />
Метку "VolGroup00" можно заменить на любую другую.<br />
Отобразить все доступные логические тома можно с помощью:<br />
# vgdisplay<br />
<br />
{{Note|Можно создать несколько логических групп, но тогда они будут видны в системе в виде нескольких дисков.}}<br />
<br />
====Создание логических томов====<br />
Теперь нужно создать логические тома внутри группы томов. Следующая команда создаст логический том внутри "VolGroup00" с размером 10GB и меткой "lvolhome" <br />
# lvcreate -L 10G VolGroup00 -n lvolhome<br />
Этот том будет доступен позже как устойство {{Filename|/dev/mapper/Volgroup00-lvolhome}} или {{Filename|/dev/VolGroup00/lvolhome}}.<br />
Как и в случае в логическими томами, метка логического тома может быть выбрана на ваше усмотрение.<br />
<br />
Чтобы создать раздел swap внутри тома, нужен дополнительный параметр: <br />
# lvcreate -C y -L 10G VolGroup00 -n lvolswap<br />
{{Codeline|-C y}} создаст монолитный раздел, то есть раздел swap будет создан на одном диске и не будет "размазан" на несколько устройств или физических расширений. <br />
<br />
Если вы хотите использовать всё оставшееся свободное место внутри группы томов, выполните:<br />
# lvcreate -l +100%FREE VolGroup00 -n lvolmedia<br />
<br />
Логические тома можно отобразить командой:<br />
# lvdisplay<br />
<br />
{{Note|возможно потребуется загрузка модуля ядра ('''modprobe dm-mod''')}}<br />
<br />
{{Tip|Для начала можно создать относительно небольшие тома и позже по мере надобности их расширить. Оставьте свободное место внутри группы томов, чтобы было место для последующего увеличения разделов.}}<br />
<br />
====Создание файловых систем и их монтирование====<br />
Ваши логические тома должны быть доступны по следующему пути: {{Filename|/dev/mapper/}} и {{Filename|/dev/YourVolumeGroupName}}. Если их там нет, загрузите модуль ядра и сделайте группы доступными:<br />
# modprobe dm-mod<br />
# vgchange -ay<br />
Теперь можно создать файловые системы внутри логических томов и смонтировать их как обычные разделы.Если вы устанавливаете Arch Linux, пропустите этот шаг и используйте программу установки для выбора LVM разделов, которые вы создали.<br />
# mkfs.ext3 /dev/mapper/VolGroup00-lvolhome<br />
# mount /dev/mapper/VolGroup00-lvolhome /home<br />
Если вы устанавливаете Arch Linux, выполните /arch/setup, перейдите к ''Prepare Hard Drive'' далее сразу выберите ''Set Filesystem Mountpoints'' и '''''прочтите абзац [[Lvm#Важно|Важно]] перед тем как продолжить!'''''<br />
<br />
===Важно===<br />
Осталось всего несколько шагов, будьте внимательны при использовании/установке Arch Linux на LVM(в скобках указаны соответствующие меню во время установки):<br />
#Во время выбора точек монтирования выберете только что созданные логические тома(используйте: {{Filename|/dev/mapper/Volgroup00-lvolhome}}).<br> НЕ выбирайте физические разделы на которых были созданы логические тома(не используйте: {{Filename|/dev/sda2}}). (''Set Filesystem Mountpoints'')<br />
#Убедитесь, что вы заменили ''USELVM="no"'' на ''USELVM="yes"''в ''USELVM="no"'' to ''USELVM="yes"''<br />
#Убедитесь, что ''lvm2'' находится в секции HOOKS в {{Filename|/etc/mkinitcpio.conf}} непосредственно перед ''filesystems'', для того чтобы ядро смогло найти LVM во <br />
время загрузки. Если вы хотите использовать LVM образы(англ. snapshots) добавьте ''dm-snapshot'' к переменной MODULES (''Configure System'')<br />
#Убедитесь, что в {{Filename|/boot/grub/menu.lst}} указаны правильные тома для раздела /root.(''Install Bootloader'')<br />
Пример {{Filename|/boot/grub/menu.lst}}<br />
...<br />
# (0) Arch Linux<br />
title Arch Linux<br />
root (hd0,0)<br />
kernel /vmlinuz26 '''root=/dev/mapper/VolGroup00-lvolroot''' resume=/dev/mapper/VolGroup00-lvolswap ro<br />
initrd /kernel26.img<br />
...<br />
If you are using LILO check {{Filename|/etc/lilo.conf}}:<br />
image=/boot/vmlinuz26<br />
label=arch<br />
append="'''root=/dev/mapper/VolGroup00-lvolroot''' resume=/dev/mapper/VolGroup00-lvolswap ro"<br />
initrd=/boot/kernel26.img<br />
<br />
= Настройка =<br />
<br />
== Увеличение размера логического тома ==<br />
Для этого нужно увеличить сам том и затем размер файловой системы на нём. Представим, что у нас есть логический том размером 15Гб с ext3 на нём. Увеличим его размер до 20Гб:<br />
# lvextend -L 20G VolGroup00/lvolhome (или lvresize -L +5G VolGroup00/lvolhome)<br />
# resize2fs /dev/VolGroup00/lvolhome<br />
Вы можете использовать {{Codeline|lvresize}} вместо {{Codeline|lvextend}}.<br />
<br />
Если вы хотите заполнить всё свободное место в группе томов:<br />
# lvextend -l +100%FREE VolGroup00/lvolhome<br />
<br />
{{Warning|Не все файловые системы поддерживают изменение раздела в режиме "online" без потери данных.}}<br />
<br />
{{Note|Если вы не увеличите размер файловой системы, вы не сможете использовать свободное место добавленное к логическому тому.}}<br />
<br />
== Уменьшение размера логического тома==<br />
Скорее всего размер файловой системы такой-же как и логического тома, поэтому сначала нужно уменьшить её размет и только потом уменьшать размер тома.<br />
Дальнейшие действия зависят от типа файловой системы, возможно вам нужно отмонтировать её. Для логического тома размером 15ГБ и ext3 уменьшение размера до 10ГБ<br />
выглядит следующим образом: <br />
# resize2fs /dev/VolGroup00/lvolhome 9G<br />
# lvreduce -L 10G VolGroup00/lvolhome (или lvresize -L -5G VolGroup00/lvolhome)<br />
# resize2fs /dev/VolGroup00/lvolhome<br />
В данном случае мы уменьшили размер файловой системы до 9Гб чтобы при уменьшении размера логического тома, случайно, не потерять данные в конце файловой системы. После этого размер файловой системы можно увеличить.<br />
Вы можете использовать {{Codeline|lvresize}} вместо {{Codeline|lvreduce}}.<br />
<br />
{{Warning|Не уменьшайте размер файловой системы, до размера меньшего чем объём данных на ней, иначе вы рискуете потерять данные.}}<br />
<br />
{{Warning|Не все файловые системы поддерживают изменение раздела в режиме "online" без потери данных.}}<br />
<br />
{{Note|Рекомендуется задать размер файловой системы меньше чем логического тома чтобы при уменьшении размера логического тома, случайно, не потерять данные в конце файловой системы.}}<br />
<br />
== Добавить раздел к логической группе ==<br />
Тип раздела должен быть 'Linux LVM'. Используйте, например, {{Codeline|cfdisk}}. После этого нужно создать физический том на этом разделе и затем добавить его к логической группе:<br />
# pvcreate /dev/sdb1<br />
# vgextend VolGroup00 /dev/sdb1<br />
<br />
{{Tip|К логической группе могут быть добавлены разделы с любого диска в вашей системе.}}<br />
<br />
== Удаление раздела из логической группы ==<br />
Перед удаление нужно переместить данные на другой раздел. LVM легко с этим справится:<br />
# pvmove /dev/sdb1<br />
Если вы хотите чтобы данные были перемещены на определённый физический том, передайте его в качестве второго аргумента командной строки:<br />
# pvmove /dev/sdb1 /dev/sdf1<br />
Если физический том должен быть удалён из группы томов:<br />
# vgreduce myVg /dev/sdb1<br />
Или удалите все пустые физические тома:<br />
# vgreduce --all vg0<br />
И наконец если вы хотите использовать раздел для чего-то другого и отвязать его от LVM совсем:<br />
# pvremove /dev/sdb1<br />
<br />
== Snapshots ==<br />
====Введение====<br />
LVM allows you to take a snapshot of your system in a much more efficient way than a traditional backup. It does this efficiently by using a COW (copy-on-write) policy. The initial snapshot you take simply contains hard-links to the inodes of your actual data. So long as your data remains unchanged, the snapshot merely contains its inode pointers and not the data itself. Whenever you modify a file or directory that the snapshot points to, LVM automatically clones the data, the old copy referenced by the snapshot, and the new copy referenced by your active system. Thus, you can snapshot a system with 35GB of data using just 2GB of free space so long as you modify less than 2GB (on both the original and snapshot).<br />
<br />
====Configuration====<br />
You create snapshot logical volumes just like normal ones.<br />
<br />
# lvcreate --size 100M --snapshot --name snap01 /dev/mapper/vg0-pv<br />
With that volume, you may modify less than 100M of data, before the snapshot volume fills up.<br />
<br />
It is important to have the ''dm-snapshot'' module listed in the MODULES variable of {{Filename|/etc/mkinitcpio.conf}}, otherwise the system will not boot. If you do this on an already installed system, make sure to rebuild the image with<br />
# mkinitcpio -g /boot/kernel26.img<br />
<br />
Todo: scripts to automate snapshots of root before updates, to rollback... updating {{Filename|menu.lst}} to boot snapshots (separate article?)<br />
<br />
snapshots are primarily used to provide a frozen copy of a filesystem to make backups; a backup taking two hours provides a more consistent image of the filesystem than directly backing up the partition.<br />
<br />
= Решение проблем =<br />
====LVM команды не работают ====<br />
*Загрузите модуль ядра:<br />
# modprobe dm-mod<br />
* Попробуйте использовать префикс ''lvm'':<br />
# lvm pvdisplay<br />
<br />
==== Не видно логические тома ====<br />
При установке на систему с уже существующей группой томов, вы можете не увидеть логические тома даже после "modprobe dm-mod".<br />
<br />
В этом случае вам возможно прийдётся выполнить:<br />
# vgchange -ay <volgroup><br />
<br />
<br />
= Ещё по теме =<br />
Другие статьи на Arch Wiki:<br />
* [[Installing_with_Software_RAID_or_LVM|Installing with software RAID or LVM]]<br />
* [[RAID_Encryption_LVM|RAID encryption LVM]]<br />
Внешние ссылки:<br />
* [http://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux) LVM on wikipedia]<br />
* [http://tldp.org/HOWTO/LVM-HOWTO/ LVM HOWTO on tldp.org ]<br />
* [http://www.gentoo.org/doc/en/lvm2.xml Gentoo LVM2 installation at gentoo.org ]<br />
* [http://en.gentoo-wiki.com/wiki/LVM LVM at en.gentoo-wiki.com]</div>Irrlichthttps://wiki.archlinux.org/index.php?title=General_recommendations_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124563General recommendations (Русский)2010-12-09T10:14:01Z<p>Irrlicht: /* Changing Console Fonts */</p>
<hr />
<div>[[Category:Русский]]<br />
{{i18n|General Recommendations}}<br />
{{Bad translation}}<br />
<br />
Вот некоторые популярные хитрости и общая информация, которая может пригодиться новичкам в Arch Linux.<br />
<br />
==Загрузка==<br />
===Автоматическое распознавание устройств===<br />
* [[hwdetect]] дает информацию о том, какие модули необходимы для каждого устройства.<br />
# pacman -S hwdetect<br />
* {{Package AUR|lshwd}}является альтернативой.<br />
<br />
===Повышение скорости загрузки Lilo===<br />
Чтобы ускорить процесс загрузки [[lilo]], нужно добавить следующую команду в {{Filename|/etc/lilo.conf}}:<br />
compact<br />
<br />
===Запуск X при загрузке===<br />
Смотрите: [[Запуск_X_при_загрузке|Start X at Boot (Русский)]]<br />
<br />
===Активация Numlock при загрузке===<br />
Смотрите: [[Включение_Numlock_При_Загрузке|Activating Numlock on Bootup (Русский)]]<br />
<br />
===Конец процесса загрузки===<br />
После загрузки сситемы, экран очищается и появляется строка логина в системе, вследствие чего пользователь не может прочитать вывод инициализации или сообщения об ошибках. Это поведение по умолчанию может быть изменено несколькими путями:<br />
<br />
Добавте одну из следующий записей в конец файла {{Filename|/etc/rc.local}}:<br />
* Ждать нажатия клавиши перед очисткой экрана:<br />
read -n1<br />
* Очистка произойдет по прошествии 5-ти секунд или по нажатию клавиши:<br />
read -t5 -n1<br />
Или:<br />
* Удалите первые 3 символа в {{Filename|/etc/issue}}, которые формируют escape-последовательность очистки экрана. Это также предотвратит очистку экрана после выхода из сессии.<br />
* Запустите {{Codeline|dmesg}} из командной строки, чтобы отобразить все сообщение, сгенерированые ядром во время последней загрузки.<br />
* Comment out the agetty instance that runs on <code>vc/1</code> in {{Filename|/etc/inittab}}:<br />
#c1:2345:respawn:/sbin/agetty -8 38400 vc/1 linux<br />
<br />
==Внешний вид==<br />
===Раскрашивание вывода консоли (PS1)===<br />
<br />
Смотрите: [[Color Bash Prompt]]<br />
<br />
===Раскрашивание вывода 'ls'===<br />
Можно улучшить цветной вывод команды {{Codeline|ls}}; например, сломанные (ссылающиеся на несуществующие файлы или каталоги) символьные ссылки будут отображаться красным.<br />
<br />
Файл {{Filename|~/.bashrc}} уже должен содержать такую запись, скопированную из {{Filename|/etc/skel/.bashrc}}:<br />
alias ls='ls --color=auto'<br />
Следующий шаг - добавление следующей строки в {{Filename|~/.bashrc}} и перезаход в учетную запись:<br />
eval `dircolors -b`<br />
{{Note|В последней команде использованы не одиночные, а обратные кавычки}}<br />
<br />
===Раскрашивание вывода 'grep'===<br />
Помимо запросов эстетов, цветной вывод {{Codeline|grep}} весьма полезен для изучения {{Codeline|регекспов}} и общей функциональности {{Codeline|grep}}.<br />
Чтобы включить его, добавьте следующие строки в {{Filename|~/.bashrc}}:<br />
export GREP_COLOR="1;33"<br />
alias grep='grep --color=auto'<br />
Переменная <code>GREP_COLOR</code> определяет цвет, в примере он светло-жёлтый.<br />
<br />
Хотя ман-страница {{Codeline|grep}} сообщает, что переменная <code>GREP_COLOR</code> устарела и вместо неё лучшеиспользовать <code>GREP_COLORS</code>, эта переменная не работает (по крайней мере в grep 2.5.4) так что пока используйте <code>GREP_COLOR</code>.<br />
<br />
===Раскрашивание и командная оболочка Emcas===<br />
<br />
Emacs, по умолчанию, показывает Escape-последовательности в явном виде вместо определения цвета. <br />
Включение следующей строки в {{Filename|~/.emacs}} решит эту проблему:<br />
<br />
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)<br />
<br />
===Получение раскрашенных Man-страниц===<br />
Смотрите: [[Man Page]]<br />
<br />
===Изменение цветов консоли===<br />
Terminus популярен среди пользователей Arch. Устанавливается так:<br />
pacman -S terminus-font<br />
Отредактируйте {{Filename|/etc/rc.conf}}:<br />
CONSOLEFONT="ter-v16b"<br />
Другие шрифты (с отличающимися стилями и размерами) могут быть найдены тут: {{Filename|/usr/share/kbd/consolefonts}}<br />
<br />
Переключайте шрифты налету с {{Codeline|setfont}}:<br />
setfont ter-v16b<br />
Если шрифт в консоли изменился в процессе загрузки и init выводит странные символы, добавьте ''keymap'' ловушку (hook) в {{Codeline|/etc/mkinitcpio.conf}} и пересоздайте ''initramfs'' образ:<br />
mkinitcpio -p kernel26<br />
<br />
Смотрите: [[Mkinitcpio_(Русский)|Mkinitcpio]]<br />
<br />
===Улучшение вида шрифтов для LCD мониторов===<br />
Смотрите: [[Font Configuration#LCD filter patched packages]]<br />
<br />
==Общие улучшения консоли==<br />
<br />
===Включение поиска по истории===<br />
See: [[Bash#History Search|Bash:History Search]]<br />
<br />
===Быстрое Bash дополнение===<br />
С добавлением в {{Filename|~/.bashrc}}:<br />
set show-all-if-ambiguous on<br />
нет необходимости дважды жать ''<Tab>'' чтобы получить список дополнений, теперь он будет появляться после одного нажатия.<br />
<br />
===Расширенное Bash дополнение===<br />
See: [[Bash#Advanced Bash Completion|Bash:Advanced Bash Completion]]<br />
<br />
===Алиасы (псевдонимы) команд для экономии времени===<br />
alias ll="ls -lh"<br />
alias la="ls -a"<br />
alias exit="clear; exit"<br />
alias x="startx"<br />
Персональные алиасы предпочтительно добавлять в {{Filename|~/.bashrc}}, алиасы уровня системы (которые применяются ко всем пользователям) находятся в {{Filename|/etc/bash.bashrc}}.<br />
<br />
===Полезные команды и программы===<br />
<br />
* '''grep''' - Ищет файл(ы) по шаблону.<br />
<br />
grep -i syslog /etc/*<br />
<br />
: Эта команда найдет все файлы в {{Filename|/etc}}, в которых встречается слово "''syslog''". Опция {{Codeline|-i}} позволяет искать регистронезависимые совпадения.<br />
<br />
* '''pkill''' и '''killall''' - Убивает процесс по имени.<br />
<br />
killall kdm<br />
<br />
: Убьет все потоки процесса {{Codeline|kdm}}.<br />
<br />
* '''pidof''' - Находит PID процесса по имени.<br />
<br />
pidof init<br />
<br />
: Выведет PID процесса init.<br />
<br />
* '''ps''' - Показывает состояние запущенных процессов.<br />
<br />
ps aux<br />
<br />
: Покажет все активные процессы.<br />
<br />
* '''locate''' - Быстро определяет местонахождение файлов на жестком диске.<br />
<br />
locate egrep<br />
<br />
: Найдет файлы и директории, в именах которых содержится ''egrep'' (перед использованием необходимо обновить базу (индексировать) путем выполнения {{Codeline|updatedb}}).<br />
<br />
===Извлечение сжатых файлов===<br />
<br />
Для {{Codeline|tar}} архивов используется комманда {{Codeline|tar}}, по умолчанию распаковывающая файл в соответствии с его расширением:<br />
<br />
tar xvf file.''расширение''<br />
<br />
В следующих примерах явно указываются типы архивов:<br />
<br />
file.tar : tar xvf file.tar<br />
file.tgz : tar xvzf file.tgz<br />
file.tar.gz : tar xvzf file.tar.gz<br />
file.tar.bz : bzip -cd file.bz | tar xvf -<br />
file.tar.bz2 : tar xvjf file.tar.bz2 <b>OR</b> bzip2 -cd file.bz2 | tar xvf -<br />
file.tar.xz : tar xvJf file.tar.xz <b>OR</b> xz -cd file.xz | tar xvf -<br />
file.zip : unzip file.zip<br />
file.rar : unrar x file.rar<br />
<br />
Некоторые из этих конструкций обеспечивают совместимость со старыми версиями, но они до сих пор бывают полезными при выполнении спецефических операций. Более подробную информацию ищите в руководстве(''man tar'') в секции ''Compatibility''.<br />
<br />
Чтобы не вводить каждый раз вручную комманды для распаковки архивов можно использовать приведенную ниже функцию. Добавьте следующий код в {{Filename|~/.bashrc}} и используйте {{Filename|extract <file_name>}}:<br />
<br />
<pre><br />
extract () {<br />
if [ -f $1 ] ; then<br />
case $1 in<br />
*.tar.bz2) tar xvjf $1 ;;<br />
*.tar.gz) tar xvzf $1 ;;<br />
*.tar.xz) tar xvJf $1 ;;<br />
*.bz2) bunzip2 $1 ;;<br />
*.rar) unrar x $1 ;;<br />
*.gz) gunzip $1 ;;<br />
*.tar) tar xvf $1 ;;<br />
*.tbz2) tar xvjf $1 ;;<br />
*.tgz) tar xvzf $1 ;;<br />
*.zip) unzip $1 ;;<br />
*.Z) uncompress $1 ;;<br />
*.7z) 7z x $1 ;;<br />
*.xz) unxz $1 ;;<br />
*.exe) cabextract $1 ;;<br />
*) echo "\`$1': неизвестный метод сжатия файла" ;;<br />
esac<br />
else<br />
echo "\`$1' нет такого файла"<br />
fi<br />
}<br />
</pre><br />
Функция сама выберет необходимую программу и аргументы для распаковки конкретного архива.<br />
{{Note|Для нормальной работы функции убедитесь, что все используемые ею программы присутствуют в вашей системе}}<br />
<br />
===Использование 'less' Для Просмотра Сжатых Файлов===<br />
Юзеры, часто пользующиеся командной строкой, возможно захотят установить [http://www-zeuthen.desy.de/~friebel/unix/lesspipe.html lesspipe]:<br />
# pacman -S lesspipe<br />
Это позволяет использовать {{Codeline|less}} для просмотра архивов:<br />
less compressed_file.tar.gz<br />
Результат будет примерно таков:<br />
==> use tar_file:contained_file to view a file in the archive<br />
-rw------- username/group 695 2008-01-04 19:24 compressed_file/content1<br />
-rw------- username/group 43 2007-11-07 11:17 compressed_file/content2<br />
compressed_file.tar.gz (END)<br />
Это также даёт воззможность использовать {{Codeline|less}} для просмотра других типов файлов; как альтернативу для команд, ассоциированых с определённым типом файла (например просмотр html или pdf с помощью html2txt или pdftotext).<br />
<br />
После установки {{Codeline|lesspipe}} следует перелогиниться или запустить {{Filename|/etc/profilde.d/lesspipe.sh}}<br />
<br />
===Включение поддержки мыши в консоли (gpm)===<br />
Установка {{Codeline|gpm}} предоставляет поддержку мыши в консоли:<br />
# pacman -S gpm<br />
Чтобы запустить его:<br />
# /etc/rc.d/gpm start<br />
Если мышь не работает должным образом, отредактируйте {{Filename|/etc/conf.d/gpm}}:<br />
* Для PS/2 мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/psaux -t ps2"<br />
* Для USB мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t imps2"<br />
* Для устройств IBM Trackpoint, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t ps2"<br />
Когда подходящая конфигурация найдена, добавьте {{Codeline|gpm}} в <code>DAEMONS</code> массив файла {{Filename|/etc/rc.conf}}, чтобы демон {{Codeline|gpm}} запускался при загрузке. Пример:<br />
DAEMONS=(syslog-ng '''gpm''' network netfs crond)<br />
<br />
==Локальная доставка почты==<br />
<br />
===Postfix===<br />
<br />
Настройка postfix для работы в режиме локальной доставки почты производится по следующей инструкции:[[Local Mail Delivery with Postfix]]. Смотри так-же, [[SSMTP]] и [[MSMTP]].<br />
<br />
==Управление пакетами и компиляция==<br />
===Pacman===<br />
Здесь преведены различные способы взаимодействия стандртного набора функций pacman'а с элементарным синтаксисом bash, что позооляет более удобно управлять пакетами.<br />
* Установка нескольких пакетов, имеющий в названии общую часть, например пакеты <code>kdemod</code>:<br />
pacman -S kdemod-{applets,theme,tools}<br />
* Вы можете использовать более сложную структуру, необходимую вам:<br />
pacman -S kdemod-{ui-{kde,kdemod},kdeartwork}<br />
* Pacman имеет параметр {{Codeline|-q}}, который запретит вывод версий пакетов. Это позволяет переустановить все пакеты, содержащие в названии, к примеру, "compiz":<br />
pacman -S `pacman -Qq | grep compiz`<br />
* Тот же результат может быть достигнут без использования параметра {{Codeline|-q}} с использованием {{Codeline|awk}}:<br />
pacman -S `pacman -Q | awk '/compiz/ { print $1 }'`<br />
On the subject of '''reinstalling every package''': listing currently installed packages will output everything, including packages that are local and/or might not be available for installation any longer. <br />
<br />
Simply running:<br />
pacman -S `pacman -Qq`<br />
Will output errors because some (or many) of the packages were not found in the repositories. There needs to be a way to list only packages that can be installed from the repositories present in {{Codeline|pacman}}'s database. In order to do so, combining a command to list all packages, and another to hide the list of foreign packages is required.<br />
<br />
This is achieved by using {{Codeline|comm -3}} to show only the packages that are not foreign packages:<br />
pacman -S $(comm -3 <(pacman -Qq) <(pacman -Qqm))<br />
<br />
====Зеркала====<br />
Чтобы воспользоваться всеми преимуществами самых быстрых и актуальных зеркал, смотрите [[Mirrors]].<br />
<br />
====Псевдомимы (aliases) pacman'а====<br />
Смотрите: [[Pacman Tips#Aliases]]<br />
<br />
===Лёгкая установка/обновление из AUR===<br />
<br />
Каждый должен знать, как пользоваться [[AUR]], [[ABS]], и [[makepkg]]<br />
чтобы устанавливать пакеты программного обеспечения. Слежка и обновление за пакетами может стать утомительной, особенно при большом количестве пакетов.<br />
<br />
Для облегчения проведения этих задач есть несколько программ/скриптов.<br />
Смотри: [[AUR Helpers|список программ облегчающих работу с AUR]]<br />
<br />
=== Using ABS to Recompile Packages ===<br />
<br />
The Arch Build System is a ports-like system of compile files used to make packages that are already in the repositories. To compile packages with different options see [[ABS]].<br />
<br />
=== Сборка оптимизированных пакетов ===<br />
<br />
Во время компилирования пакета приложения с помощью [[makepkg]], стандартному компилятору (GCC) можно задать опции, которые могут ускорить работу приложения. Обычно получаемое таким образом ускорение не сильно заметно, но если вы планируете компиляцию большого количества приложений, возможно вы захотите задать настройки соответствующие вашей спецификации аппаратной конфигурации.<br />
<br />
Для оптимизации программ собранных с помощью {{Codeline|makepkg}}, нужно найти тип процессора в [[CFLAGS]] и в соответствии с ним отредактировать файл {{Filename|/etc/makepkg.conf}}.<br />
<br />
Например:<br />
<br />
# Для процессора типа Athlon<br />
CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
CXXFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
<br />
==Сеть==<br />
<br />
===Ускорение запросов DNS===<br />
<br />
[[Dnsmasq]] ускоряет загрузку с помощью кэширования запросов DNS.<br />
<br />
===Отключение IPv6===<br />
Пока ещё IPv6 не получил широкого распространения, может оказаться полезным [[IPv6_-_Disabling_the_Module_(Русский)|отключение модуля IPv6]].</div>Irrlichthttps://wiki.archlinux.org/index.php?title=General_recommendations_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124562General recommendations (Русский)2010-12-09T10:12:54Z<p>Irrlicht: /* Раскрашивание и командная оболочка Emcas */</p>
<hr />
<div>[[Category:Русский]]<br />
{{i18n|General Recommendations}}<br />
{{Bad translation}}<br />
<br />
Вот некоторые популярные хитрости и общая информация, которая может пригодиться новичкам в Arch Linux.<br />
<br />
==Загрузка==<br />
===Автоматическое распознавание устройств===<br />
* [[hwdetect]] дает информацию о том, какие модули необходимы для каждого устройства.<br />
# pacman -S hwdetect<br />
* {{Package AUR|lshwd}}является альтернативой.<br />
<br />
===Повышение скорости загрузки Lilo===<br />
Чтобы ускорить процесс загрузки [[lilo]], нужно добавить следующую команду в {{Filename|/etc/lilo.conf}}:<br />
compact<br />
<br />
===Запуск X при загрузке===<br />
Смотрите: [[Запуск_X_при_загрузке|Start X at Boot (Русский)]]<br />
<br />
===Активация Numlock при загрузке===<br />
Смотрите: [[Включение_Numlock_При_Загрузке|Activating Numlock on Bootup (Русский)]]<br />
<br />
===Конец процесса загрузки===<br />
После загрузки сситемы, экран очищается и появляется строка логина в системе, вследствие чего пользователь не может прочитать вывод инициализации или сообщения об ошибках. Это поведение по умолчанию может быть изменено несколькими путями:<br />
<br />
Добавте одну из следующий записей в конец файла {{Filename|/etc/rc.local}}:<br />
* Ждать нажатия клавиши перед очисткой экрана:<br />
read -n1<br />
* Очистка произойдет по прошествии 5-ти секунд или по нажатию клавиши:<br />
read -t5 -n1<br />
Или:<br />
* Удалите первые 3 символа в {{Filename|/etc/issue}}, которые формируют escape-последовательность очистки экрана. Это также предотвратит очистку экрана после выхода из сессии.<br />
* Запустите {{Codeline|dmesg}} из командной строки, чтобы отобразить все сообщение, сгенерированые ядром во время последней загрузки.<br />
* Comment out the agetty instance that runs on <code>vc/1</code> in {{Filename|/etc/inittab}}:<br />
#c1:2345:respawn:/sbin/agetty -8 38400 vc/1 linux<br />
<br />
==Внешний вид==<br />
===Раскрашивание вывода консоли (PS1)===<br />
<br />
Смотрите: [[Color Bash Prompt]]<br />
<br />
===Раскрашивание вывода 'ls'===<br />
Можно улучшить цветной вывод команды {{Codeline|ls}}; например, сломанные (ссылающиеся на несуществующие файлы или каталоги) символьные ссылки будут отображаться красным.<br />
<br />
Файл {{Filename|~/.bashrc}} уже должен содержать такую запись, скопированную из {{Filename|/etc/skel/.bashrc}}:<br />
alias ls='ls --color=auto'<br />
Следующий шаг - добавление следующей строки в {{Filename|~/.bashrc}} и перезаход в учетную запись:<br />
eval `dircolors -b`<br />
{{Note|В последней команде использованы не одиночные, а обратные кавычки}}<br />
<br />
===Раскрашивание вывода 'grep'===<br />
Помимо запросов эстетов, цветной вывод {{Codeline|grep}} весьма полезен для изучения {{Codeline|регекспов}} и общей функциональности {{Codeline|grep}}.<br />
Чтобы включить его, добавьте следующие строки в {{Filename|~/.bashrc}}:<br />
export GREP_COLOR="1;33"<br />
alias grep='grep --color=auto'<br />
Переменная <code>GREP_COLOR</code> определяет цвет, в примере он светло-жёлтый.<br />
<br />
Хотя ман-страница {{Codeline|grep}} сообщает, что переменная <code>GREP_COLOR</code> устарела и вместо неё лучшеиспользовать <code>GREP_COLORS</code>, эта переменная не работает (по крайней мере в grep 2.5.4) так что пока используйте <code>GREP_COLOR</code>.<br />
<br />
===Раскрашивание и командная оболочка Emcas===<br />
<br />
Emacs, по умолчанию, показывает Escape-последовательности в явном виде вместо определения цвета. <br />
Включение следующей строки в {{Filename|~/.emacs}} решит эту проблему:<br />
<br />
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)<br />
<br />
===Получение раскрашенных Man-страниц===<br />
Смотрите: [[Man Page]]<br />
<br />
===Changing Console Fonts===<br />
Terminus популярен среди пользователей Arch. Устанавливается так:<br />
pacman -S terminus-font<br />
Отредактируйте {{Filename|/etc/rc.conf}}:<br />
CONSOLEFONT="ter-v16b"<br />
Другие шрифты (с отличающимися стилями и размерами) могут быть найдены тут: {{Filename|/usr/share/kbd/consolefonts}}<br />
<br />
Переключайте шрифты налету с {{Codeline|setfont}}:<br />
setfont ter-v16b<br />
Если шрифт в консоли изменился в процессе загрузки и init выводит странные символы, добавьте ''keymap'' ловушку (hook) в {{Codeline|/etc/mkinitcpio.conf}} и пересоздайте ''initramfs'' образ:<br />
mkinitcpio -p kernel26<br />
<br />
Смотрите: [[Mkinitcpio_(Русский)|Mkinitcpio]]<br />
<br />
===Улучшение вида шрифтов для LCD мониторов===<br />
Смотрите: [[Font Configuration#LCD filter patched packages]]<br />
<br />
==Общие улучшения консоли==<br />
<br />
===Включение поиска по истории===<br />
See: [[Bash#History Search|Bash:History Search]]<br />
<br />
===Быстрое Bash дополнение===<br />
С добавлением в {{Filename|~/.bashrc}}:<br />
set show-all-if-ambiguous on<br />
нет необходимости дважды жать ''<Tab>'' чтобы получить список дополнений, теперь он будет появляться после одного нажатия.<br />
<br />
===Расширенное Bash дополнение===<br />
See: [[Bash#Advanced Bash Completion|Bash:Advanced Bash Completion]]<br />
<br />
===Алиасы (псевдонимы) команд для экономии времени===<br />
alias ll="ls -lh"<br />
alias la="ls -a"<br />
alias exit="clear; exit"<br />
alias x="startx"<br />
Персональные алиасы предпочтительно добавлять в {{Filename|~/.bashrc}}, алиасы уровня системы (которые применяются ко всем пользователям) находятся в {{Filename|/etc/bash.bashrc}}.<br />
<br />
===Полезные команды и программы===<br />
<br />
* '''grep''' - Ищет файл(ы) по шаблону.<br />
<br />
grep -i syslog /etc/*<br />
<br />
: Эта команда найдет все файлы в {{Filename|/etc}}, в которых встречается слово "''syslog''". Опция {{Codeline|-i}} позволяет искать регистронезависимые совпадения.<br />
<br />
* '''pkill''' и '''killall''' - Убивает процесс по имени.<br />
<br />
killall kdm<br />
<br />
: Убьет все потоки процесса {{Codeline|kdm}}.<br />
<br />
* '''pidof''' - Находит PID процесса по имени.<br />
<br />
pidof init<br />
<br />
: Выведет PID процесса init.<br />
<br />
* '''ps''' - Показывает состояние запущенных процессов.<br />
<br />
ps aux<br />
<br />
: Покажет все активные процессы.<br />
<br />
* '''locate''' - Быстро определяет местонахождение файлов на жестком диске.<br />
<br />
locate egrep<br />
<br />
: Найдет файлы и директории, в именах которых содержится ''egrep'' (перед использованием необходимо обновить базу (индексировать) путем выполнения {{Codeline|updatedb}}).<br />
<br />
===Извлечение сжатых файлов===<br />
<br />
Для {{Codeline|tar}} архивов используется комманда {{Codeline|tar}}, по умолчанию распаковывающая файл в соответствии с его расширением:<br />
<br />
tar xvf file.''расширение''<br />
<br />
В следующих примерах явно указываются типы архивов:<br />
<br />
file.tar : tar xvf file.tar<br />
file.tgz : tar xvzf file.tgz<br />
file.tar.gz : tar xvzf file.tar.gz<br />
file.tar.bz : bzip -cd file.bz | tar xvf -<br />
file.tar.bz2 : tar xvjf file.tar.bz2 <b>OR</b> bzip2 -cd file.bz2 | tar xvf -<br />
file.tar.xz : tar xvJf file.tar.xz <b>OR</b> xz -cd file.xz | tar xvf -<br />
file.zip : unzip file.zip<br />
file.rar : unrar x file.rar<br />
<br />
Некоторые из этих конструкций обеспечивают совместимость со старыми версиями, но они до сих пор бывают полезными при выполнении спецефических операций. Более подробную информацию ищите в руководстве(''man tar'') в секции ''Compatibility''.<br />
<br />
Чтобы не вводить каждый раз вручную комманды для распаковки архивов можно использовать приведенную ниже функцию. Добавьте следующий код в {{Filename|~/.bashrc}} и используйте {{Filename|extract <file_name>}}:<br />
<br />
<pre><br />
extract () {<br />
if [ -f $1 ] ; then<br />
case $1 in<br />
*.tar.bz2) tar xvjf $1 ;;<br />
*.tar.gz) tar xvzf $1 ;;<br />
*.tar.xz) tar xvJf $1 ;;<br />
*.bz2) bunzip2 $1 ;;<br />
*.rar) unrar x $1 ;;<br />
*.gz) gunzip $1 ;;<br />
*.tar) tar xvf $1 ;;<br />
*.tbz2) tar xvjf $1 ;;<br />
*.tgz) tar xvzf $1 ;;<br />
*.zip) unzip $1 ;;<br />
*.Z) uncompress $1 ;;<br />
*.7z) 7z x $1 ;;<br />
*.xz) unxz $1 ;;<br />
*.exe) cabextract $1 ;;<br />
*) echo "\`$1': неизвестный метод сжатия файла" ;;<br />
esac<br />
else<br />
echo "\`$1' нет такого файла"<br />
fi<br />
}<br />
</pre><br />
Функция сама выберет необходимую программу и аргументы для распаковки конкретного архива.<br />
{{Note|Для нормальной работы функции убедитесь, что все используемые ею программы присутствуют в вашей системе}}<br />
<br />
===Использование 'less' Для Просмотра Сжатых Файлов===<br />
Юзеры, часто пользующиеся командной строкой, возможно захотят установить [http://www-zeuthen.desy.de/~friebel/unix/lesspipe.html lesspipe]:<br />
# pacman -S lesspipe<br />
Это позволяет использовать {{Codeline|less}} для просмотра архивов:<br />
less compressed_file.tar.gz<br />
Результат будет примерно таков:<br />
==> use tar_file:contained_file to view a file in the archive<br />
-rw------- username/group 695 2008-01-04 19:24 compressed_file/content1<br />
-rw------- username/group 43 2007-11-07 11:17 compressed_file/content2<br />
compressed_file.tar.gz (END)<br />
Это также даёт воззможность использовать {{Codeline|less}} для просмотра других типов файлов; как альтернативу для команд, ассоциированых с определённым типом файла (например просмотр html или pdf с помощью html2txt или pdftotext).<br />
<br />
После установки {{Codeline|lesspipe}} следует перелогиниться или запустить {{Filename|/etc/profilde.d/lesspipe.sh}}<br />
<br />
===Включение поддержки мыши в консоли (gpm)===<br />
Установка {{Codeline|gpm}} предоставляет поддержку мыши в консоли:<br />
# pacman -S gpm<br />
Чтобы запустить его:<br />
# /etc/rc.d/gpm start<br />
Если мышь не работает должным образом, отредактируйте {{Filename|/etc/conf.d/gpm}}:<br />
* Для PS/2 мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/psaux -t ps2"<br />
* Для USB мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t imps2"<br />
* Для устройств IBM Trackpoint, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t ps2"<br />
Когда подходящая конфигурация найдена, добавьте {{Codeline|gpm}} в <code>DAEMONS</code> массив файла {{Filename|/etc/rc.conf}}, чтобы демон {{Codeline|gpm}} запускался при загрузке. Пример:<br />
DAEMONS=(syslog-ng '''gpm''' network netfs crond)<br />
<br />
==Локальная доставка почты==<br />
<br />
===Postfix===<br />
<br />
Настройка postfix для работы в режиме локальной доставки почты производится по следующей инструкции:[[Local Mail Delivery with Postfix]]. Смотри так-же, [[SSMTP]] и [[MSMTP]].<br />
<br />
==Управление пакетами и компиляция==<br />
===Pacman===<br />
Здесь преведены различные способы взаимодействия стандртного набора функций pacman'а с элементарным синтаксисом bash, что позооляет более удобно управлять пакетами.<br />
* Установка нескольких пакетов, имеющий в названии общую часть, например пакеты <code>kdemod</code>:<br />
pacman -S kdemod-{applets,theme,tools}<br />
* Вы можете использовать более сложную структуру, необходимую вам:<br />
pacman -S kdemod-{ui-{kde,kdemod},kdeartwork}<br />
* Pacman имеет параметр {{Codeline|-q}}, который запретит вывод версий пакетов. Это позволяет переустановить все пакеты, содержащие в названии, к примеру, "compiz":<br />
pacman -S `pacman -Qq | grep compiz`<br />
* Тот же результат может быть достигнут без использования параметра {{Codeline|-q}} с использованием {{Codeline|awk}}:<br />
pacman -S `pacman -Q | awk '/compiz/ { print $1 }'`<br />
On the subject of '''reinstalling every package''': listing currently installed packages will output everything, including packages that are local and/or might not be available for installation any longer. <br />
<br />
Simply running:<br />
pacman -S `pacman -Qq`<br />
Will output errors because some (or many) of the packages were not found in the repositories. There needs to be a way to list only packages that can be installed from the repositories present in {{Codeline|pacman}}'s database. In order to do so, combining a command to list all packages, and another to hide the list of foreign packages is required.<br />
<br />
This is achieved by using {{Codeline|comm -3}} to show only the packages that are not foreign packages:<br />
pacman -S $(comm -3 <(pacman -Qq) <(pacman -Qqm))<br />
<br />
====Зеркала====<br />
Чтобы воспользоваться всеми преимуществами самых быстрых и актуальных зеркал, смотрите [[Mirrors]].<br />
<br />
====Псевдомимы (aliases) pacman'а====<br />
Смотрите: [[Pacman Tips#Aliases]]<br />
<br />
===Лёгкая установка/обновление из AUR===<br />
<br />
Каждый должен знать, как пользоваться [[AUR]], [[ABS]], и [[makepkg]]<br />
чтобы устанавливать пакеты программного обеспечения. Слежка и обновление за пакетами может стать утомительной, особенно при большом количестве пакетов.<br />
<br />
Для облегчения проведения этих задач есть несколько программ/скриптов.<br />
Смотри: [[AUR Helpers|список программ облегчающих работу с AUR]]<br />
<br />
=== Using ABS to Recompile Packages ===<br />
<br />
The Arch Build System is a ports-like system of compile files used to make packages that are already in the repositories. To compile packages with different options see [[ABS]].<br />
<br />
=== Сборка оптимизированных пакетов ===<br />
<br />
Во время компилирования пакета приложения с помощью [[makepkg]], стандартному компилятору (GCC) можно задать опции, которые могут ускорить работу приложения. Обычно получаемое таким образом ускорение не сильно заметно, но если вы планируете компиляцию большого количества приложений, возможно вы захотите задать настройки соответствующие вашей спецификации аппаратной конфигурации.<br />
<br />
Для оптимизации программ собранных с помощью {{Codeline|makepkg}}, нужно найти тип процессора в [[CFLAGS]] и в соответствии с ним отредактировать файл {{Filename|/etc/makepkg.conf}}.<br />
<br />
Например:<br />
<br />
# Для процессора типа Athlon<br />
CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
CXXFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
<br />
==Сеть==<br />
<br />
===Ускорение запросов DNS===<br />
<br />
[[Dnsmasq]] ускоряет загрузку с помощью кэширования запросов DNS.<br />
<br />
===Отключение IPv6===<br />
Пока ещё IPv6 не получил широкого распространения, может оказаться полезным [[IPv6_-_Disabling_the_Module_(Русский)|отключение модуля IPv6]].</div>Irrlichthttps://wiki.archlinux.org/index.php?title=General_recommendations_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124560General recommendations (Русский)2010-12-09T10:12:12Z<p>Irrlicht: /* Colorizing and the Emacs Shell */</p>
<hr />
<div>[[Category:Русский]]<br />
{{i18n|General Recommendations}}<br />
{{Bad translation}}<br />
<br />
Вот некоторые популярные хитрости и общая информация, которая может пригодиться новичкам в Arch Linux.<br />
<br />
==Загрузка==<br />
===Автоматическое распознавание устройств===<br />
* [[hwdetect]] дает информацию о том, какие модули необходимы для каждого устройства.<br />
# pacman -S hwdetect<br />
* {{Package AUR|lshwd}}является альтернативой.<br />
<br />
===Повышение скорости загрузки Lilo===<br />
Чтобы ускорить процесс загрузки [[lilo]], нужно добавить следующую команду в {{Filename|/etc/lilo.conf}}:<br />
compact<br />
<br />
===Запуск X при загрузке===<br />
Смотрите: [[Запуск_X_при_загрузке|Start X at Boot (Русский)]]<br />
<br />
===Активация Numlock при загрузке===<br />
Смотрите: [[Включение_Numlock_При_Загрузке|Activating Numlock on Bootup (Русский)]]<br />
<br />
===Конец процесса загрузки===<br />
После загрузки сситемы, экран очищается и появляется строка логина в системе, вследствие чего пользователь не может прочитать вывод инициализации или сообщения об ошибках. Это поведение по умолчанию может быть изменено несколькими путями:<br />
<br />
Добавте одну из следующий записей в конец файла {{Filename|/etc/rc.local}}:<br />
* Ждать нажатия клавиши перед очисткой экрана:<br />
read -n1<br />
* Очистка произойдет по прошествии 5-ти секунд или по нажатию клавиши:<br />
read -t5 -n1<br />
Или:<br />
* Удалите первые 3 символа в {{Filename|/etc/issue}}, которые формируют escape-последовательность очистки экрана. Это также предотвратит очистку экрана после выхода из сессии.<br />
* Запустите {{Codeline|dmesg}} из командной строки, чтобы отобразить все сообщение, сгенерированые ядром во время последней загрузки.<br />
* Comment out the agetty instance that runs on <code>vc/1</code> in {{Filename|/etc/inittab}}:<br />
#c1:2345:respawn:/sbin/agetty -8 38400 vc/1 linux<br />
<br />
==Внешний вид==<br />
===Раскрашивание вывода консоли (PS1)===<br />
<br />
Смотрите: [[Color Bash Prompt]]<br />
<br />
===Раскрашивание вывода 'ls'===<br />
Можно улучшить цветной вывод команды {{Codeline|ls}}; например, сломанные (ссылающиеся на несуществующие файлы или каталоги) символьные ссылки будут отображаться красным.<br />
<br />
Файл {{Filename|~/.bashrc}} уже должен содержать такую запись, скопированную из {{Filename|/etc/skel/.bashrc}}:<br />
alias ls='ls --color=auto'<br />
Следующий шаг - добавление следующей строки в {{Filename|~/.bashrc}} и перезаход в учетную запись:<br />
eval `dircolors -b`<br />
{{Note|В последней команде использованы не одиночные, а обратные кавычки}}<br />
<br />
===Раскрашивание вывода 'grep'===<br />
Помимо запросов эстетов, цветной вывод {{Codeline|grep}} весьма полезен для изучения {{Codeline|регекспов}} и общей функциональности {{Codeline|grep}}.<br />
Чтобы включить его, добавьте следующие строки в {{Filename|~/.bashrc}}:<br />
export GREP_COLOR="1;33"<br />
alias grep='grep --color=auto'<br />
Переменная <code>GREP_COLOR</code> определяет цвет, в примере он светло-жёлтый.<br />
<br />
Хотя ман-страница {{Codeline|grep}} сообщает, что переменная <code>GREP_COLOR</code> устарела и вместо неё лучшеиспользовать <code>GREP_COLORS</code>, эта переменная не работает (по крайней мере в grep 2.5.4) так что пока используйте <code>GREP_COLOR</code>.<br />
<br />
===Раскрашивание и командная оболочка Emcas===<br />
<br />
Emacs, по умолчанию, показывает Escape-последовательности в явном виде вместо определения цвета. <br />
Включение следующей строки в {{Filename|~/.emacs}} решит эту проблему:<br />
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)<br />
<br />
===Получение раскрашенных Man-страниц===<br />
Смотрите: [[Man Page]]<br />
<br />
===Changing Console Fonts===<br />
Terminus популярен среди пользователей Arch. Устанавливается так:<br />
pacman -S terminus-font<br />
Отредактируйте {{Filename|/etc/rc.conf}}:<br />
CONSOLEFONT="ter-v16b"<br />
Другие шрифты (с отличающимися стилями и размерами) могут быть найдены тут: {{Filename|/usr/share/kbd/consolefonts}}<br />
<br />
Переключайте шрифты налету с {{Codeline|setfont}}:<br />
setfont ter-v16b<br />
Если шрифт в консоли изменился в процессе загрузки и init выводит странные символы, добавьте ''keymap'' ловушку (hook) в {{Codeline|/etc/mkinitcpio.conf}} и пересоздайте ''initramfs'' образ:<br />
mkinitcpio -p kernel26<br />
<br />
Смотрите: [[Mkinitcpio_(Русский)|Mkinitcpio]]<br />
<br />
===Улучшение вида шрифтов для LCD мониторов===<br />
Смотрите: [[Font Configuration#LCD filter patched packages]]<br />
<br />
==Общие улучшения консоли==<br />
<br />
===Включение поиска по истории===<br />
See: [[Bash#History Search|Bash:History Search]]<br />
<br />
===Быстрое Bash дополнение===<br />
С добавлением в {{Filename|~/.bashrc}}:<br />
set show-all-if-ambiguous on<br />
нет необходимости дважды жать ''<Tab>'' чтобы получить список дополнений, теперь он будет появляться после одного нажатия.<br />
<br />
===Расширенное Bash дополнение===<br />
See: [[Bash#Advanced Bash Completion|Bash:Advanced Bash Completion]]<br />
<br />
===Алиасы (псевдонимы) команд для экономии времени===<br />
alias ll="ls -lh"<br />
alias la="ls -a"<br />
alias exit="clear; exit"<br />
alias x="startx"<br />
Персональные алиасы предпочтительно добавлять в {{Filename|~/.bashrc}}, алиасы уровня системы (которые применяются ко всем пользователям) находятся в {{Filename|/etc/bash.bashrc}}.<br />
<br />
===Полезные команды и программы===<br />
<br />
* '''grep''' - Ищет файл(ы) по шаблону.<br />
<br />
grep -i syslog /etc/*<br />
<br />
: Эта команда найдет все файлы в {{Filename|/etc}}, в которых встречается слово "''syslog''". Опция {{Codeline|-i}} позволяет искать регистронезависимые совпадения.<br />
<br />
* '''pkill''' и '''killall''' - Убивает процесс по имени.<br />
<br />
killall kdm<br />
<br />
: Убьет все потоки процесса {{Codeline|kdm}}.<br />
<br />
* '''pidof''' - Находит PID процесса по имени.<br />
<br />
pidof init<br />
<br />
: Выведет PID процесса init.<br />
<br />
* '''ps''' - Показывает состояние запущенных процессов.<br />
<br />
ps aux<br />
<br />
: Покажет все активные процессы.<br />
<br />
* '''locate''' - Быстро определяет местонахождение файлов на жестком диске.<br />
<br />
locate egrep<br />
<br />
: Найдет файлы и директории, в именах которых содержится ''egrep'' (перед использованием необходимо обновить базу (индексировать) путем выполнения {{Codeline|updatedb}}).<br />
<br />
===Извлечение сжатых файлов===<br />
<br />
Для {{Codeline|tar}} архивов используется комманда {{Codeline|tar}}, по умолчанию распаковывающая файл в соответствии с его расширением:<br />
<br />
tar xvf file.''расширение''<br />
<br />
В следующих примерах явно указываются типы архивов:<br />
<br />
file.tar : tar xvf file.tar<br />
file.tgz : tar xvzf file.tgz<br />
file.tar.gz : tar xvzf file.tar.gz<br />
file.tar.bz : bzip -cd file.bz | tar xvf -<br />
file.tar.bz2 : tar xvjf file.tar.bz2 <b>OR</b> bzip2 -cd file.bz2 | tar xvf -<br />
file.tar.xz : tar xvJf file.tar.xz <b>OR</b> xz -cd file.xz | tar xvf -<br />
file.zip : unzip file.zip<br />
file.rar : unrar x file.rar<br />
<br />
Некоторые из этих конструкций обеспечивают совместимость со старыми версиями, но они до сих пор бывают полезными при выполнении спецефических операций. Более подробную информацию ищите в руководстве(''man tar'') в секции ''Compatibility''.<br />
<br />
Чтобы не вводить каждый раз вручную комманды для распаковки архивов можно использовать приведенную ниже функцию. Добавьте следующий код в {{Filename|~/.bashrc}} и используйте {{Filename|extract <file_name>}}:<br />
<br />
<pre><br />
extract () {<br />
if [ -f $1 ] ; then<br />
case $1 in<br />
*.tar.bz2) tar xvjf $1 ;;<br />
*.tar.gz) tar xvzf $1 ;;<br />
*.tar.xz) tar xvJf $1 ;;<br />
*.bz2) bunzip2 $1 ;;<br />
*.rar) unrar x $1 ;;<br />
*.gz) gunzip $1 ;;<br />
*.tar) tar xvf $1 ;;<br />
*.tbz2) tar xvjf $1 ;;<br />
*.tgz) tar xvzf $1 ;;<br />
*.zip) unzip $1 ;;<br />
*.Z) uncompress $1 ;;<br />
*.7z) 7z x $1 ;;<br />
*.xz) unxz $1 ;;<br />
*.exe) cabextract $1 ;;<br />
*) echo "\`$1': неизвестный метод сжатия файла" ;;<br />
esac<br />
else<br />
echo "\`$1' нет такого файла"<br />
fi<br />
}<br />
</pre><br />
Функция сама выберет необходимую программу и аргументы для распаковки конкретного архива.<br />
{{Note|Для нормальной работы функции убедитесь, что все используемые ею программы присутствуют в вашей системе}}<br />
<br />
===Использование 'less' Для Просмотра Сжатых Файлов===<br />
Юзеры, часто пользующиеся командной строкой, возможно захотят установить [http://www-zeuthen.desy.de/~friebel/unix/lesspipe.html lesspipe]:<br />
# pacman -S lesspipe<br />
Это позволяет использовать {{Codeline|less}} для просмотра архивов:<br />
less compressed_file.tar.gz<br />
Результат будет примерно таков:<br />
==> use tar_file:contained_file to view a file in the archive<br />
-rw------- username/group 695 2008-01-04 19:24 compressed_file/content1<br />
-rw------- username/group 43 2007-11-07 11:17 compressed_file/content2<br />
compressed_file.tar.gz (END)<br />
Это также даёт воззможность использовать {{Codeline|less}} для просмотра других типов файлов; как альтернативу для команд, ассоциированых с определённым типом файла (например просмотр html или pdf с помощью html2txt или pdftotext).<br />
<br />
После установки {{Codeline|lesspipe}} следует перелогиниться или запустить {{Filename|/etc/profilde.d/lesspipe.sh}}<br />
<br />
===Включение поддержки мыши в консоли (gpm)===<br />
Установка {{Codeline|gpm}} предоставляет поддержку мыши в консоли:<br />
# pacman -S gpm<br />
Чтобы запустить его:<br />
# /etc/rc.d/gpm start<br />
Если мышь не работает должным образом, отредактируйте {{Filename|/etc/conf.d/gpm}}:<br />
* Для PS/2 мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/psaux -t ps2"<br />
* Для USB мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t imps2"<br />
* Для устройств IBM Trackpoint, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t ps2"<br />
Когда подходящая конфигурация найдена, добавьте {{Codeline|gpm}} в <code>DAEMONS</code> массив файла {{Filename|/etc/rc.conf}}, чтобы демон {{Codeline|gpm}} запускался при загрузке. Пример:<br />
DAEMONS=(syslog-ng '''gpm''' network netfs crond)<br />
<br />
==Локальная доставка почты==<br />
<br />
===Postfix===<br />
<br />
Настройка postfix для работы в режиме локальной доставки почты производится по следующей инструкции:[[Local Mail Delivery with Postfix]]. Смотри так-же, [[SSMTP]] и [[MSMTP]].<br />
<br />
==Управление пакетами и компиляция==<br />
===Pacman===<br />
Здесь преведены различные способы взаимодействия стандртного набора функций pacman'а с элементарным синтаксисом bash, что позооляет более удобно управлять пакетами.<br />
* Установка нескольких пакетов, имеющий в названии общую часть, например пакеты <code>kdemod</code>:<br />
pacman -S kdemod-{applets,theme,tools}<br />
* Вы можете использовать более сложную структуру, необходимую вам:<br />
pacman -S kdemod-{ui-{kde,kdemod},kdeartwork}<br />
* Pacman имеет параметр {{Codeline|-q}}, который запретит вывод версий пакетов. Это позволяет переустановить все пакеты, содержащие в названии, к примеру, "compiz":<br />
pacman -S `pacman -Qq | grep compiz`<br />
* Тот же результат может быть достигнут без использования параметра {{Codeline|-q}} с использованием {{Codeline|awk}}:<br />
pacman -S `pacman -Q | awk '/compiz/ { print $1 }'`<br />
On the subject of '''reinstalling every package''': listing currently installed packages will output everything, including packages that are local and/or might not be available for installation any longer. <br />
<br />
Simply running:<br />
pacman -S `pacman -Qq`<br />
Will output errors because some (or many) of the packages were not found in the repositories. There needs to be a way to list only packages that can be installed from the repositories present in {{Codeline|pacman}}'s database. In order to do so, combining a command to list all packages, and another to hide the list of foreign packages is required.<br />
<br />
This is achieved by using {{Codeline|comm -3}} to show only the packages that are not foreign packages:<br />
pacman -S $(comm -3 <(pacman -Qq) <(pacman -Qqm))<br />
<br />
====Зеркала====<br />
Чтобы воспользоваться всеми преимуществами самых быстрых и актуальных зеркал, смотрите [[Mirrors]].<br />
<br />
====Псевдомимы (aliases) pacman'а====<br />
Смотрите: [[Pacman Tips#Aliases]]<br />
<br />
===Лёгкая установка/обновление из AUR===<br />
<br />
Каждый должен знать, как пользоваться [[AUR]], [[ABS]], и [[makepkg]]<br />
чтобы устанавливать пакеты программного обеспечения. Слежка и обновление за пакетами может стать утомительной, особенно при большом количестве пакетов.<br />
<br />
Для облегчения проведения этих задач есть несколько программ/скриптов.<br />
Смотри: [[AUR Helpers|список программ облегчающих работу с AUR]]<br />
<br />
=== Using ABS to Recompile Packages ===<br />
<br />
The Arch Build System is a ports-like system of compile files used to make packages that are already in the repositories. To compile packages with different options see [[ABS]].<br />
<br />
=== Сборка оптимизированных пакетов ===<br />
<br />
Во время компилирования пакета приложения с помощью [[makepkg]], стандартному компилятору (GCC) можно задать опции, которые могут ускорить работу приложения. Обычно получаемое таким образом ускорение не сильно заметно, но если вы планируете компиляцию большого количества приложений, возможно вы захотите задать настройки соответствующие вашей спецификации аппаратной конфигурации.<br />
<br />
Для оптимизации программ собранных с помощью {{Codeline|makepkg}}, нужно найти тип процессора в [[CFLAGS]] и в соответствии с ним отредактировать файл {{Filename|/etc/makepkg.conf}}.<br />
<br />
Например:<br />
<br />
# Для процессора типа Athlon<br />
CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
CXXFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
<br />
==Сеть==<br />
<br />
===Ускорение запросов DNS===<br />
<br />
[[Dnsmasq]] ускоряет загрузку с помощью кэширования запросов DNS.<br />
<br />
===Отключение IPv6===<br />
Пока ещё IPv6 не получил широкого распространения, может оказаться полезным [[IPv6_-_Disabling_the_Module_(Русский)|отключение модуля IPv6]].</div>Irrlichthttps://wiki.archlinux.org/index.php?title=General_recommendations_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124481General recommendations (Русский)2010-12-08T15:18:10Z<p>Irrlicht: /* Networking */</p>
<hr />
<div>[[Category:Русский]]<br />
{{i18n|General Recommendations}}<br />
{{Bad translation}}<br />
<br />
Вот некоторые популярные хитрости и общая информация, которая может пригодиться новичкам в Arch Linux.<br />
<br />
==Загрузка==<br />
===Автоматическое распознавание устройств===<br />
* [[hwdetect]] дает информацию о том, какие модули необходимы для каждого устройства.<br />
# pacman -S hwdetect<br />
* {{Package AUR|lshwd}}является альтернативой.<br />
<br />
===Повышение скорости загрузки Lilo===<br />
Чтобы ускорить процесс загрузки [[lilo]], нужно добавить следующую команду в {{Filename|/etc/lilo.conf}}:<br />
compact<br />
<br />
===Запуск X при загрузке===<br />
Смотрите: [[Запуск_X_при_загрузке|Start X at Boot (Русский)]]<br />
<br />
===Активация Numlock при загрузке===<br />
Смотрите: [[Включение_Numlock_При_Загрузке|Activating Numlock on Bootup (Русский)]]<br />
<br />
===Конец процесса загрузки===<br />
После загрузки сситемы, экран очищается и появляется строка логина в системе, вследствие чего пользователь не может прочитать вывод инициализации или сообщения об ошибках. Это поведение по умолчанию может быть изменено несколькими путями:<br />
<br />
Добавте одну из следующий записей в конец файла {{Filename|/etc/rc.local}}:<br />
* Ждать нажатия клавиши перед очисткой экрана:<br />
read -n1<br />
* Очистка произойдет по прошествии 5-ти секунд или по нажатию клавиши:<br />
read -t5 -n1<br />
Или:<br />
* Удалите первые 3 символа в {{Filename|/etc/issue}}, которые формируют escape-последовательность очистки экрана. Это также предотвратит очистку экрана после выхода из сессии.<br />
* Запустите {{Codeline|dmesg}} из командной строки, чтобы отобразить все сообщение, сгенерированые ядром во время последней загрузки.<br />
* Comment out the agetty instance that runs on <code>vc/1</code> in {{Filename|/etc/inittab}}:<br />
#c1:2345:respawn:/sbin/agetty -8 38400 vc/1 linux<br />
<br />
==Внешний вид==<br />
===Раскрашивание вывода консоли (PS1)===<br />
<br />
Смотрите: [[Color Bash Prompt]]<br />
<br />
===Раскрашивание вывода 'ls'===<br />
Можно улучшить цветной вывод команды {{Codeline|ls}}; например, сломанные (ссылающиеся на несуществующие файлы или каталоги) символьные ссылки будут отображаться красным.<br />
<br />
Файл {{Filename|~/.bashrc}} уже должен содержать такую запись, скопированную из {{Filename|/etc/skel/.bashrc}}:<br />
alias ls='ls --color=auto'<br />
Следующий шаг - добавление следующей строки в {{Filename|~/.bashrc}} и перезаход в учетную запись:<br />
eval `dircolors -b`<br />
{{Note|В последней команде использованы не одиночные, а обратные кавычки}}<br />
<br />
===Раскрашивание вывода 'grep'===<br />
Помимо запросов эстетов, цветной вывод {{Codeline|grep}} весьма полезен для изучения {{Codeline|регекспов}} и общей функциональности {{Codeline|grep}}.<br />
Чтобы включить его, добавьте следующие строки в {{Filename|~/.bashrc}}:<br />
export GREP_COLOR="1;33"<br />
alias grep='grep --color=auto'<br />
Переменная <code>GREP_COLOR</code> определяет цвет, в примере он светло-жёлтый.<br />
<br />
Хотя ман-страница {{Codeline|grep}} сообщает, что переменная <code>GREP_COLOR</code> устарела и вместо неё лучшеиспользовать <code>GREP_COLORS</code>, эта переменная не работает (по крайней мере в grep 2.5.4) так что пока используйте <code>GREP_COLOR</code>.<br />
<br />
===Colorizing and the Emacs Shell===<br />
By default, the [[emacs]] shell will rawly show escape sequences used to print colors. In other words, it will display strange symbols in place of the desired colored output.<br />
<br />
Including the following into {{Filename|~/.emacs}} ammends the problem:<br />
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)<br />
<br />
===Получение раскрашенных Man-страниц===<br />
Смотрите: [[Man Page]]<br />
<br />
===Changing Console Fonts===<br />
Terminus популярен среди пользователей Arch. Устанавливается так:<br />
pacman -S terminus-font<br />
Отредактируйте {{Filename|/etc/rc.conf}}:<br />
CONSOLEFONT="ter-v16b"<br />
Другие шрифты (с отличающимися стилями и размерами) могут быть найдены тут: {{Filename|/usr/share/kbd/consolefonts}}<br />
<br />
Переключайте шрифты налету с {{Codeline|setfont}}:<br />
setfont ter-v16b<br />
Если шрифт в консоли изменился в процессе загрузки и init выводит странные символы, добавьте ''keymap'' ловушку (hook) в {{Codeline|/etc/mkinitcpio.conf}} и пересоздайте ''initramfs'' образ:<br />
mkinitcpio -p kernel26<br />
<br />
Смотрите: [[Mkinitcpio_(Русский)|Mkinitcpio]]<br />
<br />
===Улучшение вида шрифтов для LCD мониторов===<br />
Смотрите: [[Font Configuration#LCD filter patched packages]]<br />
<br />
==Общие улучшения консоли==<br />
<br />
===Включение поиска по истории===<br />
See: [[Bash#History Search|Bash:History Search]]<br />
<br />
===Быстрое Bash дополнение===<br />
С добавлением в {{Filename|~/.bashrc}}:<br />
set show-all-if-ambiguous on<br />
нет необходимости дважды жать ''<Tab>'' чтобы получить список дополнений, теперь он будет появляться после одного нажатия.<br />
<br />
===Расширенное Bash дополнение===<br />
See: [[Bash#Advanced Bash Completion|Bash:Advanced Bash Completion]]<br />
<br />
===Алиасы (псевдонимы) команд для экономии времени===<br />
alias ll="ls -lh"<br />
alias la="ls -a"<br />
alias exit="clear; exit"<br />
alias x="startx"<br />
Персональные алиасы предпочтительно добавлять в {{Filename|~/.bashrc}}, алиасы уровня системы (которые применяются ко всем пользователям) находятся в {{Filename|/etc/bash.bashrc}}.<br />
<br />
===Полезные команды и программы===<br />
<br />
* '''grep''' - Ищет файл(ы) по шаблону.<br />
<br />
grep -i syslog /etc/*<br />
<br />
: Эта команда найдет все файлы в {{Filename|/etc}}, в которых встречается слово "''syslog''". Опция {{Codeline|-i}} позволяет искать регистронезависимые совпадения.<br />
<br />
* '''pkill''' и '''killall''' - Убивает процесс по имени.<br />
<br />
killall kdm<br />
<br />
: Убьет все потоки процесса {{Codeline|kdm}}.<br />
<br />
* '''pidof''' - Находит PID процесса по имени.<br />
<br />
pidof init<br />
<br />
: Выведет PID процесса init.<br />
<br />
* '''ps''' - Показывает состояние запущенных процессов.<br />
<br />
ps aux<br />
<br />
: Покажет все активные процессы.<br />
<br />
* '''locate''' - Быстро определяет местонахождение файлов на жестком диске.<br />
<br />
locate egrep<br />
<br />
: Найдет файлы и директории, в именах которых содержится ''egrep'' (перед использованием необходимо обновить базу (индексировать) путем выполнения {{Codeline|updatedb}}).<br />
<br />
===Извлечение сжатых файлов===<br />
<br />
Для {{Codeline|tar}} архивов используется комманда {{Codeline|tar}}, по умолчанию распаковывающая файл в соответствии с его расширением:<br />
<br />
tar xvf file.''расширение''<br />
<br />
В следующих примерах явно указываются типы архивов:<br />
<br />
file.tar : tar xvf file.tar<br />
file.tgz : tar xvzf file.tgz<br />
file.tar.gz : tar xvzf file.tar.gz<br />
file.tar.bz : bzip -cd file.bz | tar xvf -<br />
file.tar.bz2 : tar xvjf file.tar.bz2 <b>OR</b> bzip2 -cd file.bz2 | tar xvf -<br />
file.tar.xz : tar xvJf file.tar.xz <b>OR</b> xz -cd file.xz | tar xvf -<br />
file.zip : unzip file.zip<br />
file.rar : unrar x file.rar<br />
<br />
Некоторые из этих конструкций обеспечивают совместимость со старыми версиями, но они до сих пор бывают полезными при выполнении спецефических операций. Более подробную информацию ищите в руководстве(''man tar'') в секции ''Compatibility''.<br />
<br />
Чтобы не вводить каждый раз вручную комманды для распаковки архивов можно использовать приведенную ниже функцию. Добавьте следующий код в {{Filename|~/.bashrc}} и используйте {{Filename|extract <file_name>}}:<br />
<br />
<pre><br />
extract () {<br />
if [ -f $1 ] ; then<br />
case $1 in<br />
*.tar.bz2) tar xvjf $1 ;;<br />
*.tar.gz) tar xvzf $1 ;;<br />
*.tar.xz) tar xvJf $1 ;;<br />
*.bz2) bunzip2 $1 ;;<br />
*.rar) unrar x $1 ;;<br />
*.gz) gunzip $1 ;;<br />
*.tar) tar xvf $1 ;;<br />
*.tbz2) tar xvjf $1 ;;<br />
*.tgz) tar xvzf $1 ;;<br />
*.zip) unzip $1 ;;<br />
*.Z) uncompress $1 ;;<br />
*.7z) 7z x $1 ;;<br />
*.xz) unxz $1 ;;<br />
*.exe) cabextract $1 ;;<br />
*) echo "\`$1': неизвестный метод сжатия файла" ;;<br />
esac<br />
else<br />
echo "\`$1' нет такого файла"<br />
fi<br />
}<br />
</pre><br />
Функция сама выберет необходимую программу и аргументы для распаковки конкретного архива.<br />
{{Note|Для нормальной работы функции убедитесь, что все используемые ею программы присутствуют в вашей системе}}<br />
<br />
===Использование 'less' Для Просмотра Сжатых Файлов===<br />
Юзеры, часто пользующиеся командной строкой, возможно захотят установить [http://www-zeuthen.desy.de/~friebel/unix/lesspipe.html lesspipe]:<br />
# pacman -S lesspipe<br />
Это позволяет использовать {{Codeline|less}} для просмотра архивов:<br />
less compressed_file.tar.gz<br />
Результат будет примерно таков:<br />
==> use tar_file:contained_file to view a file in the archive<br />
-rw------- username/group 695 2008-01-04 19:24 compressed_file/content1<br />
-rw------- username/group 43 2007-11-07 11:17 compressed_file/content2<br />
compressed_file.tar.gz (END)<br />
Это также даёт воззможность использовать {{Codeline|less}} для просмотра других типов файлов; как альтернативу для команд, ассоциированых с определённым типом файла (например просмотр html или pdf с помощью html2txt или pdftotext).<br />
<br />
После установки {{Codeline|lesspipe}} следует перелогиниться или запустить {{Filename|/etc/profilde.d/lesspipe.sh}}<br />
<br />
===Включение поддержки мыши в консоли (gpm)===<br />
Установка {{Codeline|gpm}} предоставляет поддержку мыши в консоли:<br />
# pacman -S gpm<br />
Чтобы запустить его:<br />
# /etc/rc.d/gpm start<br />
Если мышь не работает должным образом, отредактируйте {{Filename|/etc/conf.d/gpm}}:<br />
* Для PS/2 мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/psaux -t ps2"<br />
* Для USB мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t imps2"<br />
* Для устройств IBM Trackpoint, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t ps2"<br />
Когда подходящая конфигурация найдена, добавьте {{Codeline|gpm}} в <code>DAEMONS</code> массив файла {{Filename|/etc/rc.conf}}, чтобы демон {{Codeline|gpm}} запускался при загрузке. Пример:<br />
DAEMONS=(syslog-ng '''gpm''' network netfs crond)<br />
<br />
==Локальная доставка почты==<br />
<br />
===Postfix===<br />
<br />
Настройка postfix для работы в режиме локальной доставки почты производится по следующей инструкции:[[Local Mail Delivery with Postfix]]. Смотри так-же, [[SSMTP]] и [[MSMTP]].<br />
<br />
==Управление пакетами и компиляция==<br />
===Pacman===<br />
Здесь преведены различные способы взаимодействия стандртного набора функций pacman'а с элементарным синтаксисом bash, что позооляет более удобно управлять пакетами.<br />
* Установка нескольких пакетов, имеющий в названии общую часть, например пакеты <code>kdemod</code>:<br />
pacman -S kdemod-{applets,theme,tools}<br />
* Вы можете использовать более сложную структуру, необходимую вам:<br />
pacman -S kdemod-{ui-{kde,kdemod},kdeartwork}<br />
* Pacman имеет параметр {{Codeline|-q}}, который запретит вывод версий пакетов. Это позволяет переустановить все пакеты, содержащие в названии, к примеру, "compiz":<br />
pacman -S `pacman -Qq | grep compiz`<br />
* Тот же результат может быть достигнут без использования параметра {{Codeline|-q}} с использованием {{Codeline|awk}}:<br />
pacman -S `pacman -Q | awk '/compiz/ { print $1 }'`<br />
On the subject of '''reinstalling every package''': listing currently installed packages will output everything, including packages that are local and/or might not be available for installation any longer. <br />
<br />
Simply running:<br />
pacman -S `pacman -Qq`<br />
Will output errors because some (or many) of the packages were not found in the repositories. There needs to be a way to list only packages that can be installed from the repositories present in {{Codeline|pacman}}'s database. In order to do so, combining a command to list all packages, and another to hide the list of foreign packages is required.<br />
<br />
This is achieved by using {{Codeline|comm -3}} to show only the packages that are not foreign packages:<br />
pacman -S $(comm -3 <(pacman -Qq) <(pacman -Qqm))<br />
<br />
====Зеркала====<br />
Чтобы воспользоваться всеми преимуществами самых быстрых и актуальных зеркал, смотрите [[Mirrors]].<br />
<br />
====Псевдомимы (aliases) pacman'а====<br />
Смотрите: [[Pacman Tips#Aliases]]<br />
<br />
===Лёгкая установка/обновление из AUR===<br />
<br />
Каждый должен знать, как пользоваться [[AUR]], [[ABS]], и [[makepkg]]<br />
чтобы устанавливать пакеты программного обеспечения. Слежка и обновление за пакетами может стать утомительной, особенно при большом количестве пакетов.<br />
<br />
Для облегчения проведения этих задач есть несколько программ/скриптов.<br />
Смотри: [[AUR Helpers|список программ облегчающих работу с AUR]]<br />
<br />
=== Using ABS to Recompile Packages ===<br />
<br />
The Arch Build System is a ports-like system of compile files used to make packages that are already in the repositories. To compile packages with different options see [[ABS]].<br />
<br />
=== Сборка оптимизированных пакетов ===<br />
<br />
Во время компилирования пакета приложения с помощью [[makepkg]], стандартному компилятору (GCC) можно задать опции, которые могут ускорить работу приложения. Обычно получаемое таким образом ускорение не сильно заметно, но если вы планируете компиляцию большого количества приложений, возможно вы захотите задать настройки соответствующие вашей спецификации аппаратной конфигурации.<br />
<br />
Для оптимизации программ собранных с помощью {{Codeline|makepkg}}, нужно найти тип процессора в [[CFLAGS]] и в соответствии с ним отредактировать файл {{Filename|/etc/makepkg.conf}}.<br />
<br />
Например:<br />
<br />
# Для процессора типа Athlon<br />
CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
CXXFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
<br />
==Сеть==<br />
<br />
===Ускорение запросов DNS===<br />
<br />
[[Dnsmasq]] ускоряет загрузку с помощью кэширования запросов DNS.<br />
<br />
===Отключение IPv6===<br />
Пока ещё IPv6 не получил широкого распространения, может оказаться полезным [[IPv6_-_Disabling_the_Module_(Русский)|отключение модуля IPv6]].</div>Irrlichthttps://wiki.archlinux.org/index.php?title=General_recommendations_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124480General recommendations (Русский)2010-12-08T15:17:34Z<p>Irrlicht: /* Speeding up DNS Queries */</p>
<hr />
<div>[[Category:Русский]]<br />
{{i18n|General Recommendations}}<br />
{{Bad translation}}<br />
<br />
Вот некоторые популярные хитрости и общая информация, которая может пригодиться новичкам в Arch Linux.<br />
<br />
==Загрузка==<br />
===Автоматическое распознавание устройств===<br />
* [[hwdetect]] дает информацию о том, какие модули необходимы для каждого устройства.<br />
# pacman -S hwdetect<br />
* {{Package AUR|lshwd}}является альтернативой.<br />
<br />
===Повышение скорости загрузки Lilo===<br />
Чтобы ускорить процесс загрузки [[lilo]], нужно добавить следующую команду в {{Filename|/etc/lilo.conf}}:<br />
compact<br />
<br />
===Запуск X при загрузке===<br />
Смотрите: [[Запуск_X_при_загрузке|Start X at Boot (Русский)]]<br />
<br />
===Активация Numlock при загрузке===<br />
Смотрите: [[Включение_Numlock_При_Загрузке|Activating Numlock on Bootup (Русский)]]<br />
<br />
===Конец процесса загрузки===<br />
После загрузки сситемы, экран очищается и появляется строка логина в системе, вследствие чего пользователь не может прочитать вывод инициализации или сообщения об ошибках. Это поведение по умолчанию может быть изменено несколькими путями:<br />
<br />
Добавте одну из следующий записей в конец файла {{Filename|/etc/rc.local}}:<br />
* Ждать нажатия клавиши перед очисткой экрана:<br />
read -n1<br />
* Очистка произойдет по прошествии 5-ти секунд или по нажатию клавиши:<br />
read -t5 -n1<br />
Или:<br />
* Удалите первые 3 символа в {{Filename|/etc/issue}}, которые формируют escape-последовательность очистки экрана. Это также предотвратит очистку экрана после выхода из сессии.<br />
* Запустите {{Codeline|dmesg}} из командной строки, чтобы отобразить все сообщение, сгенерированые ядром во время последней загрузки.<br />
* Comment out the agetty instance that runs on <code>vc/1</code> in {{Filename|/etc/inittab}}:<br />
#c1:2345:respawn:/sbin/agetty -8 38400 vc/1 linux<br />
<br />
==Внешний вид==<br />
===Раскрашивание вывода консоли (PS1)===<br />
<br />
Смотрите: [[Color Bash Prompt]]<br />
<br />
===Раскрашивание вывода 'ls'===<br />
Можно улучшить цветной вывод команды {{Codeline|ls}}; например, сломанные (ссылающиеся на несуществующие файлы или каталоги) символьные ссылки будут отображаться красным.<br />
<br />
Файл {{Filename|~/.bashrc}} уже должен содержать такую запись, скопированную из {{Filename|/etc/skel/.bashrc}}:<br />
alias ls='ls --color=auto'<br />
Следующий шаг - добавление следующей строки в {{Filename|~/.bashrc}} и перезаход в учетную запись:<br />
eval `dircolors -b`<br />
{{Note|В последней команде использованы не одиночные, а обратные кавычки}}<br />
<br />
===Раскрашивание вывода 'grep'===<br />
Помимо запросов эстетов, цветной вывод {{Codeline|grep}} весьма полезен для изучения {{Codeline|регекспов}} и общей функциональности {{Codeline|grep}}.<br />
Чтобы включить его, добавьте следующие строки в {{Filename|~/.bashrc}}:<br />
export GREP_COLOR="1;33"<br />
alias grep='grep --color=auto'<br />
Переменная <code>GREP_COLOR</code> определяет цвет, в примере он светло-жёлтый.<br />
<br />
Хотя ман-страница {{Codeline|grep}} сообщает, что переменная <code>GREP_COLOR</code> устарела и вместо неё лучшеиспользовать <code>GREP_COLORS</code>, эта переменная не работает (по крайней мере в grep 2.5.4) так что пока используйте <code>GREP_COLOR</code>.<br />
<br />
===Colorizing and the Emacs Shell===<br />
By default, the [[emacs]] shell will rawly show escape sequences used to print colors. In other words, it will display strange symbols in place of the desired colored output.<br />
<br />
Including the following into {{Filename|~/.emacs}} ammends the problem:<br />
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)<br />
<br />
===Получение раскрашенных Man-страниц===<br />
Смотрите: [[Man Page]]<br />
<br />
===Changing Console Fonts===<br />
Terminus популярен среди пользователей Arch. Устанавливается так:<br />
pacman -S terminus-font<br />
Отредактируйте {{Filename|/etc/rc.conf}}:<br />
CONSOLEFONT="ter-v16b"<br />
Другие шрифты (с отличающимися стилями и размерами) могут быть найдены тут: {{Filename|/usr/share/kbd/consolefonts}}<br />
<br />
Переключайте шрифты налету с {{Codeline|setfont}}:<br />
setfont ter-v16b<br />
Если шрифт в консоли изменился в процессе загрузки и init выводит странные символы, добавьте ''keymap'' ловушку (hook) в {{Codeline|/etc/mkinitcpio.conf}} и пересоздайте ''initramfs'' образ:<br />
mkinitcpio -p kernel26<br />
<br />
Смотрите: [[Mkinitcpio_(Русский)|Mkinitcpio]]<br />
<br />
===Улучшение вида шрифтов для LCD мониторов===<br />
Смотрите: [[Font Configuration#LCD filter patched packages]]<br />
<br />
==Общие улучшения консоли==<br />
<br />
===Включение поиска по истории===<br />
See: [[Bash#History Search|Bash:History Search]]<br />
<br />
===Быстрое Bash дополнение===<br />
С добавлением в {{Filename|~/.bashrc}}:<br />
set show-all-if-ambiguous on<br />
нет необходимости дважды жать ''<Tab>'' чтобы получить список дополнений, теперь он будет появляться после одного нажатия.<br />
<br />
===Расширенное Bash дополнение===<br />
See: [[Bash#Advanced Bash Completion|Bash:Advanced Bash Completion]]<br />
<br />
===Алиасы (псевдонимы) команд для экономии времени===<br />
alias ll="ls -lh"<br />
alias la="ls -a"<br />
alias exit="clear; exit"<br />
alias x="startx"<br />
Персональные алиасы предпочтительно добавлять в {{Filename|~/.bashrc}}, алиасы уровня системы (которые применяются ко всем пользователям) находятся в {{Filename|/etc/bash.bashrc}}.<br />
<br />
===Полезные команды и программы===<br />
<br />
* '''grep''' - Ищет файл(ы) по шаблону.<br />
<br />
grep -i syslog /etc/*<br />
<br />
: Эта команда найдет все файлы в {{Filename|/etc}}, в которых встречается слово "''syslog''". Опция {{Codeline|-i}} позволяет искать регистронезависимые совпадения.<br />
<br />
* '''pkill''' и '''killall''' - Убивает процесс по имени.<br />
<br />
killall kdm<br />
<br />
: Убьет все потоки процесса {{Codeline|kdm}}.<br />
<br />
* '''pidof''' - Находит PID процесса по имени.<br />
<br />
pidof init<br />
<br />
: Выведет PID процесса init.<br />
<br />
* '''ps''' - Показывает состояние запущенных процессов.<br />
<br />
ps aux<br />
<br />
: Покажет все активные процессы.<br />
<br />
* '''locate''' - Быстро определяет местонахождение файлов на жестком диске.<br />
<br />
locate egrep<br />
<br />
: Найдет файлы и директории, в именах которых содержится ''egrep'' (перед использованием необходимо обновить базу (индексировать) путем выполнения {{Codeline|updatedb}}).<br />
<br />
===Извлечение сжатых файлов===<br />
<br />
Для {{Codeline|tar}} архивов используется комманда {{Codeline|tar}}, по умолчанию распаковывающая файл в соответствии с его расширением:<br />
<br />
tar xvf file.''расширение''<br />
<br />
В следующих примерах явно указываются типы архивов:<br />
<br />
file.tar : tar xvf file.tar<br />
file.tgz : tar xvzf file.tgz<br />
file.tar.gz : tar xvzf file.tar.gz<br />
file.tar.bz : bzip -cd file.bz | tar xvf -<br />
file.tar.bz2 : tar xvjf file.tar.bz2 <b>OR</b> bzip2 -cd file.bz2 | tar xvf -<br />
file.tar.xz : tar xvJf file.tar.xz <b>OR</b> xz -cd file.xz | tar xvf -<br />
file.zip : unzip file.zip<br />
file.rar : unrar x file.rar<br />
<br />
Некоторые из этих конструкций обеспечивают совместимость со старыми версиями, но они до сих пор бывают полезными при выполнении спецефических операций. Более подробную информацию ищите в руководстве(''man tar'') в секции ''Compatibility''.<br />
<br />
Чтобы не вводить каждый раз вручную комманды для распаковки архивов можно использовать приведенную ниже функцию. Добавьте следующий код в {{Filename|~/.bashrc}} и используйте {{Filename|extract <file_name>}}:<br />
<br />
<pre><br />
extract () {<br />
if [ -f $1 ] ; then<br />
case $1 in<br />
*.tar.bz2) tar xvjf $1 ;;<br />
*.tar.gz) tar xvzf $1 ;;<br />
*.tar.xz) tar xvJf $1 ;;<br />
*.bz2) bunzip2 $1 ;;<br />
*.rar) unrar x $1 ;;<br />
*.gz) gunzip $1 ;;<br />
*.tar) tar xvf $1 ;;<br />
*.tbz2) tar xvjf $1 ;;<br />
*.tgz) tar xvzf $1 ;;<br />
*.zip) unzip $1 ;;<br />
*.Z) uncompress $1 ;;<br />
*.7z) 7z x $1 ;;<br />
*.xz) unxz $1 ;;<br />
*.exe) cabextract $1 ;;<br />
*) echo "\`$1': неизвестный метод сжатия файла" ;;<br />
esac<br />
else<br />
echo "\`$1' нет такого файла"<br />
fi<br />
}<br />
</pre><br />
Функция сама выберет необходимую программу и аргументы для распаковки конкретного архива.<br />
{{Note|Для нормальной работы функции убедитесь, что все используемые ею программы присутствуют в вашей системе}}<br />
<br />
===Использование 'less' Для Просмотра Сжатых Файлов===<br />
Юзеры, часто пользующиеся командной строкой, возможно захотят установить [http://www-zeuthen.desy.de/~friebel/unix/lesspipe.html lesspipe]:<br />
# pacman -S lesspipe<br />
Это позволяет использовать {{Codeline|less}} для просмотра архивов:<br />
less compressed_file.tar.gz<br />
Результат будет примерно таков:<br />
==> use tar_file:contained_file to view a file in the archive<br />
-rw------- username/group 695 2008-01-04 19:24 compressed_file/content1<br />
-rw------- username/group 43 2007-11-07 11:17 compressed_file/content2<br />
compressed_file.tar.gz (END)<br />
Это также даёт воззможность использовать {{Codeline|less}} для просмотра других типов файлов; как альтернативу для команд, ассоциированых с определённым типом файла (например просмотр html или pdf с помощью html2txt или pdftotext).<br />
<br />
После установки {{Codeline|lesspipe}} следует перелогиниться или запустить {{Filename|/etc/profilde.d/lesspipe.sh}}<br />
<br />
===Включение поддержки мыши в консоли (gpm)===<br />
Установка {{Codeline|gpm}} предоставляет поддержку мыши в консоли:<br />
# pacman -S gpm<br />
Чтобы запустить его:<br />
# /etc/rc.d/gpm start<br />
Если мышь не работает должным образом, отредактируйте {{Filename|/etc/conf.d/gpm}}:<br />
* Для PS/2 мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/psaux -t ps2"<br />
* Для USB мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t imps2"<br />
* Для устройств IBM Trackpoint, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t ps2"<br />
Когда подходящая конфигурация найдена, добавьте {{Codeline|gpm}} в <code>DAEMONS</code> массив файла {{Filename|/etc/rc.conf}}, чтобы демон {{Codeline|gpm}} запускался при загрузке. Пример:<br />
DAEMONS=(syslog-ng '''gpm''' network netfs crond)<br />
<br />
==Локальная доставка почты==<br />
<br />
===Postfix===<br />
<br />
Настройка postfix для работы в режиме локальной доставки почты производится по следующей инструкции:[[Local Mail Delivery with Postfix]]. Смотри так-же, [[SSMTP]] и [[MSMTP]].<br />
<br />
==Управление пакетами и компиляция==<br />
===Pacman===<br />
Здесь преведены различные способы взаимодействия стандртного набора функций pacman'а с элементарным синтаксисом bash, что позооляет более удобно управлять пакетами.<br />
* Установка нескольких пакетов, имеющий в названии общую часть, например пакеты <code>kdemod</code>:<br />
pacman -S kdemod-{applets,theme,tools}<br />
* Вы можете использовать более сложную структуру, необходимую вам:<br />
pacman -S kdemod-{ui-{kde,kdemod},kdeartwork}<br />
* Pacman имеет параметр {{Codeline|-q}}, который запретит вывод версий пакетов. Это позволяет переустановить все пакеты, содержащие в названии, к примеру, "compiz":<br />
pacman -S `pacman -Qq | grep compiz`<br />
* Тот же результат может быть достигнут без использования параметра {{Codeline|-q}} с использованием {{Codeline|awk}}:<br />
pacman -S `pacman -Q | awk '/compiz/ { print $1 }'`<br />
On the subject of '''reinstalling every package''': listing currently installed packages will output everything, including packages that are local and/or might not be available for installation any longer. <br />
<br />
Simply running:<br />
pacman -S `pacman -Qq`<br />
Will output errors because some (or many) of the packages were not found in the repositories. There needs to be a way to list only packages that can be installed from the repositories present in {{Codeline|pacman}}'s database. In order to do so, combining a command to list all packages, and another to hide the list of foreign packages is required.<br />
<br />
This is achieved by using {{Codeline|comm -3}} to show only the packages that are not foreign packages:<br />
pacman -S $(comm -3 <(pacman -Qq) <(pacman -Qqm))<br />
<br />
====Зеркала====<br />
Чтобы воспользоваться всеми преимуществами самых быстрых и актуальных зеркал, смотрите [[Mirrors]].<br />
<br />
====Псевдомимы (aliases) pacman'а====<br />
Смотрите: [[Pacman Tips#Aliases]]<br />
<br />
===Лёгкая установка/обновление из AUR===<br />
<br />
Каждый должен знать, как пользоваться [[AUR]], [[ABS]], и [[makepkg]]<br />
чтобы устанавливать пакеты программного обеспечения. Слежка и обновление за пакетами может стать утомительной, особенно при большом количестве пакетов.<br />
<br />
Для облегчения проведения этих задач есть несколько программ/скриптов.<br />
Смотри: [[AUR Helpers|список программ облегчающих работу с AUR]]<br />
<br />
=== Using ABS to Recompile Packages ===<br />
<br />
The Arch Build System is a ports-like system of compile files used to make packages that are already in the repositories. To compile packages with different options see [[ABS]].<br />
<br />
=== Сборка оптимизированных пакетов ===<br />
<br />
Во время компилирования пакета приложения с помощью [[makepkg]], стандартному компилятору (GCC) можно задать опции, которые могут ускорить работу приложения. Обычно получаемое таким образом ускорение не сильно заметно, но если вы планируете компиляцию большого количества приложений, возможно вы захотите задать настройки соответствующие вашей спецификации аппаратной конфигурации.<br />
<br />
Для оптимизации программ собранных с помощью {{Codeline|makepkg}}, нужно найти тип процессора в [[CFLAGS]] и в соответствии с ним отредактировать файл {{Filename|/etc/makepkg.conf}}.<br />
<br />
Например:<br />
<br />
# Для процессора типа Athlon<br />
CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
CXXFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
<br />
==Networking==<br />
<br />
===Ускорение запросов DNS===<br />
<br />
[[Dnsmasq]] ускоряет загрузку с помощью кэширования запросов DNS.<br />
<br />
===Отключение IPv6===<br />
Пока ещё IPv6 не получил широкого распространения, может оказаться полезным [[IPv6_-_Disabling_the_Module_(Русский)|отключение модуля IPv6]].</div>Irrlichthttps://wiki.archlinux.org/index.php?title=General_recommendations_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124478General recommendations (Русский)2010-12-08T15:11:55Z<p>Irrlicht: /* Compiling Optimized Packages */</p>
<hr />
<div>[[Category:Русский]]<br />
{{i18n|General Recommendations}}<br />
{{Bad translation}}<br />
<br />
Вот некоторые популярные хитрости и общая информация, которая может пригодиться новичкам в Arch Linux.<br />
<br />
==Загрузка==<br />
===Автоматическое распознавание устройств===<br />
* [[hwdetect]] дает информацию о том, какие модули необходимы для каждого устройства.<br />
# pacman -S hwdetect<br />
* {{Package AUR|lshwd}}является альтернативой.<br />
<br />
===Повышение скорости загрузки Lilo===<br />
Чтобы ускорить процесс загрузки [[lilo]], нужно добавить следующую команду в {{Filename|/etc/lilo.conf}}:<br />
compact<br />
<br />
===Запуск X при загрузке===<br />
Смотрите: [[Запуск_X_при_загрузке|Start X at Boot (Русский)]]<br />
<br />
===Активация Numlock при загрузке===<br />
Смотрите: [[Включение_Numlock_При_Загрузке|Activating Numlock on Bootup (Русский)]]<br />
<br />
===Конец процесса загрузки===<br />
После загрузки сситемы, экран очищается и появляется строка логина в системе, вследствие чего пользователь не может прочитать вывод инициализации или сообщения об ошибках. Это поведение по умолчанию может быть изменено несколькими путями:<br />
<br />
Добавте одну из следующий записей в конец файла {{Filename|/etc/rc.local}}:<br />
* Ждать нажатия клавиши перед очисткой экрана:<br />
read -n1<br />
* Очистка произойдет по прошествии 5-ти секунд или по нажатию клавиши:<br />
read -t5 -n1<br />
Или:<br />
* Удалите первые 3 символа в {{Filename|/etc/issue}}, которые формируют escape-последовательность очистки экрана. Это также предотвратит очистку экрана после выхода из сессии.<br />
* Запустите {{Codeline|dmesg}} из командной строки, чтобы отобразить все сообщение, сгенерированые ядром во время последней загрузки.<br />
* Comment out the agetty instance that runs on <code>vc/1</code> in {{Filename|/etc/inittab}}:<br />
#c1:2345:respawn:/sbin/agetty -8 38400 vc/1 linux<br />
<br />
==Внешний вид==<br />
===Раскрашивание вывода консоли (PS1)===<br />
<br />
Смотрите: [[Color Bash Prompt]]<br />
<br />
===Раскрашивание вывода 'ls'===<br />
Можно улучшить цветной вывод команды {{Codeline|ls}}; например, сломанные (ссылающиеся на несуществующие файлы или каталоги) символьные ссылки будут отображаться красным.<br />
<br />
Файл {{Filename|~/.bashrc}} уже должен содержать такую запись, скопированную из {{Filename|/etc/skel/.bashrc}}:<br />
alias ls='ls --color=auto'<br />
Следующий шаг - добавление следующей строки в {{Filename|~/.bashrc}} и перезаход в учетную запись:<br />
eval `dircolors -b`<br />
{{Note|В последней команде использованы не одиночные, а обратные кавычки}}<br />
<br />
===Раскрашивание вывода 'grep'===<br />
Помимо запросов эстетов, цветной вывод {{Codeline|grep}} весьма полезен для изучения {{Codeline|регекспов}} и общей функциональности {{Codeline|grep}}.<br />
Чтобы включить его, добавьте следующие строки в {{Filename|~/.bashrc}}:<br />
export GREP_COLOR="1;33"<br />
alias grep='grep --color=auto'<br />
Переменная <code>GREP_COLOR</code> определяет цвет, в примере он светло-жёлтый.<br />
<br />
Хотя ман-страница {{Codeline|grep}} сообщает, что переменная <code>GREP_COLOR</code> устарела и вместо неё лучшеиспользовать <code>GREP_COLORS</code>, эта переменная не работает (по крайней мере в grep 2.5.4) так что пока используйте <code>GREP_COLOR</code>.<br />
<br />
===Colorizing and the Emacs Shell===<br />
By default, the [[emacs]] shell will rawly show escape sequences used to print colors. In other words, it will display strange symbols in place of the desired colored output.<br />
<br />
Including the following into {{Filename|~/.emacs}} ammends the problem:<br />
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)<br />
<br />
===Получение раскрашенных Man-страниц===<br />
Смотрите: [[Man Page]]<br />
<br />
===Changing Console Fonts===<br />
Terminus популярен среди пользователей Arch. Устанавливается так:<br />
pacman -S terminus-font<br />
Отредактируйте {{Filename|/etc/rc.conf}}:<br />
CONSOLEFONT="ter-v16b"<br />
Другие шрифты (с отличающимися стилями и размерами) могут быть найдены тут: {{Filename|/usr/share/kbd/consolefonts}}<br />
<br />
Переключайте шрифты налету с {{Codeline|setfont}}:<br />
setfont ter-v16b<br />
Если шрифт в консоли изменился в процессе загрузки и init выводит странные символы, добавьте ''keymap'' ловушку (hook) в {{Codeline|/etc/mkinitcpio.conf}} и пересоздайте ''initramfs'' образ:<br />
mkinitcpio -p kernel26<br />
<br />
Смотрите: [[Mkinitcpio_(Русский)|Mkinitcpio]]<br />
<br />
===Улучшение вида шрифтов для LCD мониторов===<br />
Смотрите: [[Font Configuration#LCD filter patched packages]]<br />
<br />
==Общие улучшения консоли==<br />
<br />
===Включение поиска по истории===<br />
See: [[Bash#History Search|Bash:History Search]]<br />
<br />
===Быстрое Bash дополнение===<br />
С добавлением в {{Filename|~/.bashrc}}:<br />
set show-all-if-ambiguous on<br />
нет необходимости дважды жать ''<Tab>'' чтобы получить список дополнений, теперь он будет появляться после одного нажатия.<br />
<br />
===Расширенное Bash дополнение===<br />
See: [[Bash#Advanced Bash Completion|Bash:Advanced Bash Completion]]<br />
<br />
===Алиасы (псевдонимы) команд для экономии времени===<br />
alias ll="ls -lh"<br />
alias la="ls -a"<br />
alias exit="clear; exit"<br />
alias x="startx"<br />
Персональные алиасы предпочтительно добавлять в {{Filename|~/.bashrc}}, алиасы уровня системы (которые применяются ко всем пользователям) находятся в {{Filename|/etc/bash.bashrc}}.<br />
<br />
===Полезные команды и программы===<br />
<br />
* '''grep''' - Ищет файл(ы) по шаблону.<br />
<br />
grep -i syslog /etc/*<br />
<br />
: Эта команда найдет все файлы в {{Filename|/etc}}, в которых встречается слово "''syslog''". Опция {{Codeline|-i}} позволяет искать регистронезависимые совпадения.<br />
<br />
* '''pkill''' и '''killall''' - Убивает процесс по имени.<br />
<br />
killall kdm<br />
<br />
: Убьет все потоки процесса {{Codeline|kdm}}.<br />
<br />
* '''pidof''' - Находит PID процесса по имени.<br />
<br />
pidof init<br />
<br />
: Выведет PID процесса init.<br />
<br />
* '''ps''' - Показывает состояние запущенных процессов.<br />
<br />
ps aux<br />
<br />
: Покажет все активные процессы.<br />
<br />
* '''locate''' - Быстро определяет местонахождение файлов на жестком диске.<br />
<br />
locate egrep<br />
<br />
: Найдет файлы и директории, в именах которых содержится ''egrep'' (перед использованием необходимо обновить базу (индексировать) путем выполнения {{Codeline|updatedb}}).<br />
<br />
===Извлечение сжатых файлов===<br />
<br />
Для {{Codeline|tar}} архивов используется комманда {{Codeline|tar}}, по умолчанию распаковывающая файл в соответствии с его расширением:<br />
<br />
tar xvf file.''расширение''<br />
<br />
В следующих примерах явно указываются типы архивов:<br />
<br />
file.tar : tar xvf file.tar<br />
file.tgz : tar xvzf file.tgz<br />
file.tar.gz : tar xvzf file.tar.gz<br />
file.tar.bz : bzip -cd file.bz | tar xvf -<br />
file.tar.bz2 : tar xvjf file.tar.bz2 <b>OR</b> bzip2 -cd file.bz2 | tar xvf -<br />
file.tar.xz : tar xvJf file.tar.xz <b>OR</b> xz -cd file.xz | tar xvf -<br />
file.zip : unzip file.zip<br />
file.rar : unrar x file.rar<br />
<br />
Некоторые из этих конструкций обеспечивают совместимость со старыми версиями, но они до сих пор бывают полезными при выполнении спецефических операций. Более подробную информацию ищите в руководстве(''man tar'') в секции ''Compatibility''.<br />
<br />
Чтобы не вводить каждый раз вручную комманды для распаковки архивов можно использовать приведенную ниже функцию. Добавьте следующий код в {{Filename|~/.bashrc}} и используйте {{Filename|extract <file_name>}}:<br />
<br />
<pre><br />
extract () {<br />
if [ -f $1 ] ; then<br />
case $1 in<br />
*.tar.bz2) tar xvjf $1 ;;<br />
*.tar.gz) tar xvzf $1 ;;<br />
*.tar.xz) tar xvJf $1 ;;<br />
*.bz2) bunzip2 $1 ;;<br />
*.rar) unrar x $1 ;;<br />
*.gz) gunzip $1 ;;<br />
*.tar) tar xvf $1 ;;<br />
*.tbz2) tar xvjf $1 ;;<br />
*.tgz) tar xvzf $1 ;;<br />
*.zip) unzip $1 ;;<br />
*.Z) uncompress $1 ;;<br />
*.7z) 7z x $1 ;;<br />
*.xz) unxz $1 ;;<br />
*.exe) cabextract $1 ;;<br />
*) echo "\`$1': неизвестный метод сжатия файла" ;;<br />
esac<br />
else<br />
echo "\`$1' нет такого файла"<br />
fi<br />
}<br />
</pre><br />
Функция сама выберет необходимую программу и аргументы для распаковки конкретного архива.<br />
{{Note|Для нормальной работы функции убедитесь, что все используемые ею программы присутствуют в вашей системе}}<br />
<br />
===Использование 'less' Для Просмотра Сжатых Файлов===<br />
Юзеры, часто пользующиеся командной строкой, возможно захотят установить [http://www-zeuthen.desy.de/~friebel/unix/lesspipe.html lesspipe]:<br />
# pacman -S lesspipe<br />
Это позволяет использовать {{Codeline|less}} для просмотра архивов:<br />
less compressed_file.tar.gz<br />
Результат будет примерно таков:<br />
==> use tar_file:contained_file to view a file in the archive<br />
-rw------- username/group 695 2008-01-04 19:24 compressed_file/content1<br />
-rw------- username/group 43 2007-11-07 11:17 compressed_file/content2<br />
compressed_file.tar.gz (END)<br />
Это также даёт воззможность использовать {{Codeline|less}} для просмотра других типов файлов; как альтернативу для команд, ассоциированых с определённым типом файла (например просмотр html или pdf с помощью html2txt или pdftotext).<br />
<br />
После установки {{Codeline|lesspipe}} следует перелогиниться или запустить {{Filename|/etc/profilde.d/lesspipe.sh}}<br />
<br />
===Включение поддержки мыши в консоли (gpm)===<br />
Установка {{Codeline|gpm}} предоставляет поддержку мыши в консоли:<br />
# pacman -S gpm<br />
Чтобы запустить его:<br />
# /etc/rc.d/gpm start<br />
Если мышь не работает должным образом, отредактируйте {{Filename|/etc/conf.d/gpm}}:<br />
* Для PS/2 мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/psaux -t ps2"<br />
* Для USB мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t imps2"<br />
* Для устройств IBM Trackpoint, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t ps2"<br />
Когда подходящая конфигурация найдена, добавьте {{Codeline|gpm}} в <code>DAEMONS</code> массив файла {{Filename|/etc/rc.conf}}, чтобы демон {{Codeline|gpm}} запускался при загрузке. Пример:<br />
DAEMONS=(syslog-ng '''gpm''' network netfs crond)<br />
<br />
==Локальная доставка почты==<br />
<br />
===Postfix===<br />
<br />
Настройка postfix для работы в режиме локальной доставки почты производится по следующей инструкции:[[Local Mail Delivery with Postfix]]. Смотри так-же, [[SSMTP]] и [[MSMTP]].<br />
<br />
==Управление пакетами и компиляция==<br />
===Pacman===<br />
Здесь преведены различные способы взаимодействия стандртного набора функций pacman'а с элементарным синтаксисом bash, что позооляет более удобно управлять пакетами.<br />
* Установка нескольких пакетов, имеющий в названии общую часть, например пакеты <code>kdemod</code>:<br />
pacman -S kdemod-{applets,theme,tools}<br />
* Вы можете использовать более сложную структуру, необходимую вам:<br />
pacman -S kdemod-{ui-{kde,kdemod},kdeartwork}<br />
* Pacman имеет параметр {{Codeline|-q}}, который запретит вывод версий пакетов. Это позволяет переустановить все пакеты, содержащие в названии, к примеру, "compiz":<br />
pacman -S `pacman -Qq | grep compiz`<br />
* Тот же результат может быть достигнут без использования параметра {{Codeline|-q}} с использованием {{Codeline|awk}}:<br />
pacman -S `pacman -Q | awk '/compiz/ { print $1 }'`<br />
On the subject of '''reinstalling every package''': listing currently installed packages will output everything, including packages that are local and/or might not be available for installation any longer. <br />
<br />
Simply running:<br />
pacman -S `pacman -Qq`<br />
Will output errors because some (or many) of the packages were not found in the repositories. There needs to be a way to list only packages that can be installed from the repositories present in {{Codeline|pacman}}'s database. In order to do so, combining a command to list all packages, and another to hide the list of foreign packages is required.<br />
<br />
This is achieved by using {{Codeline|comm -3}} to show only the packages that are not foreign packages:<br />
pacman -S $(comm -3 <(pacman -Qq) <(pacman -Qqm))<br />
<br />
====Зеркала====<br />
Чтобы воспользоваться всеми преимуществами самых быстрых и актуальных зеркал, смотрите [[Mirrors]].<br />
<br />
====Псевдомимы (aliases) pacman'а====<br />
Смотрите: [[Pacman Tips#Aliases]]<br />
<br />
===Лёгкая установка/обновление из AUR===<br />
<br />
Каждый должен знать, как пользоваться [[AUR]], [[ABS]], и [[makepkg]]<br />
чтобы устанавливать пакеты программного обеспечения. Слежка и обновление за пакетами может стать утомительной, особенно при большом количестве пакетов.<br />
<br />
Для облегчения проведения этих задач есть несколько программ/скриптов.<br />
Смотри: [[AUR Helpers|список программ облегчающих работу с AUR]]<br />
<br />
=== Using ABS to Recompile Packages ===<br />
<br />
The Arch Build System is a ports-like system of compile files used to make packages that are already in the repositories. To compile packages with different options see [[ABS]].<br />
<br />
=== Сборка оптимизированных пакетов ===<br />
<br />
Во время компилирования пакета приложения с помощью [[makepkg]], стандартному компилятору (GCC) можно задать опции, которые могут ускорить работу приложения. Обычно получаемое таким образом ускорение не сильно заметно, но если вы планируете компиляцию большого количества приложений, возможно вы захотите задать настройки соответствующие вашей спецификации аппаратной конфигурации.<br />
<br />
Для оптимизации программ собранных с помощью {{Codeline|makepkg}}, нужно найти тип процессора в [[CFLAGS]] и в соответствии с ним отредактировать файл {{Filename|/etc/makepkg.conf}}.<br />
<br />
Например:<br />
<br />
# Для процессора типа Athlon<br />
CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
CXXFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
<br />
==Networking==<br />
<br />
=== Speeding up DNS Queries ===<br />
<br />
Consider using [[Dnsmasq]] to improve load time by caching DNS queries.<br />
<br />
===Отключение IPv6===<br />
Пока ещё IPv6 не получил широкого распространения, может оказаться полезным [[IPv6_-_Disabling_the_Module_(Русский)|отключение модуля IPv6]].</div>Irrlichthttps://wiki.archlinux.org/index.php?title=General_recommendations_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124477General recommendations (Русский)2010-12-08T14:57:56Z<p>Irrlicht: /* Лёгкая установка/обновление из AUR */</p>
<hr />
<div>[[Category:Русский]]<br />
{{i18n|General Recommendations}}<br />
{{Bad translation}}<br />
<br />
Вот некоторые популярные хитрости и общая информация, которая может пригодиться новичкам в Arch Linux.<br />
<br />
==Загрузка==<br />
===Автоматическое распознавание устройств===<br />
* [[hwdetect]] дает информацию о том, какие модули необходимы для каждого устройства.<br />
# pacman -S hwdetect<br />
* {{Package AUR|lshwd}}является альтернативой.<br />
<br />
===Повышение скорости загрузки Lilo===<br />
Чтобы ускорить процесс загрузки [[lilo]], нужно добавить следующую команду в {{Filename|/etc/lilo.conf}}:<br />
compact<br />
<br />
===Запуск X при загрузке===<br />
Смотрите: [[Запуск_X_при_загрузке|Start X at Boot (Русский)]]<br />
<br />
===Активация Numlock при загрузке===<br />
Смотрите: [[Включение_Numlock_При_Загрузке|Activating Numlock on Bootup (Русский)]]<br />
<br />
===Конец процесса загрузки===<br />
После загрузки сситемы, экран очищается и появляется строка логина в системе, вследствие чего пользователь не может прочитать вывод инициализации или сообщения об ошибках. Это поведение по умолчанию может быть изменено несколькими путями:<br />
<br />
Добавте одну из следующий записей в конец файла {{Filename|/etc/rc.local}}:<br />
* Ждать нажатия клавиши перед очисткой экрана:<br />
read -n1<br />
* Очистка произойдет по прошествии 5-ти секунд или по нажатию клавиши:<br />
read -t5 -n1<br />
Или:<br />
* Удалите первые 3 символа в {{Filename|/etc/issue}}, которые формируют escape-последовательность очистки экрана. Это также предотвратит очистку экрана после выхода из сессии.<br />
* Запустите {{Codeline|dmesg}} из командной строки, чтобы отобразить все сообщение, сгенерированые ядром во время последней загрузки.<br />
* Comment out the agetty instance that runs on <code>vc/1</code> in {{Filename|/etc/inittab}}:<br />
#c1:2345:respawn:/sbin/agetty -8 38400 vc/1 linux<br />
<br />
==Внешний вид==<br />
===Раскрашивание вывода консоли (PS1)===<br />
<br />
Смотрите: [[Color Bash Prompt]]<br />
<br />
===Раскрашивание вывода 'ls'===<br />
Можно улучшить цветной вывод команды {{Codeline|ls}}; например, сломанные (ссылающиеся на несуществующие файлы или каталоги) символьные ссылки будут отображаться красным.<br />
<br />
Файл {{Filename|~/.bashrc}} уже должен содержать такую запись, скопированную из {{Filename|/etc/skel/.bashrc}}:<br />
alias ls='ls --color=auto'<br />
Следующий шаг - добавление следующей строки в {{Filename|~/.bashrc}} и перезаход в учетную запись:<br />
eval `dircolors -b`<br />
{{Note|В последней команде использованы не одиночные, а обратные кавычки}}<br />
<br />
===Раскрашивание вывода 'grep'===<br />
Помимо запросов эстетов, цветной вывод {{Codeline|grep}} весьма полезен для изучения {{Codeline|регекспов}} и общей функциональности {{Codeline|grep}}.<br />
Чтобы включить его, добавьте следующие строки в {{Filename|~/.bashrc}}:<br />
export GREP_COLOR="1;33"<br />
alias grep='grep --color=auto'<br />
Переменная <code>GREP_COLOR</code> определяет цвет, в примере он светло-жёлтый.<br />
<br />
Хотя ман-страница {{Codeline|grep}} сообщает, что переменная <code>GREP_COLOR</code> устарела и вместо неё лучшеиспользовать <code>GREP_COLORS</code>, эта переменная не работает (по крайней мере в grep 2.5.4) так что пока используйте <code>GREP_COLOR</code>.<br />
<br />
===Colorizing and the Emacs Shell===<br />
By default, the [[emacs]] shell will rawly show escape sequences used to print colors. In other words, it will display strange symbols in place of the desired colored output.<br />
<br />
Including the following into {{Filename|~/.emacs}} ammends the problem:<br />
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)<br />
<br />
===Получение раскрашенных Man-страниц===<br />
Смотрите: [[Man Page]]<br />
<br />
===Changing Console Fonts===<br />
Terminus популярен среди пользователей Arch. Устанавливается так:<br />
pacman -S terminus-font<br />
Отредактируйте {{Filename|/etc/rc.conf}}:<br />
CONSOLEFONT="ter-v16b"<br />
Другие шрифты (с отличающимися стилями и размерами) могут быть найдены тут: {{Filename|/usr/share/kbd/consolefonts}}<br />
<br />
Переключайте шрифты налету с {{Codeline|setfont}}:<br />
setfont ter-v16b<br />
Если шрифт в консоли изменился в процессе загрузки и init выводит странные символы, добавьте ''keymap'' ловушку (hook) в {{Codeline|/etc/mkinitcpio.conf}} и пересоздайте ''initramfs'' образ:<br />
mkinitcpio -p kernel26<br />
<br />
Смотрите: [[Mkinitcpio_(Русский)|Mkinitcpio]]<br />
<br />
===Улучшение вида шрифтов для LCD мониторов===<br />
Смотрите: [[Font Configuration#LCD filter patched packages]]<br />
<br />
==Общие улучшения консоли==<br />
<br />
===Включение поиска по истории===<br />
See: [[Bash#History Search|Bash:History Search]]<br />
<br />
===Быстрое Bash дополнение===<br />
С добавлением в {{Filename|~/.bashrc}}:<br />
set show-all-if-ambiguous on<br />
нет необходимости дважды жать ''<Tab>'' чтобы получить список дополнений, теперь он будет появляться после одного нажатия.<br />
<br />
===Расширенное Bash дополнение===<br />
See: [[Bash#Advanced Bash Completion|Bash:Advanced Bash Completion]]<br />
<br />
===Алиасы (псевдонимы) команд для экономии времени===<br />
alias ll="ls -lh"<br />
alias la="ls -a"<br />
alias exit="clear; exit"<br />
alias x="startx"<br />
Персональные алиасы предпочтительно добавлять в {{Filename|~/.bashrc}}, алиасы уровня системы (которые применяются ко всем пользователям) находятся в {{Filename|/etc/bash.bashrc}}.<br />
<br />
===Полезные команды и программы===<br />
<br />
* '''grep''' - Ищет файл(ы) по шаблону.<br />
<br />
grep -i syslog /etc/*<br />
<br />
: Эта команда найдет все файлы в {{Filename|/etc}}, в которых встречается слово "''syslog''". Опция {{Codeline|-i}} позволяет искать регистронезависимые совпадения.<br />
<br />
* '''pkill''' и '''killall''' - Убивает процесс по имени.<br />
<br />
killall kdm<br />
<br />
: Убьет все потоки процесса {{Codeline|kdm}}.<br />
<br />
* '''pidof''' - Находит PID процесса по имени.<br />
<br />
pidof init<br />
<br />
: Выведет PID процесса init.<br />
<br />
* '''ps''' - Показывает состояние запущенных процессов.<br />
<br />
ps aux<br />
<br />
: Покажет все активные процессы.<br />
<br />
* '''locate''' - Быстро определяет местонахождение файлов на жестком диске.<br />
<br />
locate egrep<br />
<br />
: Найдет файлы и директории, в именах которых содержится ''egrep'' (перед использованием необходимо обновить базу (индексировать) путем выполнения {{Codeline|updatedb}}).<br />
<br />
===Извлечение сжатых файлов===<br />
<br />
Для {{Codeline|tar}} архивов используется комманда {{Codeline|tar}}, по умолчанию распаковывающая файл в соответствии с его расширением:<br />
<br />
tar xvf file.''расширение''<br />
<br />
В следующих примерах явно указываются типы архивов:<br />
<br />
file.tar : tar xvf file.tar<br />
file.tgz : tar xvzf file.tgz<br />
file.tar.gz : tar xvzf file.tar.gz<br />
file.tar.bz : bzip -cd file.bz | tar xvf -<br />
file.tar.bz2 : tar xvjf file.tar.bz2 <b>OR</b> bzip2 -cd file.bz2 | tar xvf -<br />
file.tar.xz : tar xvJf file.tar.xz <b>OR</b> xz -cd file.xz | tar xvf -<br />
file.zip : unzip file.zip<br />
file.rar : unrar x file.rar<br />
<br />
Некоторые из этих конструкций обеспечивают совместимость со старыми версиями, но они до сих пор бывают полезными при выполнении спецефических операций. Более подробную информацию ищите в руководстве(''man tar'') в секции ''Compatibility''.<br />
<br />
Чтобы не вводить каждый раз вручную комманды для распаковки архивов можно использовать приведенную ниже функцию. Добавьте следующий код в {{Filename|~/.bashrc}} и используйте {{Filename|extract <file_name>}}:<br />
<br />
<pre><br />
extract () {<br />
if [ -f $1 ] ; then<br />
case $1 in<br />
*.tar.bz2) tar xvjf $1 ;;<br />
*.tar.gz) tar xvzf $1 ;;<br />
*.tar.xz) tar xvJf $1 ;;<br />
*.bz2) bunzip2 $1 ;;<br />
*.rar) unrar x $1 ;;<br />
*.gz) gunzip $1 ;;<br />
*.tar) tar xvf $1 ;;<br />
*.tbz2) tar xvjf $1 ;;<br />
*.tgz) tar xvzf $1 ;;<br />
*.zip) unzip $1 ;;<br />
*.Z) uncompress $1 ;;<br />
*.7z) 7z x $1 ;;<br />
*.xz) unxz $1 ;;<br />
*.exe) cabextract $1 ;;<br />
*) echo "\`$1': неизвестный метод сжатия файла" ;;<br />
esac<br />
else<br />
echo "\`$1' нет такого файла"<br />
fi<br />
}<br />
</pre><br />
Функция сама выберет необходимую программу и аргументы для распаковки конкретного архива.<br />
{{Note|Для нормальной работы функции убедитесь, что все используемые ею программы присутствуют в вашей системе}}<br />
<br />
===Использование 'less' Для Просмотра Сжатых Файлов===<br />
Юзеры, часто пользующиеся командной строкой, возможно захотят установить [http://www-zeuthen.desy.de/~friebel/unix/lesspipe.html lesspipe]:<br />
# pacman -S lesspipe<br />
Это позволяет использовать {{Codeline|less}} для просмотра архивов:<br />
less compressed_file.tar.gz<br />
Результат будет примерно таков:<br />
==> use tar_file:contained_file to view a file in the archive<br />
-rw------- username/group 695 2008-01-04 19:24 compressed_file/content1<br />
-rw------- username/group 43 2007-11-07 11:17 compressed_file/content2<br />
compressed_file.tar.gz (END)<br />
Это также даёт воззможность использовать {{Codeline|less}} для просмотра других типов файлов; как альтернативу для команд, ассоциированых с определённым типом файла (например просмотр html или pdf с помощью html2txt или pdftotext).<br />
<br />
После установки {{Codeline|lesspipe}} следует перелогиниться или запустить {{Filename|/etc/profilde.d/lesspipe.sh}}<br />
<br />
===Включение поддержки мыши в консоли (gpm)===<br />
Установка {{Codeline|gpm}} предоставляет поддержку мыши в консоли:<br />
# pacman -S gpm<br />
Чтобы запустить его:<br />
# /etc/rc.d/gpm start<br />
Если мышь не работает должным образом, отредактируйте {{Filename|/etc/conf.d/gpm}}:<br />
* Для PS/2 мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/psaux -t ps2"<br />
* Для USB мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t imps2"<br />
* Для устройств IBM Trackpoint, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t ps2"<br />
Когда подходящая конфигурация найдена, добавьте {{Codeline|gpm}} в <code>DAEMONS</code> массив файла {{Filename|/etc/rc.conf}}, чтобы демон {{Codeline|gpm}} запускался при загрузке. Пример:<br />
DAEMONS=(syslog-ng '''gpm''' network netfs crond)<br />
<br />
==Локальная доставка почты==<br />
<br />
===Postfix===<br />
<br />
Настройка postfix для работы в режиме локальной доставки почты производится по следующей инструкции:[[Local Mail Delivery with Postfix]]. Смотри так-же, [[SSMTP]] и [[MSMTP]].<br />
<br />
==Управление пакетами и компиляция==<br />
===Pacman===<br />
Здесь преведены различные способы взаимодействия стандртного набора функций pacman'а с элементарным синтаксисом bash, что позооляет более удобно управлять пакетами.<br />
* Установка нескольких пакетов, имеющий в названии общую часть, например пакеты <code>kdemod</code>:<br />
pacman -S kdemod-{applets,theme,tools}<br />
* Вы можете использовать более сложную структуру, необходимую вам:<br />
pacman -S kdemod-{ui-{kde,kdemod},kdeartwork}<br />
* Pacman имеет параметр {{Codeline|-q}}, который запретит вывод версий пакетов. Это позволяет переустановить все пакеты, содержащие в названии, к примеру, "compiz":<br />
pacman -S `pacman -Qq | grep compiz`<br />
* Тот же результат может быть достигнут без использования параметра {{Codeline|-q}} с использованием {{Codeline|awk}}:<br />
pacman -S `pacman -Q | awk '/compiz/ { print $1 }'`<br />
On the subject of '''reinstalling every package''': listing currently installed packages will output everything, including packages that are local and/or might not be available for installation any longer. <br />
<br />
Simply running:<br />
pacman -S `pacman -Qq`<br />
Will output errors because some (or many) of the packages were not found in the repositories. There needs to be a way to list only packages that can be installed from the repositories present in {{Codeline|pacman}}'s database. In order to do so, combining a command to list all packages, and another to hide the list of foreign packages is required.<br />
<br />
This is achieved by using {{Codeline|comm -3}} to show only the packages that are not foreign packages:<br />
pacman -S $(comm -3 <(pacman -Qq) <(pacman -Qqm))<br />
<br />
====Зеркала====<br />
Чтобы воспользоваться всеми преимуществами самых быстрых и актуальных зеркал, смотрите [[Mirrors]].<br />
<br />
====Псевдомимы (aliases) pacman'а====<br />
Смотрите: [[Pacman Tips#Aliases]]<br />
<br />
===Лёгкая установка/обновление из AUR===<br />
<br />
Каждый должен знать, как пользоваться [[AUR]], [[ABS]], и [[makepkg]]<br />
чтобы устанавливать пакеты программного обеспечения. Слежка и обновление за пакетами может стать утомительной, особенно при большом количестве пакетов.<br />
<br />
Для облегчения проведения этих задач есть несколько программ/скриптов.<br />
Смотри: [[AUR Helpers|список программ облегчающих работу с AUR]]<br />
<br />
=== Using ABS to Recompile Packages ===<br />
<br />
The Arch Build System is a ports-like system of compile files used to make packages that are already in the repositories. To compile packages with different options see [[ABS]].<br />
<br />
=== Compiling Optimized Packages ===<br />
<br />
When packages are compiled with Arch's package creation tool [[makepkg]], the standard compiler (GCC) has options to be able specify machine type that can improve the load time, performance of a package. Generally any speed improvements are slight, but if you plan to compile a lot of packages you might want to consider setting your machine specifications.<br />
<br />
For optimized the packages built using {{Codeline|makepkg}}, find your processor type in [[CFLAGS]] and edit {{Filename|/etc/makepkg.conf}}. Example:<br />
<br />
# For an Athlon CPU<br />
CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
CXXFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
<br />
==Networking==<br />
<br />
=== Speeding up DNS Queries ===<br />
<br />
Consider using [[Dnsmasq]] to improve load time by caching DNS queries.<br />
<br />
===Отключение IPv6===<br />
Пока ещё IPv6 не получил широкого распространения, может оказаться полезным [[IPv6_-_Disabling_the_Module_(Русский)|отключение модуля IPv6]].</div>Irrlichthttps://wiki.archlinux.org/index.php?title=General_recommendations_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124476General recommendations (Русский)2010-12-08T14:56:41Z<p>Irrlicht: </p>
<hr />
<div>[[Category:Русский]]<br />
{{i18n|General Recommendations}}<br />
{{Bad translation}}<br />
<br />
Вот некоторые популярные хитрости и общая информация, которая может пригодиться новичкам в Arch Linux.<br />
<br />
==Загрузка==<br />
===Автоматическое распознавание устройств===<br />
* [[hwdetect]] дает информацию о том, какие модули необходимы для каждого устройства.<br />
# pacman -S hwdetect<br />
* {{Package AUR|lshwd}}является альтернативой.<br />
<br />
===Повышение скорости загрузки Lilo===<br />
Чтобы ускорить процесс загрузки [[lilo]], нужно добавить следующую команду в {{Filename|/etc/lilo.conf}}:<br />
compact<br />
<br />
===Запуск X при загрузке===<br />
Смотрите: [[Запуск_X_при_загрузке|Start X at Boot (Русский)]]<br />
<br />
===Активация Numlock при загрузке===<br />
Смотрите: [[Включение_Numlock_При_Загрузке|Activating Numlock on Bootup (Русский)]]<br />
<br />
===Конец процесса загрузки===<br />
После загрузки сситемы, экран очищается и появляется строка логина в системе, вследствие чего пользователь не может прочитать вывод инициализации или сообщения об ошибках. Это поведение по умолчанию может быть изменено несколькими путями:<br />
<br />
Добавте одну из следующий записей в конец файла {{Filename|/etc/rc.local}}:<br />
* Ждать нажатия клавиши перед очисткой экрана:<br />
read -n1<br />
* Очистка произойдет по прошествии 5-ти секунд или по нажатию клавиши:<br />
read -t5 -n1<br />
Или:<br />
* Удалите первые 3 символа в {{Filename|/etc/issue}}, которые формируют escape-последовательность очистки экрана. Это также предотвратит очистку экрана после выхода из сессии.<br />
* Запустите {{Codeline|dmesg}} из командной строки, чтобы отобразить все сообщение, сгенерированые ядром во время последней загрузки.<br />
* Comment out the agetty instance that runs on <code>vc/1</code> in {{Filename|/etc/inittab}}:<br />
#c1:2345:respawn:/sbin/agetty -8 38400 vc/1 linux<br />
<br />
==Внешний вид==<br />
===Раскрашивание вывода консоли (PS1)===<br />
<br />
Смотрите: [[Color Bash Prompt]]<br />
<br />
===Раскрашивание вывода 'ls'===<br />
Можно улучшить цветной вывод команды {{Codeline|ls}}; например, сломанные (ссылающиеся на несуществующие файлы или каталоги) символьные ссылки будут отображаться красным.<br />
<br />
Файл {{Filename|~/.bashrc}} уже должен содержать такую запись, скопированную из {{Filename|/etc/skel/.bashrc}}:<br />
alias ls='ls --color=auto'<br />
Следующий шаг - добавление следующей строки в {{Filename|~/.bashrc}} и перезаход в учетную запись:<br />
eval `dircolors -b`<br />
{{Note|В последней команде использованы не одиночные, а обратные кавычки}}<br />
<br />
===Раскрашивание вывода 'grep'===<br />
Помимо запросов эстетов, цветной вывод {{Codeline|grep}} весьма полезен для изучения {{Codeline|регекспов}} и общей функциональности {{Codeline|grep}}.<br />
Чтобы включить его, добавьте следующие строки в {{Filename|~/.bashrc}}:<br />
export GREP_COLOR="1;33"<br />
alias grep='grep --color=auto'<br />
Переменная <code>GREP_COLOR</code> определяет цвет, в примере он светло-жёлтый.<br />
<br />
Хотя ман-страница {{Codeline|grep}} сообщает, что переменная <code>GREP_COLOR</code> устарела и вместо неё лучшеиспользовать <code>GREP_COLORS</code>, эта переменная не работает (по крайней мере в grep 2.5.4) так что пока используйте <code>GREP_COLOR</code>.<br />
<br />
===Colorizing and the Emacs Shell===<br />
By default, the [[emacs]] shell will rawly show escape sequences used to print colors. In other words, it will display strange symbols in place of the desired colored output.<br />
<br />
Including the following into {{Filename|~/.emacs}} ammends the problem:<br />
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)<br />
<br />
===Получение раскрашенных Man-страниц===<br />
Смотрите: [[Man Page]]<br />
<br />
===Changing Console Fonts===<br />
Terminus популярен среди пользователей Arch. Устанавливается так:<br />
pacman -S terminus-font<br />
Отредактируйте {{Filename|/etc/rc.conf}}:<br />
CONSOLEFONT="ter-v16b"<br />
Другие шрифты (с отличающимися стилями и размерами) могут быть найдены тут: {{Filename|/usr/share/kbd/consolefonts}}<br />
<br />
Переключайте шрифты налету с {{Codeline|setfont}}:<br />
setfont ter-v16b<br />
Если шрифт в консоли изменился в процессе загрузки и init выводит странные символы, добавьте ''keymap'' ловушку (hook) в {{Codeline|/etc/mkinitcpio.conf}} и пересоздайте ''initramfs'' образ:<br />
mkinitcpio -p kernel26<br />
<br />
Смотрите: [[Mkinitcpio_(Русский)|Mkinitcpio]]<br />
<br />
===Улучшение вида шрифтов для LCD мониторов===<br />
Смотрите: [[Font Configuration#LCD filter patched packages]]<br />
<br />
==Общие улучшения консоли==<br />
<br />
===Включение поиска по истории===<br />
See: [[Bash#History Search|Bash:History Search]]<br />
<br />
===Быстрое Bash дополнение===<br />
С добавлением в {{Filename|~/.bashrc}}:<br />
set show-all-if-ambiguous on<br />
нет необходимости дважды жать ''<Tab>'' чтобы получить список дополнений, теперь он будет появляться после одного нажатия.<br />
<br />
===Расширенное Bash дополнение===<br />
See: [[Bash#Advanced Bash Completion|Bash:Advanced Bash Completion]]<br />
<br />
===Алиасы (псевдонимы) команд для экономии времени===<br />
alias ll="ls -lh"<br />
alias la="ls -a"<br />
alias exit="clear; exit"<br />
alias x="startx"<br />
Персональные алиасы предпочтительно добавлять в {{Filename|~/.bashrc}}, алиасы уровня системы (которые применяются ко всем пользователям) находятся в {{Filename|/etc/bash.bashrc}}.<br />
<br />
===Полезные команды и программы===<br />
<br />
* '''grep''' - Ищет файл(ы) по шаблону.<br />
<br />
grep -i syslog /etc/*<br />
<br />
: Эта команда найдет все файлы в {{Filename|/etc}}, в которых встречается слово "''syslog''". Опция {{Codeline|-i}} позволяет искать регистронезависимые совпадения.<br />
<br />
* '''pkill''' и '''killall''' - Убивает процесс по имени.<br />
<br />
killall kdm<br />
<br />
: Убьет все потоки процесса {{Codeline|kdm}}.<br />
<br />
* '''pidof''' - Находит PID процесса по имени.<br />
<br />
pidof init<br />
<br />
: Выведет PID процесса init.<br />
<br />
* '''ps''' - Показывает состояние запущенных процессов.<br />
<br />
ps aux<br />
<br />
: Покажет все активные процессы.<br />
<br />
* '''locate''' - Быстро определяет местонахождение файлов на жестком диске.<br />
<br />
locate egrep<br />
<br />
: Найдет файлы и директории, в именах которых содержится ''egrep'' (перед использованием необходимо обновить базу (индексировать) путем выполнения {{Codeline|updatedb}}).<br />
<br />
===Извлечение сжатых файлов===<br />
<br />
Для {{Codeline|tar}} архивов используется комманда {{Codeline|tar}}, по умолчанию распаковывающая файл в соответствии с его расширением:<br />
<br />
tar xvf file.''расширение''<br />
<br />
В следующих примерах явно указываются типы архивов:<br />
<br />
file.tar : tar xvf file.tar<br />
file.tgz : tar xvzf file.tgz<br />
file.tar.gz : tar xvzf file.tar.gz<br />
file.tar.bz : bzip -cd file.bz | tar xvf -<br />
file.tar.bz2 : tar xvjf file.tar.bz2 <b>OR</b> bzip2 -cd file.bz2 | tar xvf -<br />
file.tar.xz : tar xvJf file.tar.xz <b>OR</b> xz -cd file.xz | tar xvf -<br />
file.zip : unzip file.zip<br />
file.rar : unrar x file.rar<br />
<br />
Некоторые из этих конструкций обеспечивают совместимость со старыми версиями, но они до сих пор бывают полезными при выполнении спецефических операций. Более подробную информацию ищите в руководстве(''man tar'') в секции ''Compatibility''.<br />
<br />
Чтобы не вводить каждый раз вручную комманды для распаковки архивов можно использовать приведенную ниже функцию. Добавьте следующий код в {{Filename|~/.bashrc}} и используйте {{Filename|extract <file_name>}}:<br />
<br />
<pre><br />
extract () {<br />
if [ -f $1 ] ; then<br />
case $1 in<br />
*.tar.bz2) tar xvjf $1 ;;<br />
*.tar.gz) tar xvzf $1 ;;<br />
*.tar.xz) tar xvJf $1 ;;<br />
*.bz2) bunzip2 $1 ;;<br />
*.rar) unrar x $1 ;;<br />
*.gz) gunzip $1 ;;<br />
*.tar) tar xvf $1 ;;<br />
*.tbz2) tar xvjf $1 ;;<br />
*.tgz) tar xvzf $1 ;;<br />
*.zip) unzip $1 ;;<br />
*.Z) uncompress $1 ;;<br />
*.7z) 7z x $1 ;;<br />
*.xz) unxz $1 ;;<br />
*.exe) cabextract $1 ;;<br />
*) echo "\`$1': неизвестный метод сжатия файла" ;;<br />
esac<br />
else<br />
echo "\`$1' нет такого файла"<br />
fi<br />
}<br />
</pre><br />
Функция сама выберет необходимую программу и аргументы для распаковки конкретного архива.<br />
{{Note|Для нормальной работы функции убедитесь, что все используемые ею программы присутствуют в вашей системе}}<br />
<br />
===Использование 'less' Для Просмотра Сжатых Файлов===<br />
Юзеры, часто пользующиеся командной строкой, возможно захотят установить [http://www-zeuthen.desy.de/~friebel/unix/lesspipe.html lesspipe]:<br />
# pacman -S lesspipe<br />
Это позволяет использовать {{Codeline|less}} для просмотра архивов:<br />
less compressed_file.tar.gz<br />
Результат будет примерно таков:<br />
==> use tar_file:contained_file to view a file in the archive<br />
-rw------- username/group 695 2008-01-04 19:24 compressed_file/content1<br />
-rw------- username/group 43 2007-11-07 11:17 compressed_file/content2<br />
compressed_file.tar.gz (END)<br />
Это также даёт воззможность использовать {{Codeline|less}} для просмотра других типов файлов; как альтернативу для команд, ассоциированых с определённым типом файла (например просмотр html или pdf с помощью html2txt или pdftotext).<br />
<br />
После установки {{Codeline|lesspipe}} следует перелогиниться или запустить {{Filename|/etc/profilde.d/lesspipe.sh}}<br />
<br />
===Включение поддержки мыши в консоли (gpm)===<br />
Установка {{Codeline|gpm}} предоставляет поддержку мыши в консоли:<br />
# pacman -S gpm<br />
Чтобы запустить его:<br />
# /etc/rc.d/gpm start<br />
Если мышь не работает должным образом, отредактируйте {{Filename|/etc/conf.d/gpm}}:<br />
* Для PS/2 мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/psaux -t ps2"<br />
* Для USB мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t imps2"<br />
* Для устройств IBM Trackpoint, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t ps2"<br />
Когда подходящая конфигурация найдена, добавьте {{Codeline|gpm}} в <code>DAEMONS</code> массив файла {{Filename|/etc/rc.conf}}, чтобы демон {{Codeline|gpm}} запускался при загрузке. Пример:<br />
DAEMONS=(syslog-ng '''gpm''' network netfs crond)<br />
<br />
==Локальная доставка почты==<br />
<br />
===Postfix===<br />
<br />
Настройка postfix для работы в режиме локальной доставки почты производится по следующей инструкции:[[Local Mail Delivery with Postfix]]. Смотри так-же, [[SSMTP]] и [[MSMTP]].<br />
<br />
==Управление пакетами и компиляция==<br />
===Pacman===<br />
Здесь преведены различные способы взаимодействия стандртного набора функций pacman'а с элементарным синтаксисом bash, что позооляет более удобно управлять пакетами.<br />
* Установка нескольких пакетов, имеющий в названии общую часть, например пакеты <code>kdemod</code>:<br />
pacman -S kdemod-{applets,theme,tools}<br />
* Вы можете использовать более сложную структуру, необходимую вам:<br />
pacman -S kdemod-{ui-{kde,kdemod},kdeartwork}<br />
* Pacman имеет параметр {{Codeline|-q}}, который запретит вывод версий пакетов. Это позволяет переустановить все пакеты, содержащие в названии, к примеру, "compiz":<br />
pacman -S `pacman -Qq | grep compiz`<br />
* Тот же результат может быть достигнут без использования параметра {{Codeline|-q}} с использованием {{Codeline|awk}}:<br />
pacman -S `pacman -Q | awk '/compiz/ { print $1 }'`<br />
On the subject of '''reinstalling every package''': listing currently installed packages will output everything, including packages that are local and/or might not be available for installation any longer. <br />
<br />
Simply running:<br />
pacman -S `pacman -Qq`<br />
Will output errors because some (or many) of the packages were not found in the repositories. There needs to be a way to list only packages that can be installed from the repositories present in {{Codeline|pacman}}'s database. In order to do so, combining a command to list all packages, and another to hide the list of foreign packages is required.<br />
<br />
This is achieved by using {{Codeline|comm -3}} to show only the packages that are not foreign packages:<br />
pacman -S $(comm -3 <(pacman -Qq) <(pacman -Qqm))<br />
<br />
====Зеркала====<br />
Чтобы воспользоваться всеми преимуществами самых быстрых и актуальных зеркал, смотрите [[Mirrors]].<br />
<br />
====Псевдомимы (aliases) pacman'а====<br />
Смотрите: [[Pacman Tips#Aliases]]<br />
<br />
===Лёгкая установка/обновление из AUR===<br />
<br />
Каждый должен знать, как пользоваться [[AUR]], [[ABS]], и [[makepkg]]<br />
чтобы устанавливать пакеты программного обеспечения. Слежка и обновление за пакетами может стать утомительной, особенно при большом количестве пакетов.<br />
<br />
Для облегчения проведения этих задач есть несколько программ/скриптов.<br />
Смотри: [[AUR Helpers|list of programs that help accessing the AUR]]<br />
<br />
=== Using ABS to Recompile Packages ===<br />
<br />
The Arch Build System is a ports-like system of compile files used to make packages that are already in the repositories. To compile packages with different options see [[ABS]].<br />
<br />
=== Compiling Optimized Packages ===<br />
<br />
When packages are compiled with Arch's package creation tool [[makepkg]], the standard compiler (GCC) has options to be able specify machine type that can improve the load time, performance of a package. Generally any speed improvements are slight, but if you plan to compile a lot of packages you might want to consider setting your machine specifications.<br />
<br />
For optimized the packages built using {{Codeline|makepkg}}, find your processor type in [[CFLAGS]] and edit {{Filename|/etc/makepkg.conf}}. Example:<br />
<br />
# For an Athlon CPU<br />
CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
CXXFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
<br />
==Networking==<br />
<br />
=== Speeding up DNS Queries ===<br />
<br />
Consider using [[Dnsmasq]] to improve load time by caching DNS queries.<br />
<br />
===Отключение IPv6===<br />
Пока ещё IPv6 не получил широкого распространения, может оказаться полезным [[IPv6_-_Disabling_the_Module_(Русский)|отключение модуля IPv6]].</div>Irrlichthttps://wiki.archlinux.org/index.php?title=General_recommendations_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124475General recommendations (Русский)2010-12-08T14:54:42Z<p>Irrlicht: /* Accessing the AUR Seamlessly */</p>
<hr />
<div>[[Category:Русский]]<br />
{{i18n|General Recommendations}}<br />
{{Bad translation}}<br />
<br />
Вот некоторые популярные хитрости и общая информация, которая может пригодиться новичкам в Arch Linux.<br />
<br />
==Загрузка==<br />
===Автоматическое распознавание устройств===<br />
* [[hwdetect]] дает информацию о том, какие модули необходимы для каждого устройства.<br />
# pacman -S hwdetect<br />
* {{Package AUR|lshwd}}является альтернативой.<br />
<br />
===Повышение скорости загрузки Lilo===<br />
Чтобы ускорить процесс загрузки [[lilo]], нужно добавить следующую команду в {{Filename|/etc/lilo.conf}}:<br />
compact<br />
<br />
===Запуск X при загрузке===<br />
Смотрите: [[Запуск_X_при_загрузке|Start X at Boot (Русский)]]<br />
<br />
===Активация Numlock при загрузке===<br />
Смотрите: [[Включение_Numlock_При_Загрузке|Activating Numlock on Bootup (Русский)]]<br />
<br />
===Конец процесса загрузки===<br />
После загрузки сситемы, экран очищается и появляется строка логина в системе, вследствие чего пользователь не может прочитать вывод инициализации или сообщения об ошибках. Это поведение по умолчанию может быть изменено несколькими путями:<br />
<br />
Добавте одну из следующий записей в конец файла {{Filename|/etc/rc.local}}:<br />
* Ждать нажатия клавиши перед очисткой экрана:<br />
read -n1<br />
* Очистка произойдет по прошествии 5-ти секунд или по нажатию клавиши:<br />
read -t5 -n1<br />
Или:<br />
* Удалите первые 3 символа в {{Filename|/etc/issue}}, которые формируют escape-последовательность очистки экрана. Это также предотвратит очистку экрана после выхода из сессии.<br />
* Запустите {{Codeline|dmesg}} из командной строки, чтобы отобразить все сообщение, сгенерированые ядром во время последней загрузки.<br />
* Comment out the agetty instance that runs on <code>vc/1</code> in {{Filename|/etc/inittab}}:<br />
#c1:2345:respawn:/sbin/agetty -8 38400 vc/1 linux<br />
<br />
==Внешний вид==<br />
===Раскрашивание вывода консоли (PS1)===<br />
<br />
Смотрите: [[Color Bash Prompt]]<br />
<br />
===Раскрашивание вывода 'ls'===<br />
Можно улучшить цветной вывод команды {{Codeline|ls}}; например, сломанные (ссылающиеся на несуществующие файлы или каталоги) символьные ссылки будут отображаться красным.<br />
<br />
Файл {{Filename|~/.bashrc}} уже должен содержать такую запись, скопированную из {{Filename|/etc/skel/.bashrc}}:<br />
alias ls='ls --color=auto'<br />
Следующий шаг - добавление следующей строки в {{Filename|~/.bashrc}} и перезаход в учетную запись:<br />
eval `dircolors -b`<br />
{{Note|В последней команде использованы не одиночные, а обратные кавычки}}<br />
<br />
===Раскрашивание вывода 'grep'===<br />
Помимо запросов эстетов, цветной вывод {{Codeline|grep}} весьма полезен для изучения {{Codeline|регекспов}} и общей функциональности {{Codeline|grep}}.<br />
Чтобы включить его, добавьте следующие строки в {{Filename|~/.bashrc}}:<br />
export GREP_COLOR="1;33"<br />
alias grep='grep --color=auto'<br />
Переменная <code>GREP_COLOR</code> определяет цвет, в примере он светло-жёлтый.<br />
<br />
Хотя ман-страница {{Codeline|grep}} сообщает, что переменная <code>GREP_COLOR</code> устарела и вместо неё лучшеиспользовать <code>GREP_COLORS</code>, эта переменная не работает (по крайней мере в grep 2.5.4) так что пока используйте <code>GREP_COLOR</code>.<br />
<br />
===Colorizing and the Emacs Shell===<br />
By default, the [[emacs]] shell will rawly show escape sequences used to print colors. In other words, it will display strange symbols in place of the desired colored output.<br />
<br />
Including the following into {{Filename|~/.emacs}} ammends the problem:<br />
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)<br />
<br />
===Получение раскрашенных Man-страниц===<br />
Смотрите: [[Man Page]]<br />
<br />
===Changing Console Fonts===<br />
Terminus популярен среди пользователей Arch. Устанавливается так:<br />
pacman -S terminus-font<br />
Отредактируйте {{Filename|/etc/rc.conf}}:<br />
CONSOLEFONT="ter-v16b"<br />
Другие шрифты (с отличающимися стилями и размерами) могут быть найдены тут: {{Filename|/usr/share/kbd/consolefonts}}<br />
<br />
Переключайте шрифты налету с {{Codeline|setfont}}:<br />
setfont ter-v16b<br />
Если шрифт в консоли изменился в процессе загрузки и init выводит странные символы, добавьте ''keymap'' ловушку (hook) в {{Codeline|/etc/mkinitcpio.conf}} и пересоздайте ''initramfs'' образ:<br />
mkinitcpio -p kernel26<br />
<br />
Смотрите: [[Mkinitcpio_(Русский)|Mkinitcpio]]<br />
<br />
===Улучшение вида шрифтов для LCD мониторов===<br />
Смотрите: [[Font Configuration#LCD filter patched packages]]<br />
<br />
==Общие улучшения консоли==<br />
<br />
===Включение поиска по истории===<br />
See: [[Bash#History Search|Bash:History Search]]<br />
<br />
===Быстрое Bash дополнение===<br />
С добавлением в {{Filename|~/.bashrc}}:<br />
set show-all-if-ambiguous on<br />
нет необходимости дважды жать ''<Tab>'' чтобы получить список дополнений, теперь он будет появляться после одного нажатия.<br />
<br />
===Расширенное Bash дополнение===<br />
See: [[Bash#Advanced Bash Completion|Bash:Advanced Bash Completion]]<br />
<br />
===Алиасы (псевдонимы) команд для экономии времени===<br />
alias ll="ls -lh"<br />
alias la="ls -a"<br />
alias exit="clear; exit"<br />
alias x="startx"<br />
Персональные алиасы предпочтительно добавлять в {{Filename|~/.bashrc}}, алиасы уровня системы (которые применяются ко всем пользователям) находятся в {{Filename|/etc/bash.bashrc}}.<br />
<br />
===Полезные команды и программы===<br />
<br />
* '''grep''' - Ищет файл(ы) по шаблону.<br />
<br />
grep -i syslog /etc/*<br />
<br />
: Эта команда найдет все файлы в {{Filename|/etc}}, в которых встречается слово "''syslog''". Опция {{Codeline|-i}} позволяет искать регистронезависимые совпадения.<br />
<br />
* '''pkill''' и '''killall''' - Убивает процесс по имени.<br />
<br />
killall kdm<br />
<br />
: Убьет все потоки процесса {{Codeline|kdm}}.<br />
<br />
* '''pidof''' - Находит PID процесса по имени.<br />
<br />
pidof init<br />
<br />
: Выведет PID процесса init.<br />
<br />
* '''ps''' - Показывает состояние запущенных процессов.<br />
<br />
ps aux<br />
<br />
: Покажет все активные процессы.<br />
<br />
* '''locate''' - Быстро определяет местонахождение файлов на жестком диске.<br />
<br />
locate egrep<br />
<br />
: Найдет файлы и директории, в именах которых содержится ''egrep'' (перед использованием необходимо обновить базу (индексировать) путем выполнения {{Codeline|updatedb}}).<br />
<br />
===Извлечение сжатых файлов===<br />
<br />
Для {{Codeline|tar}} архивов используется комманда {{Codeline|tar}}, по умолчанию распаковывающая файл в соответствии с его расширением:<br />
<br />
tar xvf file.''расширение''<br />
<br />
В следующих примерах явно указываются типы архивов:<br />
<br />
file.tar : tar xvf file.tar<br />
file.tgz : tar xvzf file.tgz<br />
file.tar.gz : tar xvzf file.tar.gz<br />
file.tar.bz : bzip -cd file.bz | tar xvf -<br />
file.tar.bz2 : tar xvjf file.tar.bz2 <b>OR</b> bzip2 -cd file.bz2 | tar xvf -<br />
file.tar.xz : tar xvJf file.tar.xz <b>OR</b> xz -cd file.xz | tar xvf -<br />
file.zip : unzip file.zip<br />
file.rar : unrar x file.rar<br />
<br />
Некоторые из этих конструкций обеспечивают совместимость со старыми версиями, но они до сих пор бывают полезными при выполнении спецефических операций. Более подробную информацию ищите в руководстве(''man tar'') в секции ''Compatibility''.<br />
<br />
Чтобы не вводить каждый раз вручную комманды для распаковки архивов можно использовать приведенную ниже функцию. Добавьте следующий код в {{Filename|~/.bashrc}} и используйте {{Filename|extract <file_name>}}:<br />
<br />
<pre><br />
extract () {<br />
if [ -f $1 ] ; then<br />
case $1 in<br />
*.tar.bz2) tar xvjf $1 ;;<br />
*.tar.gz) tar xvzf $1 ;;<br />
*.tar.xz) tar xvJf $1 ;;<br />
*.bz2) bunzip2 $1 ;;<br />
*.rar) unrar x $1 ;;<br />
*.gz) gunzip $1 ;;<br />
*.tar) tar xvf $1 ;;<br />
*.tbz2) tar xvjf $1 ;;<br />
*.tgz) tar xvzf $1 ;;<br />
*.zip) unzip $1 ;;<br />
*.Z) uncompress $1 ;;<br />
*.7z) 7z x $1 ;;<br />
*.xz) unxz $1 ;;<br />
*.exe) cabextract $1 ;;<br />
*) echo "\`$1': неизвестный метод сжатия файла" ;;<br />
esac<br />
else<br />
echo "\`$1' нет такого файла"<br />
fi<br />
}<br />
</pre><br />
Функция сама выберет необходимую программу и аргументы для распаковки конкретного архива.<br />
{{Note|Для нормальной работы функции убедитесь, что все используемые ею программы присутствуют в вашей системе}}<br />
<br />
===Использование 'less' Для Просмотра Сжатых Файлов===<br />
Юзеры, часто пользующиеся командной строкой, возможно захотят установить [http://www-zeuthen.desy.de/~friebel/unix/lesspipe.html lesspipe]:<br />
# pacman -S lesspipe<br />
Это позволяет использовать {{Codeline|less}} для просмотра архивов:<br />
less compressed_file.tar.gz<br />
Результат будет примерно таков:<br />
==> use tar_file:contained_file to view a file in the archive<br />
-rw------- username/group 695 2008-01-04 19:24 compressed_file/content1<br />
-rw------- username/group 43 2007-11-07 11:17 compressed_file/content2<br />
compressed_file.tar.gz (END)<br />
Это также даёт воззможность использовать {{Codeline|less}} для просмотра других типов файлов; как альтернативу для команд, ассоциированых с определённым типом файла (например просмотр html или pdf с помощью html2txt или pdftotext).<br />
<br />
После установки {{Codeline|lesspipe}} следует перелогиниться или запустить {{Filename|/etc/profilde.d/lesspipe.sh}}<br />
<br />
===Включение поддержки мыши в консоли (gpm)===<br />
Установка {{Codeline|gpm}} предоставляет поддержку мыши в консоли:<br />
# pacman -S gpm<br />
Чтобы запустить его:<br />
# /etc/rc.d/gpm start<br />
Если мышь не работает должным образом, отредактируйте {{Filename|/etc/conf.d/gpm}}:<br />
* Для PS/2 мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/psaux -t ps2"<br />
* Для USB мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t imps2"<br />
* Для устройств IBM Trackpoint, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t ps2"<br />
Когда подходящая конфигурация найдена, добавьте {{Codeline|gpm}} в <code>DAEMONS</code> массив файла {{Filename|/etc/rc.conf}}, чтобы демон {{Codeline|gpm}} запускался при загрузке. Пример:<br />
DAEMONS=(syslog-ng '''gpm''' network netfs crond)<br />
<br />
==Локальная доставка почты==<br />
<br />
===Postfix===<br />
<br />
Настройка postfix для работы в режиме локальной доставки почты производится по следующей инструкции:[[Local Mail Delivery with Postfix]]. Смотри так-же, [[SSMTP]] и [[MSMTP]].<br />
<br />
==Управление пакетами и компиляция==<br />
===Pacman===<br />
Здесь преведены различные способы взаимодействия стандртного набора функций pacman'а с элементарным синтаксисом bash, что позооляет более удобно управлять пакетами.<br />
* Установка нескольких пакетов, имеющий в названии общую часть, например пакеты <code>kdemod</code>:<br />
pacman -S kdemod-{applets,theme,tools}<br />
* Вы можете использовать более сложную структуру, необходимую вам:<br />
pacman -S kdemod-{ui-{kde,kdemod},kdeartwork}<br />
* Pacman имеет параметр {{Codeline|-q}}, который запретит вывод версий пакетов. Это позволяет переустановить все пакеты, содержащие в названии, к примеру, "compiz":<br />
pacman -S `pacman -Qq | grep compiz`<br />
* Тот же результат может быть достигнут без использования параметра {{Codeline|-q}} с использованием {{Codeline|awk}}:<br />
pacman -S `pacman -Q | awk '/compiz/ { print $1 }'`<br />
On the subject of '''reinstalling every package''': listing currently installed packages will output everything, including packages that are local and/or might not be available for installation any longer. <br />
<br />
Simply running:<br />
pacman -S `pacman -Qq`<br />
Will output errors because some (or many) of the packages were not found in the repositories. There needs to be a way to list only packages that can be installed from the repositories present in {{Codeline|pacman}}'s database. In order to do so, combining a command to list all packages, and another to hide the list of foreign packages is required.<br />
<br />
This is achieved by using {{Codeline|comm -3}} to show only the packages that are not foreign packages:<br />
pacman -S $(comm -3 <(pacman -Qq) <(pacman -Qqm))<br />
<br />
====Зеркала====<br />
Чтобы воспользоваться всеми преимуществами самых быстрых и актуальных зеркал, смотрите [[Mirrors]].<br />
<br />
====Псевдомимы (aliases) pacman'а====<br />
Смотрите: [[Pacman Tips#Aliases]]<br />
<br />
===Accessing the AUR Seamlessly===<br />
Everyone should know how to use the [[AUR]], [[ABS]], and [[makepkg]] if they want to build packages. Tracking and updating custom built packages can become tedious, especially if they are numerous in quantity.<br />
<br />
There are some programs and scripts that help building packages more convenient. See: a [[AUR Helpers|list of programs that help accessing the AUR]]<br />
<br />
<br />
===Лёгкая установка/обновление из AUR===<br />
<br />
Каждый должен знать, как пользоваться [[AUR]], [[ABS]], и [[makepkg]]<br />
чтобы устанавливать пакеты программного обеспечения. Слежка и обновление за пакетами может стать утомительной, особенно при большом количестве пакетов.<br />
<br />
Для облегчения проведения этих задач есть несколько программ/скриптов.<br />
Смотри: [[AUR Helpers|list of programs that help accessing the AUR]]<br />
<br />
=== Using ABS to Recompile Packages ===<br />
<br />
The Arch Build System is a ports-like system of compile files used to make packages that are already in the repositories. To compile packages with different options see [[ABS]].<br />
<br />
=== Compiling Optimized Packages ===<br />
<br />
When packages are compiled with Arch's package creation tool [[makepkg]], the standard compiler (GCC) has options to be able specify machine type that can improve the load time, performance of a package. Generally any speed improvements are slight, but if you plan to compile a lot of packages you might want to consider setting your machine specifications.<br />
<br />
For optimized the packages built using {{Codeline|makepkg}}, find your processor type in [[CFLAGS]] and edit {{Filename|/etc/makepkg.conf}}. Example:<br />
<br />
# For an Athlon CPU<br />
CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
CXXFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
<br />
==Networking==<br />
<br />
=== Speeding up DNS Queries ===<br />
<br />
Consider using [[Dnsmasq]] to improve load time by caching DNS queries.<br />
<br />
===Отключение IPv6===<br />
Пока ещё IPv6 не получил широкого распространения, может оказаться полезным [[IPv6_-_Disabling_the_Module_(Русский)|отключение модуля IPv6]].</div>Irrlichthttps://wiki.archlinux.org/index.php?title=General_recommendations_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124473General recommendations (Русский)2010-12-08T14:44:43Z<p>Irrlicht: /* Postfix */</p>
<hr />
<div>[[Category:Русский]]<br />
{{i18n|General Recommendations}}<br />
{{Bad translation}}<br />
<br />
Вот некоторые популярные хитрости и общая информация, которая может пригодиться новичкам в Arch Linux.<br />
<br />
==Загрузка==<br />
===Автоматическое распознавание устройств===<br />
* [[hwdetect]] дает информацию о том, какие модули необходимы для каждого устройства.<br />
# pacman -S hwdetect<br />
* {{Package AUR|lshwd}}является альтернативой.<br />
<br />
===Повышение скорости загрузки Lilo===<br />
Чтобы ускорить процесс загрузки [[lilo]], нужно добавить следующую команду в {{Filename|/etc/lilo.conf}}:<br />
compact<br />
<br />
===Запуск X при загрузке===<br />
Смотрите: [[Запуск_X_при_загрузке|Start X at Boot (Русский)]]<br />
<br />
===Активация Numlock при загрузке===<br />
Смотрите: [[Включение_Numlock_При_Загрузке|Activating Numlock on Bootup (Русский)]]<br />
<br />
===Конец процесса загрузки===<br />
После загрузки сситемы, экран очищается и появляется строка логина в системе, вследствие чего пользователь не может прочитать вывод инициализации или сообщения об ошибках. Это поведение по умолчанию может быть изменено несколькими путями:<br />
<br />
Добавте одну из следующий записей в конец файла {{Filename|/etc/rc.local}}:<br />
* Ждать нажатия клавиши перед очисткой экрана:<br />
read -n1<br />
* Очистка произойдет по прошествии 5-ти секунд или по нажатию клавиши:<br />
read -t5 -n1<br />
Или:<br />
* Удалите первые 3 символа в {{Filename|/etc/issue}}, которые формируют escape-последовательность очистки экрана. Это также предотвратит очистку экрана после выхода из сессии.<br />
* Запустите {{Codeline|dmesg}} из командной строки, чтобы отобразить все сообщение, сгенерированые ядром во время последней загрузки.<br />
* Comment out the agetty instance that runs on <code>vc/1</code> in {{Filename|/etc/inittab}}:<br />
#c1:2345:respawn:/sbin/agetty -8 38400 vc/1 linux<br />
<br />
==Внешний вид==<br />
===Раскрашивание вывода консоли (PS1)===<br />
<br />
Смотрите: [[Color Bash Prompt]]<br />
<br />
===Раскрашивание вывода 'ls'===<br />
Можно улучшить цветной вывод команды {{Codeline|ls}}; например, сломанные (ссылающиеся на несуществующие файлы или каталоги) символьные ссылки будут отображаться красным.<br />
<br />
Файл {{Filename|~/.bashrc}} уже должен содержать такую запись, скопированную из {{Filename|/etc/skel/.bashrc}}:<br />
alias ls='ls --color=auto'<br />
Следующий шаг - добавление следующей строки в {{Filename|~/.bashrc}} и перезаход в учетную запись:<br />
eval `dircolors -b`<br />
{{Note|В последней команде использованы не одиночные, а обратные кавычки}}<br />
<br />
===Раскрашивание вывода 'grep'===<br />
Помимо запросов эстетов, цветной вывод {{Codeline|grep}} весьма полезен для изучения {{Codeline|регекспов}} и общей функциональности {{Codeline|grep}}.<br />
Чтобы включить его, добавьте следующие строки в {{Filename|~/.bashrc}}:<br />
export GREP_COLOR="1;33"<br />
alias grep='grep --color=auto'<br />
Переменная <code>GREP_COLOR</code> определяет цвет, в примере он светло-жёлтый.<br />
<br />
Хотя ман-страница {{Codeline|grep}} сообщает, что переменная <code>GREP_COLOR</code> устарела и вместо неё лучшеиспользовать <code>GREP_COLORS</code>, эта переменная не работает (по крайней мере в grep 2.5.4) так что пока используйте <code>GREP_COLOR</code>.<br />
<br />
===Colorizing and the Emacs Shell===<br />
By default, the [[emacs]] shell will rawly show escape sequences used to print colors. In other words, it will display strange symbols in place of the desired colored output.<br />
<br />
Including the following into {{Filename|~/.emacs}} ammends the problem:<br />
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)<br />
<br />
===Получение раскрашенных Man-страниц===<br />
Смотрите: [[Man Page]]<br />
<br />
===Changing Console Fonts===<br />
Terminus популярен среди пользователей Arch. Устанавливается так:<br />
pacman -S terminus-font<br />
Отредактируйте {{Filename|/etc/rc.conf}}:<br />
CONSOLEFONT="ter-v16b"<br />
Другие шрифты (с отличающимися стилями и размерами) могут быть найдены тут: {{Filename|/usr/share/kbd/consolefonts}}<br />
<br />
Переключайте шрифты налету с {{Codeline|setfont}}:<br />
setfont ter-v16b<br />
Если шрифт в консоли изменился в процессе загрузки и init выводит странные символы, добавьте ''keymap'' ловушку (hook) в {{Codeline|/etc/mkinitcpio.conf}} и пересоздайте ''initramfs'' образ:<br />
mkinitcpio -p kernel26<br />
<br />
Смотрите: [[Mkinitcpio_(Русский)|Mkinitcpio]]<br />
<br />
===Улучшение вида шрифтов для LCD мониторов===<br />
Смотрите: [[Font Configuration#LCD filter patched packages]]<br />
<br />
==Общие улучшения консоли==<br />
<br />
===Включение поиска по истории===<br />
See: [[Bash#History Search|Bash:History Search]]<br />
<br />
===Быстрое Bash дополнение===<br />
С добавлением в {{Filename|~/.bashrc}}:<br />
set show-all-if-ambiguous on<br />
нет необходимости дважды жать ''<Tab>'' чтобы получить список дополнений, теперь он будет появляться после одного нажатия.<br />
<br />
===Расширенное Bash дополнение===<br />
See: [[Bash#Advanced Bash Completion|Bash:Advanced Bash Completion]]<br />
<br />
===Алиасы (псевдонимы) команд для экономии времени===<br />
alias ll="ls -lh"<br />
alias la="ls -a"<br />
alias exit="clear; exit"<br />
alias x="startx"<br />
Персональные алиасы предпочтительно добавлять в {{Filename|~/.bashrc}}, алиасы уровня системы (которые применяются ко всем пользователям) находятся в {{Filename|/etc/bash.bashrc}}.<br />
<br />
===Полезные команды и программы===<br />
<br />
* '''grep''' - Ищет файл(ы) по шаблону.<br />
<br />
grep -i syslog /etc/*<br />
<br />
: Эта команда найдет все файлы в {{Filename|/etc}}, в которых встречается слово "''syslog''". Опция {{Codeline|-i}} позволяет искать регистронезависимые совпадения.<br />
<br />
* '''pkill''' и '''killall''' - Убивает процесс по имени.<br />
<br />
killall kdm<br />
<br />
: Убьет все потоки процесса {{Codeline|kdm}}.<br />
<br />
* '''pidof''' - Находит PID процесса по имени.<br />
<br />
pidof init<br />
<br />
: Выведет PID процесса init.<br />
<br />
* '''ps''' - Показывает состояние запущенных процессов.<br />
<br />
ps aux<br />
<br />
: Покажет все активные процессы.<br />
<br />
* '''locate''' - Быстро определяет местонахождение файлов на жестком диске.<br />
<br />
locate egrep<br />
<br />
: Найдет файлы и директории, в именах которых содержится ''egrep'' (перед использованием необходимо обновить базу (индексировать) путем выполнения {{Codeline|updatedb}}).<br />
<br />
===Извлечение сжатых файлов===<br />
<br />
Для {{Codeline|tar}} архивов используется комманда {{Codeline|tar}}, по умолчанию распаковывающая файл в соответствии с его расширением:<br />
<br />
tar xvf file.''расширение''<br />
<br />
В следующих примерах явно указываются типы архивов:<br />
<br />
file.tar : tar xvf file.tar<br />
file.tgz : tar xvzf file.tgz<br />
file.tar.gz : tar xvzf file.tar.gz<br />
file.tar.bz : bzip -cd file.bz | tar xvf -<br />
file.tar.bz2 : tar xvjf file.tar.bz2 <b>OR</b> bzip2 -cd file.bz2 | tar xvf -<br />
file.tar.xz : tar xvJf file.tar.xz <b>OR</b> xz -cd file.xz | tar xvf -<br />
file.zip : unzip file.zip<br />
file.rar : unrar x file.rar<br />
<br />
Некоторые из этих конструкций обеспечивают совместимость со старыми версиями, но они до сих пор бывают полезными при выполнении спецефических операций. Более подробную информацию ищите в руководстве(''man tar'') в секции ''Compatibility''.<br />
<br />
Чтобы не вводить каждый раз вручную комманды для распаковки архивов можно использовать приведенную ниже функцию. Добавьте следующий код в {{Filename|~/.bashrc}} и используйте {{Filename|extract <file_name>}}:<br />
<br />
<pre><br />
extract () {<br />
if [ -f $1 ] ; then<br />
case $1 in<br />
*.tar.bz2) tar xvjf $1 ;;<br />
*.tar.gz) tar xvzf $1 ;;<br />
*.tar.xz) tar xvJf $1 ;;<br />
*.bz2) bunzip2 $1 ;;<br />
*.rar) unrar x $1 ;;<br />
*.gz) gunzip $1 ;;<br />
*.tar) tar xvf $1 ;;<br />
*.tbz2) tar xvjf $1 ;;<br />
*.tgz) tar xvzf $1 ;;<br />
*.zip) unzip $1 ;;<br />
*.Z) uncompress $1 ;;<br />
*.7z) 7z x $1 ;;<br />
*.xz) unxz $1 ;;<br />
*.exe) cabextract $1 ;;<br />
*) echo "\`$1': неизвестный метод сжатия файла" ;;<br />
esac<br />
else<br />
echo "\`$1' нет такого файла"<br />
fi<br />
}<br />
</pre><br />
Функция сама выберет необходимую программу и аргументы для распаковки конкретного архива.<br />
{{Note|Для нормальной работы функции убедитесь, что все используемые ею программы присутствуют в вашей системе}}<br />
<br />
===Использование 'less' Для Просмотра Сжатых Файлов===<br />
Юзеры, часто пользующиеся командной строкой, возможно захотят установить [http://www-zeuthen.desy.de/~friebel/unix/lesspipe.html lesspipe]:<br />
# pacman -S lesspipe<br />
Это позволяет использовать {{Codeline|less}} для просмотра архивов:<br />
less compressed_file.tar.gz<br />
Результат будет примерно таков:<br />
==> use tar_file:contained_file to view a file in the archive<br />
-rw------- username/group 695 2008-01-04 19:24 compressed_file/content1<br />
-rw------- username/group 43 2007-11-07 11:17 compressed_file/content2<br />
compressed_file.tar.gz (END)<br />
Это также даёт воззможность использовать {{Codeline|less}} для просмотра других типов файлов; как альтернативу для команд, ассоциированых с определённым типом файла (например просмотр html или pdf с помощью html2txt или pdftotext).<br />
<br />
После установки {{Codeline|lesspipe}} следует перелогиниться или запустить {{Filename|/etc/profilde.d/lesspipe.sh}}<br />
<br />
===Включение поддержки мыши в консоли (gpm)===<br />
Установка {{Codeline|gpm}} предоставляет поддержку мыши в консоли:<br />
# pacman -S gpm<br />
Чтобы запустить его:<br />
# /etc/rc.d/gpm start<br />
Если мышь не работает должным образом, отредактируйте {{Filename|/etc/conf.d/gpm}}:<br />
* Для PS/2 мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/psaux -t ps2"<br />
* Для USB мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t imps2"<br />
* Для устройств IBM Trackpoint, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t ps2"<br />
Когда подходящая конфигурация найдена, добавьте {{Codeline|gpm}} в <code>DAEMONS</code> массив файла {{Filename|/etc/rc.conf}}, чтобы демон {{Codeline|gpm}} запускался при загрузке. Пример:<br />
DAEMONS=(syslog-ng '''gpm''' network netfs crond)<br />
<br />
==Локальная доставка почты==<br />
<br />
===Postfix===<br />
<br />
Настройка postfix для работы в режиме локальной доставки почты производится по следующей инструкции:[[Local Mail Delivery with Postfix]]. Смотри так-же, [[SSMTP]] и [[MSMTP]].<br />
<br />
==Управление пакетами и компиляция==<br />
===Pacman===<br />
Здесь преведены различные способы взаимодействия стандртного набора функций pacman'а с элементарным синтаксисом bash, что позооляет более удобно управлять пакетами.<br />
* Установка нескольких пакетов, имеющий в названии общую часть, например пакеты <code>kdemod</code>:<br />
pacman -S kdemod-{applets,theme,tools}<br />
* Вы можете использовать более сложную структуру, необходимую вам:<br />
pacman -S kdemod-{ui-{kde,kdemod},kdeartwork}<br />
* Pacman имеет параметр {{Codeline|-q}}, который запретит вывод версий пакетов. Это позволяет переустановить все пакеты, содержащие в названии, к примеру, "compiz":<br />
pacman -S `pacman -Qq | grep compiz`<br />
* Тот же результат может быть достигнут без использования параметра {{Codeline|-q}} с использованием {{Codeline|awk}}:<br />
pacman -S `pacman -Q | awk '/compiz/ { print $1 }'`<br />
On the subject of '''reinstalling every package''': listing currently installed packages will output everything, including packages that are local and/or might not be available for installation any longer. <br />
<br />
Simply running:<br />
pacman -S `pacman -Qq`<br />
Will output errors because some (or many) of the packages were not found in the repositories. There needs to be a way to list only packages that can be installed from the repositories present in {{Codeline|pacman}}'s database. In order to do so, combining a command to list all packages, and another to hide the list of foreign packages is required.<br />
<br />
This is achieved by using {{Codeline|comm -3}} to show only the packages that are not foreign packages:<br />
pacman -S $(comm -3 <(pacman -Qq) <(pacman -Qqm))<br />
<br />
====Зеркала====<br />
Чтобы воспользоваться всеми преимуществами самых быстрых и актуальных зеркал, смотрите [[Mirrors]].<br />
<br />
====Псевдомимы (aliases) pacman'а====<br />
Смотрите: [[Pacman Tips#Aliases]]<br />
<br />
===Accessing the AUR Seamlessly===<br />
Everyone should know how to use the [[AUR]], [[ABS]], and [[makepkg]] if they want to build packages. Tracking and updating custom built packages can become tedious, especially if they are numerous in quantity.<br />
<br />
There are some programs and scripts that help building packages more convenient. See: a [[AUR Helpers|list of programs that help accessing the AUR]]<br />
<br />
=== Using ABS to Recompile Packages ===<br />
<br />
The Arch Build System is a ports-like system of compile files used to make packages that are already in the repositories. To compile packages with different options see [[ABS]].<br />
<br />
=== Compiling Optimized Packages ===<br />
<br />
When packages are compiled with Arch's package creation tool [[makepkg]], the standard compiler (GCC) has options to be able specify machine type that can improve the load time, performance of a package. Generally any speed improvements are slight, but if you plan to compile a lot of packages you might want to consider setting your machine specifications.<br />
<br />
For optimized the packages built using {{Codeline|makepkg}}, find your processor type in [[CFLAGS]] and edit {{Filename|/etc/makepkg.conf}}. Example:<br />
<br />
# For an Athlon CPU<br />
CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
CXXFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
<br />
==Networking==<br />
<br />
=== Speeding up DNS Queries ===<br />
<br />
Consider using [[Dnsmasq]] to improve load time by caching DNS queries.<br />
<br />
===Отключение IPv6===<br />
Пока ещё IPv6 не получил широкого распространения, может оказаться полезным [[IPv6_-_Disabling_the_Module_(Русский)|отключение модуля IPv6]].</div>Irrlichthttps://wiki.archlinux.org/index.php?title=General_recommendations_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124472General recommendations (Русский)2010-12-08T14:39:51Z<p>Irrlicht: /* Local mail delivery */</p>
<hr />
<div>[[Category:Русский]]<br />
{{i18n|General Recommendations}}<br />
{{Bad translation}}<br />
<br />
Вот некоторые популярные хитрости и общая информация, которая может пригодиться новичкам в Arch Linux.<br />
<br />
==Загрузка==<br />
===Автоматическое распознавание устройств===<br />
* [[hwdetect]] дает информацию о том, какие модули необходимы для каждого устройства.<br />
# pacman -S hwdetect<br />
* {{Package AUR|lshwd}}является альтернативой.<br />
<br />
===Повышение скорости загрузки Lilo===<br />
Чтобы ускорить процесс загрузки [[lilo]], нужно добавить следующую команду в {{Filename|/etc/lilo.conf}}:<br />
compact<br />
<br />
===Запуск X при загрузке===<br />
Смотрите: [[Запуск_X_при_загрузке|Start X at Boot (Русский)]]<br />
<br />
===Активация Numlock при загрузке===<br />
Смотрите: [[Включение_Numlock_При_Загрузке|Activating Numlock on Bootup (Русский)]]<br />
<br />
===Конец процесса загрузки===<br />
После загрузки сситемы, экран очищается и появляется строка логина в системе, вследствие чего пользователь не может прочитать вывод инициализации или сообщения об ошибках. Это поведение по умолчанию может быть изменено несколькими путями:<br />
<br />
Добавте одну из следующий записей в конец файла {{Filename|/etc/rc.local}}:<br />
* Ждать нажатия клавиши перед очисткой экрана:<br />
read -n1<br />
* Очистка произойдет по прошествии 5-ти секунд или по нажатию клавиши:<br />
read -t5 -n1<br />
Или:<br />
* Удалите первые 3 символа в {{Filename|/etc/issue}}, которые формируют escape-последовательность очистки экрана. Это также предотвратит очистку экрана после выхода из сессии.<br />
* Запустите {{Codeline|dmesg}} из командной строки, чтобы отобразить все сообщение, сгенерированые ядром во время последней загрузки.<br />
* Comment out the agetty instance that runs on <code>vc/1</code> in {{Filename|/etc/inittab}}:<br />
#c1:2345:respawn:/sbin/agetty -8 38400 vc/1 linux<br />
<br />
==Внешний вид==<br />
===Раскрашивание вывода консоли (PS1)===<br />
<br />
Смотрите: [[Color Bash Prompt]]<br />
<br />
===Раскрашивание вывода 'ls'===<br />
Можно улучшить цветной вывод команды {{Codeline|ls}}; например, сломанные (ссылающиеся на несуществующие файлы или каталоги) символьные ссылки будут отображаться красным.<br />
<br />
Файл {{Filename|~/.bashrc}} уже должен содержать такую запись, скопированную из {{Filename|/etc/skel/.bashrc}}:<br />
alias ls='ls --color=auto'<br />
Следующий шаг - добавление следующей строки в {{Filename|~/.bashrc}} и перезаход в учетную запись:<br />
eval `dircolors -b`<br />
{{Note|В последней команде использованы не одиночные, а обратные кавычки}}<br />
<br />
===Раскрашивание вывода 'grep'===<br />
Помимо запросов эстетов, цветной вывод {{Codeline|grep}} весьма полезен для изучения {{Codeline|регекспов}} и общей функциональности {{Codeline|grep}}.<br />
Чтобы включить его, добавьте следующие строки в {{Filename|~/.bashrc}}:<br />
export GREP_COLOR="1;33"<br />
alias grep='grep --color=auto'<br />
Переменная <code>GREP_COLOR</code> определяет цвет, в примере он светло-жёлтый.<br />
<br />
Хотя ман-страница {{Codeline|grep}} сообщает, что переменная <code>GREP_COLOR</code> устарела и вместо неё лучшеиспользовать <code>GREP_COLORS</code>, эта переменная не работает (по крайней мере в grep 2.5.4) так что пока используйте <code>GREP_COLOR</code>.<br />
<br />
===Colorizing and the Emacs Shell===<br />
By default, the [[emacs]] shell will rawly show escape sequences used to print colors. In other words, it will display strange symbols in place of the desired colored output.<br />
<br />
Including the following into {{Filename|~/.emacs}} ammends the problem:<br />
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)<br />
<br />
===Получение раскрашенных Man-страниц===<br />
Смотрите: [[Man Page]]<br />
<br />
===Changing Console Fonts===<br />
Terminus популярен среди пользователей Arch. Устанавливается так:<br />
pacman -S terminus-font<br />
Отредактируйте {{Filename|/etc/rc.conf}}:<br />
CONSOLEFONT="ter-v16b"<br />
Другие шрифты (с отличающимися стилями и размерами) могут быть найдены тут: {{Filename|/usr/share/kbd/consolefonts}}<br />
<br />
Переключайте шрифты налету с {{Codeline|setfont}}:<br />
setfont ter-v16b<br />
Если шрифт в консоли изменился в процессе загрузки и init выводит странные символы, добавьте ''keymap'' ловушку (hook) в {{Codeline|/etc/mkinitcpio.conf}} и пересоздайте ''initramfs'' образ:<br />
mkinitcpio -p kernel26<br />
<br />
Смотрите: [[Mkinitcpio_(Русский)|Mkinitcpio]]<br />
<br />
===Улучшение вида шрифтов для LCD мониторов===<br />
Смотрите: [[Font Configuration#LCD filter patched packages]]<br />
<br />
==Общие улучшения консоли==<br />
<br />
===Включение поиска по истории===<br />
See: [[Bash#History Search|Bash:History Search]]<br />
<br />
===Быстрое Bash дополнение===<br />
С добавлением в {{Filename|~/.bashrc}}:<br />
set show-all-if-ambiguous on<br />
нет необходимости дважды жать ''<Tab>'' чтобы получить список дополнений, теперь он будет появляться после одного нажатия.<br />
<br />
===Расширенное Bash дополнение===<br />
See: [[Bash#Advanced Bash Completion|Bash:Advanced Bash Completion]]<br />
<br />
===Алиасы (псевдонимы) команд для экономии времени===<br />
alias ll="ls -lh"<br />
alias la="ls -a"<br />
alias exit="clear; exit"<br />
alias x="startx"<br />
Персональные алиасы предпочтительно добавлять в {{Filename|~/.bashrc}}, алиасы уровня системы (которые применяются ко всем пользователям) находятся в {{Filename|/etc/bash.bashrc}}.<br />
<br />
===Полезные команды и программы===<br />
<br />
* '''grep''' - Ищет файл(ы) по шаблону.<br />
<br />
grep -i syslog /etc/*<br />
<br />
: Эта команда найдет все файлы в {{Filename|/etc}}, в которых встречается слово "''syslog''". Опция {{Codeline|-i}} позволяет искать регистронезависимые совпадения.<br />
<br />
* '''pkill''' и '''killall''' - Убивает процесс по имени.<br />
<br />
killall kdm<br />
<br />
: Убьет все потоки процесса {{Codeline|kdm}}.<br />
<br />
* '''pidof''' - Находит PID процесса по имени.<br />
<br />
pidof init<br />
<br />
: Выведет PID процесса init.<br />
<br />
* '''ps''' - Показывает состояние запущенных процессов.<br />
<br />
ps aux<br />
<br />
: Покажет все активные процессы.<br />
<br />
* '''locate''' - Быстро определяет местонахождение файлов на жестком диске.<br />
<br />
locate egrep<br />
<br />
: Найдет файлы и директории, в именах которых содержится ''egrep'' (перед использованием необходимо обновить базу (индексировать) путем выполнения {{Codeline|updatedb}}).<br />
<br />
===Извлечение сжатых файлов===<br />
<br />
Для {{Codeline|tar}} архивов используется комманда {{Codeline|tar}}, по умолчанию распаковывающая файл в соответствии с его расширением:<br />
<br />
tar xvf file.''расширение''<br />
<br />
В следующих примерах явно указываются типы архивов:<br />
<br />
file.tar : tar xvf file.tar<br />
file.tgz : tar xvzf file.tgz<br />
file.tar.gz : tar xvzf file.tar.gz<br />
file.tar.bz : bzip -cd file.bz | tar xvf -<br />
file.tar.bz2 : tar xvjf file.tar.bz2 <b>OR</b> bzip2 -cd file.bz2 | tar xvf -<br />
file.tar.xz : tar xvJf file.tar.xz <b>OR</b> xz -cd file.xz | tar xvf -<br />
file.zip : unzip file.zip<br />
file.rar : unrar x file.rar<br />
<br />
Некоторые из этих конструкций обеспечивают совместимость со старыми версиями, но они до сих пор бывают полезными при выполнении спецефических операций. Более подробную информацию ищите в руководстве(''man tar'') в секции ''Compatibility''.<br />
<br />
Чтобы не вводить каждый раз вручную комманды для распаковки архивов можно использовать приведенную ниже функцию. Добавьте следующий код в {{Filename|~/.bashrc}} и используйте {{Filename|extract <file_name>}}:<br />
<br />
<pre><br />
extract () {<br />
if [ -f $1 ] ; then<br />
case $1 in<br />
*.tar.bz2) tar xvjf $1 ;;<br />
*.tar.gz) tar xvzf $1 ;;<br />
*.tar.xz) tar xvJf $1 ;;<br />
*.bz2) bunzip2 $1 ;;<br />
*.rar) unrar x $1 ;;<br />
*.gz) gunzip $1 ;;<br />
*.tar) tar xvf $1 ;;<br />
*.tbz2) tar xvjf $1 ;;<br />
*.tgz) tar xvzf $1 ;;<br />
*.zip) unzip $1 ;;<br />
*.Z) uncompress $1 ;;<br />
*.7z) 7z x $1 ;;<br />
*.xz) unxz $1 ;;<br />
*.exe) cabextract $1 ;;<br />
*) echo "\`$1': неизвестный метод сжатия файла" ;;<br />
esac<br />
else<br />
echo "\`$1' нет такого файла"<br />
fi<br />
}<br />
</pre><br />
Функция сама выберет необходимую программу и аргументы для распаковки конкретного архива.<br />
{{Note|Для нормальной работы функции убедитесь, что все используемые ею программы присутствуют в вашей системе}}<br />
<br />
===Использование 'less' Для Просмотра Сжатых Файлов===<br />
Юзеры, часто пользующиеся командной строкой, возможно захотят установить [http://www-zeuthen.desy.de/~friebel/unix/lesspipe.html lesspipe]:<br />
# pacman -S lesspipe<br />
Это позволяет использовать {{Codeline|less}} для просмотра архивов:<br />
less compressed_file.tar.gz<br />
Результат будет примерно таков:<br />
==> use tar_file:contained_file to view a file in the archive<br />
-rw------- username/group 695 2008-01-04 19:24 compressed_file/content1<br />
-rw------- username/group 43 2007-11-07 11:17 compressed_file/content2<br />
compressed_file.tar.gz (END)<br />
Это также даёт воззможность использовать {{Codeline|less}} для просмотра других типов файлов; как альтернативу для команд, ассоциированых с определённым типом файла (например просмотр html или pdf с помощью html2txt или pdftotext).<br />
<br />
После установки {{Codeline|lesspipe}} следует перелогиниться или запустить {{Filename|/etc/profilde.d/lesspipe.sh}}<br />
<br />
===Включение поддержки мыши в консоли (gpm)===<br />
Установка {{Codeline|gpm}} предоставляет поддержку мыши в консоли:<br />
# pacman -S gpm<br />
Чтобы запустить его:<br />
# /etc/rc.d/gpm start<br />
Если мышь не работает должным образом, отредактируйте {{Filename|/etc/conf.d/gpm}}:<br />
* Для PS/2 мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/psaux -t ps2"<br />
* Для USB мышей, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t imps2"<br />
* Для устройств IBM Trackpoint, замените существующую строку:<br />
GPM_ARGS="-m /dev/input/mice -t ps2"<br />
Когда подходящая конфигурация найдена, добавьте {{Codeline|gpm}} в <code>DAEMONS</code> массив файла {{Filename|/etc/rc.conf}}, чтобы демон {{Codeline|gpm}} запускался при загрузке. Пример:<br />
DAEMONS=(syslog-ng '''gpm''' network netfs crond)<br />
<br />
==Локальная доставка почты==<br />
<br />
===Postfix===<br />
<br />
To configure postfix for a simple local mailbox delivery configuration, see [[Local Mail Delivery with Postfix]]. See also, [[SSMTP]] and [[MSMTP]].<br />
<br />
==Управление пакетами и компиляция==<br />
===Pacman===<br />
Здесь преведены различные способы взаимодействия стандртного набора функций pacman'а с элементарным синтаксисом bash, что позооляет более удобно управлять пакетами.<br />
* Установка нескольких пакетов, имеющий в названии общую часть, например пакеты <code>kdemod</code>:<br />
pacman -S kdemod-{applets,theme,tools}<br />
* Вы можете использовать более сложную структуру, необходимую вам:<br />
pacman -S kdemod-{ui-{kde,kdemod},kdeartwork}<br />
* Pacman имеет параметр {{Codeline|-q}}, который запретит вывод версий пакетов. Это позволяет переустановить все пакеты, содержащие в названии, к примеру, "compiz":<br />
pacman -S `pacman -Qq | grep compiz`<br />
* Тот же результат может быть достигнут без использования параметра {{Codeline|-q}} с использованием {{Codeline|awk}}:<br />
pacman -S `pacman -Q | awk '/compiz/ { print $1 }'`<br />
On the subject of '''reinstalling every package''': listing currently installed packages will output everything, including packages that are local and/or might not be available for installation any longer. <br />
<br />
Simply running:<br />
pacman -S `pacman -Qq`<br />
Will output errors because some (or many) of the packages were not found in the repositories. There needs to be a way to list only packages that can be installed from the repositories present in {{Codeline|pacman}}'s database. In order to do so, combining a command to list all packages, and another to hide the list of foreign packages is required.<br />
<br />
This is achieved by using {{Codeline|comm -3}} to show only the packages that are not foreign packages:<br />
pacman -S $(comm -3 <(pacman -Qq) <(pacman -Qqm))<br />
<br />
====Зеркала====<br />
Чтобы воспользоваться всеми преимуществами самых быстрых и актуальных зеркал, смотрите [[Mirrors]].<br />
<br />
====Псевдомимы (aliases) pacman'а====<br />
Смотрите: [[Pacman Tips#Aliases]]<br />
<br />
===Accessing the AUR Seamlessly===<br />
Everyone should know how to use the [[AUR]], [[ABS]], and [[makepkg]] if they want to build packages. Tracking and updating custom built packages can become tedious, especially if they are numerous in quantity.<br />
<br />
There are some programs and scripts that help building packages more convenient. See: a [[AUR Helpers|list of programs that help accessing the AUR]]<br />
<br />
=== Using ABS to Recompile Packages ===<br />
<br />
The Arch Build System is a ports-like system of compile files used to make packages that are already in the repositories. To compile packages with different options see [[ABS]].<br />
<br />
=== Compiling Optimized Packages ===<br />
<br />
When packages are compiled with Arch's package creation tool [[makepkg]], the standard compiler (GCC) has options to be able specify machine type that can improve the load time, performance of a package. Generally any speed improvements are slight, but if you plan to compile a lot of packages you might want to consider setting your machine specifications.<br />
<br />
For optimized the packages built using {{Codeline|makepkg}}, find your processor type in [[CFLAGS]] and edit {{Filename|/etc/makepkg.conf}}. Example:<br />
<br />
# For an Athlon CPU<br />
CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
CXXFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"<br />
<br />
==Networking==<br />
<br />
=== Speeding up DNS Queries ===<br />
<br />
Consider using [[Dnsmasq]] to improve load time by caching DNS queries.<br />
<br />
===Отключение IPv6===<br />
Пока ещё IPv6 не получил широкого распространения, может оказаться полезным [[IPv6_-_Disabling_the_Module_(Русский)|отключение модуля IPv6]].</div>Irrlichthttps://wiki.archlinux.org/index.php?title=DVD_Ripping_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=124471DVD Ripping (Русский)2010-12-08T14:37:58Z<p>Irrlicht: /* Dvd2Avi */ Удалил оригинал на английском</p>
<hr />
<div>{{i18n|DVD Ripping}}<br />
{{translateme}}<br />
<br />
'''Риппинг''' (Ripping) -- это процесс извлечения аудио или видео информации на жёсткий диск, обычно из сменных носителей или мультимедиа потоков.<br />
<br />
Как правило, в задаче риппинга DVD выделяют две проблемы:<br />
# Извлечение данных -- копирование аудио и/или видео данных на жёсткий диск<br />
# Перекодирование -- конвертирование извлечённых данных в желаемый формат<br />
<br />
Одни утилиты выполняют обе задачи, другие же решают только одну из проблем.<br />
<br />
== dvdbackup ==<br />
[[dvdbackup]] позволяет извлечь данные с DVD или защищённого DVD (понадобится {{Package Official|libdvdcss}}). dvdbackup может пригодиться для создания точных копий защищённых DVD, или же для подготовки расшифрованных данных для программ, которые не умеют работать с защищёнными дисками.<br />
<br />
== dvd::rip ==<br />
{{Package Official|dvdrip}} -- графическая оболочка для {{Package Official|transcode}}. Вы можете использовать его для извлечения данных и кодирования "на лету".<br />
<br />
Вам понадобятся следующие пакеты:<br />
* {{Package Official|dvdrip}}: графическая оболочка (GTK) для {{Package Official|transcode}}, которая выполняет извлечение и кодирование данных<br />
* {{Package Official|libdv}}: программный кодек для DV video<br />
* {{Package Official|xvidcore}}: если вы планируете кодировать видео в XviD, открытый кодек MPEG-4 (свободная альтернатива DivX)<br />
* {{Package AUR|divx4linux}}: если вы планируете кодировать видео в DivX (доступно в AUR)<br />
<br />
Например, для установки вы можете набрать:<br />
pacman -S dvdrip libdv xvidcore<br />
<br />
Настройки dvd::rip, в большинстве своём, хорошо документированны или же очевидны. Но если вам всё-таки понадобится помощь, загляните на [[http://www.exit1.org/dvdrip/doc/gui-gui_pref.cipp]].<br />
<br />
Чаще всего весь риппинг DVD сводится к выбору желаемого кодека (или кодеков), заголовков и щелчку на кнопке "Rip".<br />
<br />
== HandBrake ==<br />
HandBrake -- многопоточный кодировщик видео, который поставляется как в консольном, так и в графическом варианте, вместе с большим количеством предустановленных настроик. Этот пакет доступен в репозитории extra: {{Package Official|handbrake}}.<br />
<br />
pacman -S handbrake<br />
<br />
== MEncoder ==<br />
MEncoder -- это свободная (GPL) утилита командной строки для декодирования, кодирования и фильтрации видео. Она тесно связана с MPlayer и может конвертировать все форматы, поддерживаемые MPlayer, во множество сжатых и несжатых форматов с использованием различных кодеков.<br />
<br />
MEncoder включёт в пакет {{Package Official|mplayer}}. Подробности можно узнать в [http://gentoo-wiki.com/HOWTO_Rip_DVD_mencoder Вики Gentoo].<br />
<br />
=== Dvd2Avi ===<br />
Простой скрипт Bash, использующий MEncoder, можно взять [http://wiki.archlinux.org/index.php/Dvd2Avi здесь].<br />
<br />
=== Графические оболочки MEncoder ===<br />
Если вам не нравится командная строка, вы можете выбрать для себя одну из нескольких графических оболочек для MEncoder.<br />
<br />
На официальной странице MPlayer есть список доступных графических оболочек, [http://www.mplayerhq.hu/design7/projects.html#mencoder_frontends перейти].</div>Irrlicht