https://wiki.archlinux.org/api.php?action=feedcontributions&user=Vadik&feedformat=atom
ArchWiki - User contributions [en]
2024-03-29T12:46:42Z
User contributions
MediaWiki 1.41.0
https://wiki.archlinux.org/index.php?title=Code_of_conduct_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=419959
Code of conduct (Русский)
2016-02-10T18:03:57Z
<p>Vadik: /* Создание тем/ответы на них */</p>
<hr />
<div>[[Category:About Arch (Русский)]]<br />
[[Category:Русский]]<br />
[[en:Forum etiquette]]<br />
[[es:Forum etiquette]]<br />
[[ja:フォーラムエチケット]]<br />
[[pt:Forum etiquette]]<br />
[[ro:Conduita pe forum]]<br />
[[zh-cn:Forum etiquette]]<br />
{{Unmaintained (Русский)}}<br />
<br />
Эти правила были выработаны модераторами форумов Arch Linux при помощи обширного опыта и элементарного здравого смысла.<br />
<br />
== Вводный курс в Здравый Смысл ==<br />
* Если вы выбрали Arch Linux — придерживайтесь [[The Arch Way (Русский)|общего для всех пути]]. <br />
* Arch разрабатывается сообществом. Сообщество — это Вы.<br />
** Документация — твой лучший друг и помощник.<br />
** Если берётесь помогать кому-то, исходите из предположения, что документация не помогла.<br />
<br />
== Жалобы и стенания ==<br />
Их удалят, а вас, скорее всего, забанят.<br />
<br />
== Провокации ==<br />
Темы, начинающиеся со слов "Arch Linux в опасности! Я нашёл в его философии структурную уязвимость!", будут закрыты, а вас, скорее всего, забанят. Нашли &ndash; пришлите патч.<br />
<br />
Не обсуждайте разработчика, его философию и методы, если только вы не он и есть. Впрочем, лучше тоже не надо.<br />
<br />
Если Вы задаёте вопрос, будьте готовы получить ответ. Вам же лучше, если удастся найти и поместить правильный ответ самому.<br />
<br />
== Ответственность ==<br />
Будьте '''всегда''' '''заранее''' готовы к тому, что '''дурак, виноватый в вашей проблеме,''' — это Вы.<br />
<br />
== Уважение ==<br />
Его заслуживают и те, кто не прав (тем более, что чаще всего это Вы).<br />
<br />
== Срач со сторонниками других ОС, дистрибутивов, языков и т. д. ==<br />
Его удалят, а вас, однозначно, забанят.<br />
<br />
== Постинг кода и изображений ==<br />
Используйте тег [code]. Нет, лучше используйте http://pastebin.com/. При генерации консольного вывода '''всегда''' предваряйте вводимые команды {{Ic|1=LC_ALL=C}}. Если другие пользователи не поймут ваш ужасный вывод на русском, это не значит, что они неграмотны! При вставке заменяйте изображения предпросмотрами размером не больше 250x250px и 50Kb.<br />
<br />
== Реклама ==<br />
Эта секция сохранена для синхронизации с английской версией статьи. Если вы хотите что-то рекламировать на русскоязычном (!) форуме Arch Linux (!!!), вы просто упороты.<br />
<br />
== Домашка ==<br />
Вам не дадут ни спрашивать про неё, ни помогать несчастным.<br />
<br />
== Некропостинг ==<br />
Избегайте его.<br />
<br />
'''Как?''' <br />
* Если у вас есть вопрос, задайте его в новой теме и сопроводите ссылкой на старую;<br />
* если у вас есть свежая информация в тему, разместите её '''здесь''', а не на форуме;<br />
* если вы не считаете то, что делаете, некропостингом &ndash; не стесняйтесь, отвечайте хоть в тему десятилетней давности.<br />
<br />
== Множественные учётные записи ==<br />
Их не должно быть ни у кого, кроме троллей.<br />
<br />
== Тролли ==<br />
Если вы знаете, кто это/что это такое, вас, скорее всего, забанят.<br />
<br />
== Спорт, политика, расизм, национализм ==<br />
Вас, скорее всего, забанят.<br />
<br />
== Ответы в духе "согласен", "+1", "lol" и т. д. ==<br />
Вас, скорее всего, забанят.<br />
<br />
== Эгоизм ==<br />
Если ваша тема, комментарий, личное сообщение не будут никому полезны, вам они тем более не будут полезны.<br />
<br />
== Бампанье (бессодержательное поднятие неактивных тем) ==<br />
Если никто не захотел вам помочь, значит вам невероятно повезло. Вы не только сможете решить проблему самостоятельно, но и, возможно, станете обладателем уникального знания, которым будет приятно поделиться с другими.<br />
<br />
== Кросс-постинг ==<br />
Вас, скорее всего, забанят.<br />
<br />
== Постинг не в ту ветку/подфорум ==<br />
<s>Постарайтесь не допускать его, администраторам уже надоело.</s><br>Вас, скорее всего, забанят.<br />
<br />
== Оффтопик ==<br />
см [[#Тролли]]<br />
<br />
== Спам ==<br />
''В англоязычной версии здесь были гневные обещания расправиться с "поганью, марающей светлое лик Всемирного Информационного Пространства"'''<br />
<br />
== Флеймы ==<br />
Отличается от [[#Тролли|троллинга]], тем, что субъект честно, без задней мысли пишет ерунду и ругается в теме. Вас, скорее всего, забанят.<br />
<br />
== Уважение к администрации ==<br />
'''На форумах Arch Linux &ndash; не демократия.'''<br />
<br />
* Если вы недовольны, напишите модератору или на forum@archlinux.org.<br />
<br />
== Предупреждение, блокировка, бан ==<br />
В таком порядке.<br />
<br />
Если пользователь даёт понять, что исправился, команда модераторов вырабатывает решение о возможности смягчения/отмены наказания на основе консенсуса.<br />
<br />
== Создание тем/ответы на них ==<br />
* Форум посвящён официальной сборке дистрибутива Arch Linux. См. также [[#Оффтопик]]<br />
<br />
* Будьте умнее &ndash; так выше шанс, что в вас распознают новичка и помогут.<br />
<br />
* Мало дополнительной информации не бывает.<br />
<br />
* Одна тема &ndash; один вопрос.<br />
<br />
* Если тема подходит к нескольким форумам, выберите самый подходящий.<br />
<br />
* '''Всегда читайте исходный пост'''.<br />
<br />
* Ещё раз &ndash; не помещайте бесполезные сообщения в созданную вами тему для привлечения внимания к ней. Хотя этот трюк и достаточно эффективен, чтобы быть упомянутым здесь уже два раза, всё же лучше потратить время на что-то более приятное, чем ожидание ответа, которого, вполне возможно, никто не даст (т. к. никто не знает).<br />
<br />
* Добавляйте [РЕШЕНО] в поле "Subject", если решение проблемы найдено.<br />
<br> Не используйте [ЗАКРЫТО], эта отметка автоматически добавляется к постам закрытым модераторами.<br />
<br />
* Если тема помечена [ЗАКРЫТО], не отвечайте фразой, начинающейся со слов "У меня та же проблема.."; создайте новую тему, разместив в ней ссылку на "решённую".<br />
<br />
== Удаление тем ("Marked for Deletion") ==<br />
Темы, дальнейшее существование которых бессмысленно/ересь удаляются.<br />
<br />
== Законность ==<br />
Соблюдайте закон в пределах здравого смысла. Фраза "в пределах здравого смысла" добавлена при переводе и её автор не несёт явной или подразумеваемой ответственности за любое действие или бездействие, вызванное попыткой её неверной интерпретации.<br />
<br />
== Свобода ==<br />
Участники форумов Arch Linux обладают в их рамках лишь ''ограниченной свободой''. Как следствие, любые упоминания о 'цензуре' заведомо бессмысленны. Упомянутая свобода представляет из себя не более и не менее, чем свободу от последствий нарушений вышеперечисленных правил и ограничений, и служит '''в частности''' общему благу.</div>
Vadik
https://wiki.archlinux.org/index.php?title=Code_of_conduct_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=419958
Code of conduct (Русский)
2016-02-10T18:03:06Z
<p>Vadik: /* Удаление тем ("Marked for Deletion") */</p>
<hr />
<div>[[Category:About Arch (Русский)]]<br />
[[Category:Русский]]<br />
[[en:Forum etiquette]]<br />
[[es:Forum etiquette]]<br />
[[ja:フォーラムエチケット]]<br />
[[pt:Forum etiquette]]<br />
[[ro:Conduita pe forum]]<br />
[[zh-cn:Forum etiquette]]<br />
{{Unmaintained (Русский)}}<br />
<br />
Эти правила были выработаны модераторами форумов Arch Linux при помощи обширного опыта и элементарного здравого смысла.<br />
<br />
== Вводный курс в Здравый Смысл ==<br />
* Если вы выбрали Arch Linux — придерживайтесь [[The Arch Way (Русский)|общего для всех пути]]. <br />
* Arch разрабатывается сообществом. Сообщество — это Вы.<br />
** Документация — твой лучший друг и помощник.<br />
** Если берётесь помогать кому-то, исходите из предположения, что документация не помогла.<br />
<br />
== Жалобы и стенания ==<br />
Их удалят, а вас, скорее всего, забанят.<br />
<br />
== Провокации ==<br />
Темы, начинающиеся со слов "Arch Linux в опасности! Я нашёл в его философии структурную уязвимость!", будут закрыты, а вас, скорее всего, забанят. Нашли &ndash; пришлите патч.<br />
<br />
Не обсуждайте разработчика, его философию и методы, если только вы не он и есть. Впрочем, лучше тоже не надо.<br />
<br />
Если Вы задаёте вопрос, будьте готовы получить ответ. Вам же лучше, если удастся найти и поместить правильный ответ самому.<br />
<br />
== Ответственность ==<br />
Будьте '''всегда''' '''заранее''' готовы к тому, что '''дурак, виноватый в вашей проблеме,''' — это Вы.<br />
<br />
== Уважение ==<br />
Его заслуживают и те, кто не прав (тем более, что чаще всего это Вы).<br />
<br />
== Срач со сторонниками других ОС, дистрибутивов, языков и т. д. ==<br />
Его удалят, а вас, однозначно, забанят.<br />
<br />
== Постинг кода и изображений ==<br />
Используйте тег [code]. Нет, лучше используйте http://pastebin.com/. При генерации консольного вывода '''всегда''' предваряйте вводимые команды {{Ic|1=LC_ALL=C}}. Если другие пользователи не поймут ваш ужасный вывод на русском, это не значит, что они неграмотны! При вставке заменяйте изображения предпросмотрами размером не больше 250x250px и 50Kb.<br />
<br />
== Реклама ==<br />
Эта секция сохранена для синхронизации с английской версией статьи. Если вы хотите что-то рекламировать на русскоязычном (!) форуме Arch Linux (!!!), вы просто упороты.<br />
<br />
== Домашка ==<br />
Вам не дадут ни спрашивать про неё, ни помогать несчастным.<br />
<br />
== Некропостинг ==<br />
Избегайте его.<br />
<br />
'''Как?''' <br />
* Если у вас есть вопрос, задайте его в новой теме и сопроводите ссылкой на старую;<br />
* если у вас есть свежая информация в тему, разместите её '''здесь''', а не на форуме;<br />
* если вы не считаете то, что делаете, некропостингом &ndash; не стесняйтесь, отвечайте хоть в тему десятилетней давности.<br />
<br />
== Множественные учётные записи ==<br />
Их не должно быть ни у кого, кроме троллей.<br />
<br />
== Тролли ==<br />
Если вы знаете, кто это/что это такое, вас, скорее всего, забанят.<br />
<br />
== Спорт, политика, расизм, национализм ==<br />
Вас, скорее всего, забанят.<br />
<br />
== Ответы в духе "согласен", "+1", "lol" и т. д. ==<br />
Вас, скорее всего, забанят.<br />
<br />
== Эгоизм ==<br />
Если ваша тема, комментарий, личное сообщение не будут никому полезны, вам они тем более не будут полезны.<br />
<br />
== Бампанье (бессодержательное поднятие неактивных тем) ==<br />
Если никто не захотел вам помочь, значит вам невероятно повезло. Вы не только сможете решить проблему самостоятельно, но и, возможно, станете обладателем уникального знания, которым будет приятно поделиться с другими.<br />
<br />
== Кросс-постинг ==<br />
Вас, скорее всего, забанят.<br />
<br />
== Постинг не в ту ветку/подфорум ==<br />
<s>Постарайтесь не допускать его, администраторам уже надоело.</s><br>Вас, скорее всего, забанят.<br />
<br />
== Оффтопик ==<br />
см [[#Тролли]]<br />
<br />
== Спам ==<br />
''В англоязычной версии здесь были гневные обещания расправиться с "поганью, марающей светлое лик Всемирного Информационного Пространства"'''<br />
<br />
== Флеймы ==<br />
Отличается от [[#Тролли|троллинга]], тем, что субъект честно, без задней мысли пишет ерунду и ругается в теме. Вас, скорее всего, забанят.<br />
<br />
== Уважение к администрации ==<br />
'''На форумах Arch Linux &ndash; не демократия.'''<br />
<br />
* Если вы недовольны, напишите модератору или на forum@archlinux.org.<br />
<br />
== Предупреждение, блокировка, бан ==<br />
В таком порядке.<br />
<br />
Если пользователь даёт понять, что исправился, команда модераторов вырабатывает решение о возможности смягчения/отмены наказания на основе консенсуса.<br />
<br />
== Создание тем/ответы на них ==<br />
* Форум посвящён официальной сборке дистрибутива Arch Linux. См. также [[#Оффтопик]]<br />
<br />
* Будьте умнее &ndash; так выше шанс, что в вас распознают новичка и помогут.<br />
<br />
* Мало дополнительной информации не бывает.<br />
<br />
* Одна тема &ndash; один вопрос.<br />
<br />
* Если тема подходит к нескольким форумам, выберите самый подходящий.<br />
<br />
* '''Всегда читайте исходный пост'''.<br />
<br />
* Ещё раз &ndash; не помещайте бесполезные сообщения в созданную вами тему для привлечения внимания к ней. Хотя этот трюк и достаточно эффективен, чтобы быть упомянутым здесь уже два раза, всё же лучше потратить время на что-то более приятное, чем ожидание ответа, которого, вполне возможно, никто не даст (т. к. никто не знает).<br />
<br />
* Добавляйте [SOLVED] в поле "Subject", если решение проблемы найдено.<br />
<br> Не используйте [CLOSED], эта отметка автоматически добавляется к постам закрытым модераторами.<br />
<br />
* Если тема помечена [SOLVED], не отвечайте фразой, начинающейся со слов "У меня та же проблема.."; создайте новую тему, разместив в ней ссылку на "решённую".<br />
<br />
== Удаление тем ("Marked for Deletion") ==<br />
Темы, дальнейшее существование которых бессмысленно/ересь удаляются.<br />
<br />
== Законность ==<br />
Соблюдайте закон в пределах здравого смысла. Фраза "в пределах здравого смысла" добавлена при переводе и её автор не несёт явной или подразумеваемой ответственности за любое действие или бездействие, вызванное попыткой её неверной интерпретации.<br />
<br />
== Свобода ==<br />
Участники форумов Arch Linux обладают в их рамках лишь ''ограниченной свободой''. Как следствие, любые упоминания о 'цензуре' заведомо бессмысленны. Упомянутая свобода представляет из себя не более и не менее, чем свободу от последствий нарушений вышеперечисленных правил и ограничений, и служит '''в частности''' общему благу.</div>
Vadik
https://wiki.archlinux.org/index.php?title=Beginners%27_Guide/Installation_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=251664
Beginners' Guide/Installation (Русский)
2013-03-23T11:47:43Z
<p>Vadik: /* Имя компьютера */</p>
<hr />
<div><noinclude><br />
[[Category:Русский]]<br />
[[da:Beginners' Guide/Installation]]<br />
[[en:Beginners' Guide/Installation]]<br />
[[es:Beginners' Guide/Installation]]<br />
[[hr:Beginners' Guide/Installation]]<br />
[[hu:Beginners' Guide/Installation]]<br />
[[it:Beginners' Guide/Installation]]<br />
[[ko:Beginners' Guide/Installation]]<br />
[[nl:Beginners' Guide/Installatie]]<br />
[[pt:Beginners' Guide/Installation]]<br />
[[sr:Beginners' Guide/Installation]]<br />
[[zh-CN:Beginners' Guide/Installation]]<br />
{{Note| Это часть более обширной статьи '''[[Beginners' Guide_(Русский)|Руководство для новичков]]'''.}}<br />
</noinclude><br />
<br />
==Установка==<br />
<br />
Теперь вы видите приглашение командной строки от имени пользователя root.<br />
<br />
====Изменение языка====<br />
<br />
{{Tip|Эти действия выполнять не обязательно, если вам не нужно вносить записи в конфигурационные файлы на русском языке, или же использовать отличные от стандартных английских символы при установлении пароля Wi-Fi, а также получать системные сообщения на родном языке (например, сообщения об ошибках).}}<br />
<br />
По умолчанию, раскладка клавиатуры установлена в {{ic|us}}. Если вам нужна не раскладка, отличная от американской ([[Wikipedia:File:KB_United_States-NoAltGr.svg|US]]), как, впрочем, и предполагается для русскоязычного пользователя, выполните:<br />
<br />
# loadkeys ''layout''<br />
<br />
...где ''layout'' может быть {{ic|ru}} (для русской раскладки), {{ic|ua}} (для украинской) и др. Другие раскладки можно найти в {{ic|/usr/share/kbd/keymaps/}} (можно не указывать полный путь и расширение файла с раскладкой при использовании команды loadkeys). См. соответствующий список раскладок [[KEYMAP#Keyboard_layouts|здесь]].<br />
<br />
Шрифт также должен быть изменен, поскольку большинство языков используют больше символов, чем 26 букв [[Wikipedia:English_alphabet|английского алфавита]]. В противном случае некоторые символы, отличные от стандартных английских, могут отображаться как белые квадраты или другие знаки. Обратите внимание, что наименование шрифта чувствительно к регистру, поэтому, пожалуйста, введите его ''точно'' так, как вы его видите, например:<br />
<br />
# setfont cyr-sun16<br />
<br />
Другие шрифты, в том числе кириллические, можно найти в {{ic|/usr/share/kbd/consolefonts}}.<br />
<br />
По умолчанию языком системы является английский (US/США). Если вы хотите изменить настройки языка, используемые в процессе установки ''(русский, в данном примере)'', удалите символ комментария {{ic|#}} перед нужной вам [http://www.greendesktiny.com/support/knowledgebase_detail.php?ref=EUH-483 локалью] в файле {{ic|/etc/locale.gen}}, наряду с английской локалью (US). Пожалуйста, выбирайте юникодовскую локаль {{ic|UTF-8}}.<br />
<br />
Используйте клавиши {{Keypress|Ctrl+X}} для выхода, когда же вам будет предложено сохранить изменения, нажмите {{Keypress|Y}} и {{Keypress|Enter}} для сохранения файла под тем же именем.<br />
<br />
{{hc|# nano /etc/locale.gen|<br />
en_US.UTF-8 UTF-8<br />
ru_RU.UTF-8 UTF-8}}<br />
<br />
# locale-gen<br />
# export LANG=ru_RU.UTF-8<br />
<br />
Помните, раскладка переключается установленным для нее и неизменяемым сочетанием клавиш (для {{ic|ru}} - {{Keypress|LCtrl+LShift}}).<br />
<br />
===Настройка сети===<br />
<br />
{{Warning| udev теперь не присваивает имена сетевых интерфейсов по схеме wlanX и ethX. Если вы пришли с другого дистрибутива или переустанавливаете Arch и не осведомлены о новом стиле именования интерфейсов, пожалуйста не думайте что Ваше беспроводное соединение имеет имя wlan0, или проводное соединение имеет имя eth0. Вы можете использовать утилиту "ip" для того чтобы узнать имена интерфейсов.}}<br />
<br />
Начиная с релиза systemd-197's и далее, udev теперь назначае предсказуемое, стабильное имя сети которое отличается от привычного именования (wlan0, wlan1, и т.д.). Эти имена интерфейсов гарантированно сохраняются и после перезагрузки, которые решают проблему отсутствия предсказуемости назначения имени сетевого интерфейса. Для получения дополнительной информации о том, почему это было необходимо, читайте http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames .<br />
<br />
Сетевой демон {{ic|dhcpcd}} стартует при загрузке автоматически и попытается подключиться к проводному соединению, если оно доступно. Попробуйте пропинговать какой-нибудь сайт.<br />
<br />
{{hc|# ping -c 3 ya.ru|2=<br />
PING ya.ru (93.158.134.203) 56(84) bytes of data.<br />
64 bytes from www.yandex.ru (93.158.134.203): icmp_req=1 ttl=54 time=62.4 ms<br />
64 bytes from www.yandex.ru (93.158.134.203): icmp_req=2 ttl=54 time=63.0 ms<br />
64 bytes from www.yandex.ru (93.158.134.203): icmp_req=3 ttl=54 time=62.4 ms<br />
<br />
--- ya.ru ping statistics ---<br />
3 packets transmitted, 3 received, 0% packet loss, time 2002ms<br />
rtt min/avg/max/mdev = 62.423/62.623/63.009/0.273 ms<br />
}}<br />
<br />
Если вместо этого вы увидели ошибку {{ic|ping: unknown host}}, Вам необходимо настроить соединение в ручную как описано ниже<br />
<br />
В противном случае переходите к [[#Prepare the storage drive|Prepare the storage drive]].<br />
<br />
====Настройка проводного соединения====<br />
<br />
Выполните эту процедуру, если вам нужно установить проводное соединение через статический IP адрес.<br />
Во-первых, определите название вашего интерфейса.<br />
{{hc|# ip link|<br />
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT <br />
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br />
2: enp2s0f0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000<br />
link/ether 00:11:25:31:69:20 brd ff:ff:ff:ff:ff:ff<br />
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000<br />
link/ether 01:02:03:04:05:06 brd ff:ff:ff:ff:ff:ff}}<br />
<br />
В этом примере сетевой интерфейсом Ethernet является enp2s0f0. Если вы не уверены, что ваш Ethernet интерфейс может начинаться с буквы "e", и вряд ли будет "lo" или начинаться с "w". Вы также можете использовать iwconfig и посмотреть, какие интерфейсы не являются беспроводными:<br />
<br />
<br />
{{hc|# iwconfig|2=<br />
enp2s0f0 no wireless extensions.<br />
wlp3s0 IEEE 802.11bgn ESSID:"NETGEAR97" <br />
Mode:Managed Frequency:2.427 GHz Access Point: 2C:B0:5D:9C:72:BF <br />
Bit Rate=65 Mb/s Tx-Power=16 dBm <br />
Retry long limit:7 RTS thr:off Fragment thr:off<br />
Power Management:on<br />
Link Quality=61/70 Signal level=-49 dBm <br />
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0<br />
Tx excessive retries:0 Invalid misc:430 Missed beacon:0<br />
lo no wireless extensions.}}<br />
<br />
В этом примере, ни enp2s0f0 ни lo не имеют беспроводных дополнений, то есть enp2s0f0 наш интерфейс Ethernet.<br />
<br />
Вам необходимо знать следующие настройки:<br />
<br />
* Ваш статический IP адрес.<br />
* Маска сети.<br />
* Широковещательный адрес<br />
* Ваш шлюз.<br />
* Адреса ваших DNS серверов.<br />
* Доменное имя.<br />
<br />
Поднимите сетевое соединение, например, для {{ic|enp2s0f0}}:<br />
<br />
# ip link set enp2s0f0 up<br />
<br />
Добавьте адрес:<br />
<br />
# ip addr add <ip address>/<subnetmask> dev <interface><br />
<br />
Например:<br />
<br />
# ip addr add 192.168.1.2/24 dev enp2s0f0<br />
<br />
Для дополнительной настройки обратитесь к {{ic|man ip}}.<br />
<br />
Добавьте ваш шлюз как показано ниже, вставив IP-адрес своего шлюза:<br />
<br />
# ip route add default via <ip address><br />
<br />
Например:<br />
<br />
# ip route add default via 192.168.1.1<br />
<br />
Отредактируйте {{ic|resolv.conf}}, сменив адреса ваших DNS серверов и доменное имя:<br />
<br />
{{hc|# nano /etc/resolv.conf|<br />
nameserver 61.23.173.5<br />
nameserver 61.95.849.8<br />
search example.com}}<br />
<br />
{{Note|Сейчас у вас может быть включено максимум 3 строки {{ic|nameserver}}.}}<br />
<br />
Теперь у вас должно появиться работающее сетевое соединение. Если этого не произошло, обратитесь к странице [[Configuring Network (Русский)]].<br />
<br />
====Настройка беспроводного соединения====<br />
<br />
Следуйте указанной процедуре, если вам в процессе установки необходимо беспроводное соединение.<br />
Если вы в первый раз уставливаете Arch Linux, вы будете удивлены что названия беспроводных интерфейсов теперь не именуются по схеме "wlanX". Не паникуйте, используйте {{ic|iwconfig}} чтобы узнать имя вашего беспроводного соединения.<br />
<br />
Драйверы и утилиты для настройки беспроводного соединения теперь доступны на установочном диске. Для успешной настройки имеет большое значение хорошее представление о собственном оборудовании для беспроводных сетей, . Учтите, что ''описываемый процесс настройки'' действителен только ''на время установки в live-системе''. Вам нужно будет повторить его уже ''в установленной системе после загрузки в нее''.<br />
<br />
Имейте также в виду, что настройка беспроводного соединения необязательна для установки системы, если во время установки такое соединение не доступно. Функциональность, обеспечиваемая беспроводным соединением, всегда может быть добавлена позже.<br />
<br />
{{Note|Данный пример использует {{ic|wlp3s0}} в качестве имени интерфейса и {{ic|linksys}} для ESSID. Не забудьте изменить эти настройки применительно к вашей ситуации.}}<br />
<br />
Основные этапы:<br />
* (необязательно) Определите используемое беспроводное оборудование:<br />
<br />
# lspci | grep -i net<br />
или же при использовании USB-адаптера:<br />
<br />
# lsusb<br />
<br />
* Удостоверьтесь командой {{ic|/usr/sbin/iwconfig}}, что udev загрузил нужный драйвер, который создал беспроводный интерфейс:<br />
<br />
{{Note|Если вы не увидели аналогичный вывод, значит драйвер для вашего беспроводного оборудования не был загружен. В этом случае вы должны загрузить драйвер самостоятельно. Обратитесь к статье [[Wireless Setup]] для получения дополнительной информации.}}<br />
<br />
{{hc|# iwconfig|2=<br />
enp2s0f0 no wireless extensions.<br />
wlp3s0 IEEE 802.11bgn ESSID:"NETGEAR97" <br />
Mode:Managed Frequency:2.427 GHz Access Point: 2C:B0:5D:9C:72:BF <br />
Bit Rate=65 Mb/s Tx-Power=16 dBm <br />
Retry long limit:7 RTS thr:off Fragment thr:off<br />
Power Management:on<br />
Link Quality=61/70 Signal level=-49 dBm <br />
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0<br />
Tx excessive retries:0 Invalid misc:430 Missed beacon:0<br />
lo no wireless extensions.}}<br />
<br />
В этом примере {{ic|wlp3s0}} - имя беспроводного интерфейса. <br />
<br />
* Поднимите интерфейс:<br />
<br />
# ip link set wlp3s0 up<br />
<br />
Некоторое беспроводное оборудование в дополнение к драйверу требует также загрузки проприетарной прошивки. В этом случае вы, скорее всего, увидите такое сообщение:<br />
<br />
{{hc|# ip link set wlp3s0 up|<br />
SIOCSIFFLAGS: No such file or directory}}<br />
<br />
Если вы не уверены в необходимости проприетарной прошивки для вашего оборудования, выполните команду {{ic|/usr/bin/dmesg}} для того, чтобы увидеть сообщения ядра системы, где должна быть строка с требованием загрузить прошивку. <br />
<br />
Вот пример для чипсета Intel:<br />
<br />
{{hc|# dmesg <nowiki>|</nowiki> grep firmware|<br />
firmware: requesting iwlwifi-5000-1.ucode}}<br />
<br />
Если подобного сообщения нет, значит, ваше оборудование не требует загрузки прошивки.<br />
<br />
{{Note|Прошивки для беспроводного оборудования во время установки расположены в директории {{ic|/usr/lib/firmware}}, ''но должны быть установлены явным образом в новую систему на этапе выбора пакетов!'' Процесс установки пакетов описан ниже в этом руководстве. Убедитесь, что вы устанавливаете как драйвера, так и прошивки для вашего беспроводного оборудования. Прочтите статью [[Wireless Setup]], если вы не уверены насчет прошивки, требуемой для Вашего оборудования. Это типичная ошибка.}}<br />
<br />
Наконец, используйте интерактивное меню для установки подключения по Wi-Fi, предлагаемое пакетом {{pkg|netcfg}}:<br />
<br />
# wifi-menu wlp3s0<br />
<br />
Теперь у вас должно появиться работающее сетевое соединение. Если этого не произошло, обратитесь к странице [[Wireless Setup]].<br />
<br />
====xDSL (PPPoE), аналоговый модем или ISDN====<br />
<br />
Если у вас роутер в режиме моста, выполните:<br />
<br />
# pppoe-setup<br />
<br />
* Введите свое имя (логин), выданный провайдером.<br />
* Нажмите {{Keypress|Enter}} для "eth0".<br />
* Нажмите {{Keypress|Enter}} для выбора опции "no", так что эта настройка останется постоянной.<br />
* Нажмите {{ic|server}} (выбор в большинстве случаев).<br />
* Нажмите {{Keypress|1}} для брандмауэра.<br />
* Введите пароль, выданный провайдером.<br />
* В конце нажмите {{Keypress|y}}.<br />
<br />
Для использования этих настроек и подключения к провайдеру, выполните:<br />
<br />
# pppoe-start<br />
<br />
Вам также может потребоваться настроить свой конфигурационный файл {{ic|resolv.conf}}:<br />
<br />
# echo nameserver 8.8.8.8 > /etc/resolv.conf<br />
<br />
Для аналогового модема (dial-up) и ISDN, см. [[Direct Modem Connection]].<br />
<br />
====Использование прокси-сервера====<br />
<br />
Если вы используете прокси-сервер, вам необходимо экспортировать переменные среды {{ic|http_proxy}} и {{ic|ftp_proxy}}. '''[[Proxy|Нажмите здесь]]''' для получения информации по данной теме.<br />
<br />
{{Note|В установленной системе данные переменные должны быть указаны в файле {{ic|/etc/wgetrc}}.}}<br />
<br />
===Подготовка жесткого диска===<br />
<br />
{{Warning| Ошибка в разбиении диска на разделы может уничтожить данные. Поэтому настоятельно рекомендуется сделать резервную копию наиболее важных данных.}}<br />
Новичкам рекомендуется использовать графическую утилиту для разметки диска. Хороший пример подобной утилиты -[http://gparted.sourceforge.net/download.php GParted], запускаемый из live-дистрибутива Linux, такого как [[Wikipedia:Parted_Magic|Parted Magic]], [[Wikipedia:Ubuntu_(operating_system)|Ubuntu]], [[Wikipedia:Linux_Mint|Linux Mint]] и др. Смотрите [[Partitioning]] для получения общих сведений и убедитесь, что отформатировали разделы с файловой системой (например, '''ext4''', '''btrfs''' и др.) до перезагрузки компьютера.<br />
<br />
Если вы уже произвели разметку жесткого диска, переходите к разделу [[#Монтирование_разделов|монтированию разделов]].<br />
<br />
В противном случае, посмотрите следующий пример.<br />
<br />
====Пример====<br />
<br />
Установочный образ Arch Linux включает следующие утилиты разбиения диска:<br />
<br />
* [[Wikipedia:cfdisk|cfdisk]] – поддерживает только таблицы разделов [[MBR]].<br />
<br />
* [[Wikipedia:gdisk|gdisk]] – поддерживает только таблицы разделов [[GPT]].<br />
<br />
* [[Wikipedia:parted|parted]] – поддерживает обе таблицы разделов.<br />
<br />
Приводимый ниже пример использует утилиту '''cfdisk''', но с той же легкостью может быть использована и утилита '''gdisk''' для разделов GPT.<br />
<br />
{{Note|Если у вас материнская плата [[UEFI]], вам потребуется создать дополнительный раздел, именуемый системным разделом UEFI. Обратитесь к [[Unified_Extensible_Firmware_Interface#Create_an_UEFI_System_Partition_in_Linux|данной статье]].}}<br />
<br />
{{Note|Если вы хотите установить загрузчик GRUB в режиме BIOS-GPT, то вам потребуется создать "загрузочный раздел BIOS" размером в 2 Мб. Обратитесь к [[GRUB#GPT_specific_instructions|особым инструкциям по использованию GPT]] за дальнейшей информацией.}}<br />
<br />
{{Note|Если вы производите установку на USB-флешку, смотрите [[Installing Arch Linux on a USB key]].}}<br />
<br />
{{Note|Если вы не будете использовать двойную загрузку с Windows, то предпочтительнее использовать таблицу разделов [[GPT]] вместо [[MBR]]. Разбиение на разделы GPT может быть проведено только с использованием '''gdisk''' или '''parted'''. Прочтите статью [[GPT]] для выяснения преимуществ такого разбиения.}}<br />
<br />
# cfdisk /dev/sda<br />
<br />
Система в данном примере будет содержать корневой раздел (root) ({{ic|/}}) размером 15 Гб, раздел подкачки {{ic|swap}} в 1 Гб и домашний раздел {{ic|/home}}, занимающий всё оставшееся место.<br />
<br />
Следует особо отметить, что разбиение диска отвечает личным предпочтениям пользователя и данный пример имеет исключительно иллюстративный характер. См. [[Partitioning]].<br />
<br />
'''Root:'''<br />
<br />
* Выберите пункт New/Новый (или нажмите {{Keypress|N}}) – {{Keypress|Enter}} для Primary/Основного раздела - введите размер "15360" – {{Keypress|Enter}} для пункта Beginning/Начало – {{Keypress|Enter}} для того, чтобы сделать этот диск Bootable/Загрузочным.<br />
<br />
'''Swap:'''<br />
<br />
* Клавишей со стрелкой вниз перейдите на свободное пространство диска.<br />
* Выберите пункт New/Новый (или нажмите {{Keypress|N}}) – {{Keypress|Enter}} для Primary/Основного раздела - введите размер "1024" – {{Keypress|Enter}} для пункта Beginning/Начало.<br />
* Выберите Type/Тип (или нажмите {{Keypress|T}}) – нажмите любую клавишу, чтобы прокрутить список вниз – {{Keypress|Enter}} для выбора типа 82.<br />
<br />
'''Home:'''<br />
<br />
* Клавишей со стрелкой вниз перейдите на свободное пространство диска.<br />
* Выберите пункт New/Новый (или нажмите {{Keypress|N}}) – {{Keypress|Enter}} для Primary/Основного раздела – {{Keypress|Enter}} для использования оставшегося дискового пространства (или вы можете вручную ввести требуемый размер раздела).<br />
<br />
Вот как это должно выглядеть:<br />
<br />
Name Flags Part Type FS Type [Label] Size (MB)<br />
-----------------------------------------------------------------------<br />
sda1 Boot Primary Linux 15360<br />
sda2 Primary Linux swap / Solaris 1024<br />
sda3 Primary Linux 133000*<br />
<br />
или в русскоязычном варианте:<br />
<br />
Имя Флаги Тип раздела Тип ФС [Метка] Размер (MБ)<br />
-------------------------------------------------------------------------<br />
sda1 Загрузочный Основной Linux 15360<br />
sda2 Основной Linux своп / Solaris 1024<br />
sda3 Основной Linux 133000*<br />
<br />
Прежде чем продолжить, проверьте несколько раз сделанные изменения и убедитесь что вы довольны как размерами разделов, так и раскладкой таблицы разбиения.<br />
<br />
Если захотите начать все сначала, можете просто выбрать Quit/Выход (или нажмите {{Keypress|Q}}) для выхода без сохранения изменений, а затем перезапустить cfdisk.<br />
<br />
Если вас устраивает разбивка, выберите Write/Запись (или нажмите {{Keypress|Shift+W}}), чтобы завершить разбиение и записать таблицу разделов на диск. Наберите "yes"/"да" и выберите Quit/Выход (или нажмите {{Keypress|Q}}), чтобы выйти из cfdisk без каких-либо изменений.<br />
<br />
Простого разбиения на разделы недостаточно, необходимо также явно задать [[File Systems|файловую систему]]. Для форматирования разделов с файловой системой ext4 выполните:<br />
<br />
# mkfs.ext4 /dev/sda1<br />
# mkfs.ext4 /dev/sda3<br />
<br />
Форматирование и подключение раздела подкачки:<br />
<br />
# mkswap /dev/sda2<br />
# swapon /dev/sda2<br />
<br />
===Монтирование разделов===<br />
<br />
Каждый раздел отождествляется определенным числовым суффиксом. Например, раздел {{ic|sda1}} указывает на первый раздел первого диска, в то время как {{ic|sda}} обозначает весь диск.<br />
<br />
Чтобы увидеть текущую таблицу разделов выполните команду:<br />
<br />
# lsblk /dev/sda<br />
<br />
Обратите внимание, что для установки вашей системы важен порядок монтирования разделов.<br />
<br />
Сперва монтируется корневой раздел (root) в {{ic|/mnt}}. В приводимом ниже примере (у вас могут быть отличия) это выглядит так:<br />
<br />
# mount /dev/sda1 /mnt<br />
<br />
Затем монтируется домашний ({{ic|/home}}) раздел и все остальные отдельные разделы ({{ic|/boot}}, {{ic|/var}} и др.), если они у вас имеются:<br />
<br />
# mkdir /mnt/home<br />
# mount /dev/sda3 /mnt/home<br />
<br />
В случае, если у вас имеется отдельный загрузочный ({{ic|/boot}}) раздел:<br />
<br />
# mkdir /mnt/boot<br />
# mount /dev/sda''x'' /mnt/boot<br />
<br />
Если у вас материнская плата UEFI, монтируется раздел UEFI:<br />
<br />
# mkdir /mnt/boot/efi<br />
# mount /dev/sda''x'' /mnt/boot/efi<br />
<br />
===Выбор зеркал===<br />
<br />
Зеркала перечислены в файле {{ic|/etc/pacman.d/mirrorlist}} и должны располагаться по приоритету. Перед установкой вы можете отредактировать файл {{ic|mirrorlist}}и поместите нужные зеркала на первые позиции. Копия этого файла будет установлена скриптом {{ic|pacstrap}} в вашу новую систему, так что стоит проделать эту работу.<br />
<br />
{{hc|# nano /etc/pacman.d/mirrorlist|<br />
##<br />
## Arch Linux repository mirrorlist<br />
## Sorted by mirror score from mirror status page<br />
## Generated on 2012-MM-DD<br />
##<br />
<br />
<nowiki>Server = http://mirror.example.xyz/archlinux/$repo/os/$arch</nowiki><br />
...}}<br />
<br />
* {{Keypress|Alt+6}} для копирования строки {{ic|Server}}.<br />
* {{Keypress|PageUp}} клавиша для прокрутки.<br />
* {{Keypress|Ctrl+U}}, чтобы вставить скопированное наверх часть списка.<br />
* {{Keypress|Ctrl+X}} для выхода, когда будет предложено сохранить изменения - нажмите {{Keypress|Y}} и {{Keypress|Enter}} для сохранения в файл с тем же именем.<br />
<br />
Если вы захотите, что можете сделать доступным ''только одно'' зеркало, удалив все остальные (используя {{Keypress|Ctrl+K}}), но обычно правильной идеей является использование нескольких зеркал, которые будут доступны, если первое из списка уйдет в offline.<br />
<br />
{{Tip|<br />
* Используйте генератор зеркал [https://www.archlinux.org/mirrorlist/ Mirrorlist Generator] для получения обновленного списка зеркал, доступных в вашей стране. Зеркала HTTP быстрее чем зеркала FTP из-за использования сообщений типа [[Wikipedia:Keepalive|keepalive]]. В случае с FTP, pacman каждый раз, когда он загружает пакет, будет посылать сигнал, завершающийся короткой паузой. Помните, что сгенерированный таким образом список зеркал будет содержать строки не только с серверами, но и указанием их статуса (если вы включили опцию {{ic|Use mirror status}}):<br />
<br />
## Score: 4.8, Russian Federation<br />
<nowiki>#Server = http://mirror.rol.ru/archlinux/$repo/os/$arch</nowiki><br />
<br />
Требуется раскомментировать только строки, содержащие сервера (начинающиеся с {{ic|Server}})!<br />
Чтобы узнать о других способах создания собственного списка зеркал, обратитесь к статьям [[Mirrors#Sorting_mirrors|Sorting mirrors]] и [[Reflector]]<br />
<br />
* [https://archlinux.org/mirrors/status/ Arch Linux MirrorStatus] сообщает различную информацию о зеркалах, такую, как сетевые проблемы с зеркалами, проблемы со сбором данных, последнее время синхронизации зеркал и т.д.}}<br />
{{Note|<br />
* При любом изменении списка зеркал всегда формируйте обновление списка пакетов с помощью команды {{ic|pacman -Syy}}. Такой способ рассматривается как правильный и поможет избежать головной боли. Смотрите статью [[Mirrors]] для получения дальнейшей информации.<br />
* Если вы используете устаревший установочный носитель, ваш список зеркал также, скорее всего, устарел, что может привести к проблемам с обновлением Arch Linux (см. {{Bug|22510}}). В силу этого настоятельно рекомендуется получить свежую информацию о зеркалах, как описано выше.<br />
* На [https://bbs.archlinux.org/ форумах Arch Linux] сообщалось о некоторых сетевых проблемах, мешающих pacman произвести обновление/синхронизацию репозиториев (см. [https://bbs.archlinux.org/viewtopic.php?id&#61;68944] и [https://bbs.archlinux.org/viewtopic.php?id&#61;65728]). Во время установки Arch Linux на реальную машину эти проблемы разрешались путем замены загрузчика файлов по умолчанию, используемого в pacman, альтернативным загрузчиком (см. [[Improve Pacman Performance]] для более детальной информации). В случае же установки Arch Linux в качестве гостевой машины в [[VirtualBox]], данная проблема также решалась путем использования типа подключения "Виртуальный адаптер хоста" вместо "NAT" в настройках виртуальной машины.}}<br />
<br />
===Установка базовой системы===<br />
<br />
Базовая система устанавливается с использованием скрипта [https://github.com/falconindy/arch-install-scripts/blob/master/pacstrap.in pacstrap].<br />
<br />
# pacstrap /mnt base base-devel<br />
<br />
{{Note|Если pacman не может проверить подписи ваших пакетов, убедитесь в правильной установке системного времени. Если системное время выставлено неверно (например, показывает 2010 год), срок ключей будут считаться истекшими или неверными, проверка подписей пакетов окажется неудачной и установка будет прервана. Скорректируйте системное время вручную или с использованием клиента {{Pkg|ntp}} и вновь запустите команду pacstrap. Обратитесь к странице [[Time_(Русский)|Time (Русский)]] за дальнейшей информацией о корректировке системного времени.}}<br />
<br />
* {{Grp|base}}: пакеты программного обеспечения из репозитория [core], обеспечивающие минимальное рабочее окружение.<br />
<br />
* {{Grp|base-devel}}: дополнительные утилиты из репозитория [core], такие, как {{ic|make}} и {{ic|automake}}. Большинству новичков лучше их установить сразу, так как в дальнейшем они, скорее всего, всё равно понадобятся для наращивания установленной системы. В частности, группа ''base-devel'' необходима для установки программ из [[Arch User Repository]].<br />
<br />
Таким образом, вы получили базовую систему Arch. Остальные пакеты могут быть установлены позднее с использованием [[pacman]].<br />
<br />
===Генерированиеe fstab===<br />
<br />
Сгенерируйте файл [[fstab]] приводимой ниже командой. Если вы предпочитаете использовать в данном файле UUID или метки дисков, соответственно добавьте опции {{ic|-U}} или {{ic|-L}}. Хорошей идеей станет проверка данного файла перед продолжением работы:<br />
<br />
{{Note|Если вы столкнетесь с ошибками при запуске genfstab или с ошибками, возникающими позже в процессе установки, '''не''' выполняйте команду genfstab вновь; просто отредактируйте файл fstab.}}<br />
<br />
# genfstab -p /mnt > /mnt/etc/fstab<br />
# nano /mnt/etc/fstab<br />
<br />
Только корневой раздел ({{ic|/}}) нуждается в значении {{ic|1}}, указываемом в последнем поле. Все остальные должны быть помечены или значением {{ic|2}}, или значением {{ic|0}} (см.[[Fstab#Field_definitions|Field definitions]]).<br />
<br />
Также, опция {{ic|1=data=ordered}} должна быть удалена, потому что она используется автоматически вне зависимости от того, указали вы ее или нет. Нет смысла загромождать ваш fstab.<br />
<br />
===Chroot и конфигурирование базовой системы===<br />
<br />
Затем, мы входим с помощью [[chroot]] во вновь установленную систему:<br />
<br />
# arch-chroot /mnt<br />
<br />
На этом этапе установки вам предстоит настроить основные файлы конфигурации своей базовой системы Arch Linux. Эти файлы могут быть созданы, если они не существуют, или отредактированы, если вы хотите изменить настройки по умолчанию.<br />
<br />
Внимательное следование приведенным ниже шагам и понимание сути своих действий имеет ключевое значение для правильной настройки системы.<br />
<br />
====Локализация====<br />
<br />
Локали используются '''glibc''' и другими программами или библиотеками для рендеринга текста, корректного отображения значений региональных валют, формата времени и даты, алфавитных особенностей и других специфических языковых и локальных стандартов.<br />
<br />
Необходимо отредактировать два файла: {{ic|locale.gen}} и {{ic|locale.conf}}.<br />
<br />
* Файл {{ic|locale.gen}} по умолчанию пустой (точнее, все значения в нем закомментированы) и вам потребуется удалить символ комментария {{ic|#}} в начале избранной (избранных) вами строки (строк) с нужными локалями. Вы можете раскомментировать больше строк, чем просто строка с американским английским языком (English (US)), одновременно выбирая свою кодировку (предпочтительно {{ic|UTF-8}}):<br />
<br />
{{hc|# nano /etc/locale.gen|<br />
en_US.UTF-8 UTF-8<br />
ru_RU.UTF-8 UTF-8}}<br />
<br />
# locale-gen<br />
<br />
Эта команда запускается при каждом обновлении '''glibc''', генерируя локали, указанные в {{ic|/etc/locale.gen}}. Не забудьте запустить ее после правки файла {{ic|locale.gen}}<br />
<br />
* Файл {{ic|locale.conf}} по умолчанию отсутствует. Его необходимо создать, при этом достаточно указать в нем только лишь значение переменной {{ic|LANG}}. Данное значение будет использоваться по умолчанию остальными переменными. Для американского английского языка:<br />
<br />
# echo LANG=en_US.UTF-8 > /etc/locale.conf<br />
# export LANG=en_US.UTF-8<br />
<br />
Для русского языка:<br />
<br />
# echo LANG=ru_RU.UTF-8 > /etc/locale.conf<br />
# export LANG=ru_RU.UTF-8<br />
<br />
{{Note|если в начале процесса установки вы определили язык, отличный от американского английского языка, приводимая выше команда уже будет выглядеть так:<br />
# echo LANG<nowiki>=</nowiki>ru_RU.UTF-8 > /etc/locale.conf<br />
# export LANG<nowiki>=</nowiki>ru_RU.UTF-8<br />
}}<br />
<br />
Для использования других переменных {{ic|LC_*}}, сначала выполните {{ic|locale}}, чтобы увидеть доступные опции. Дополнительные сведения могут быть получены [[Locale#Setting_system-wide_locale|здесь]].<br />
<br />
{{Warning|Использовать переменную {{ic|LC_ALL}} категорически не рекомендуется, так как она изменяет значение всех остальных переменных.}}<br />
<br />
====Консольный шрифт и раскладка клавиатуры====<br />
<br />
Если вы выбрали раскладку клавиатуры на [[#Изменение_языка|начальной]] стадии процесса установки, загрузите её вновь точно таким же образом, поскольку рабочее окружение изменилось. Например:<br />
<br />
# loadkeys ''ru''<br />
# setfont cyr-sun16<br />
<br />
Чтобы эти настройки сохранились после перезагрузки, отредактируте файл {{ic|vconsole.conf}}:<br />
<br />
{{hc|# nano /etc/vconsole.conf|2=<br />
KEYMAP=ru<br />
FONT=cyr-sun16<br />
FONT_MAP=}}<br />
<br />
* {{ic|KEYMAP}} – имейте в виду, что эта настройка действует только для ваших TTY, а не графических оконных менеджеров или X.Org.<br />
<br />
* {{ic|FONT}} – доступны и другие консольные шрифты, расположенные в директории {{ic|/usr/share/kbd/consolefonts/}}. Значение по умолчанию (шрифт не указан) является безопаасным для системы, но некоторые символы на языках, отличных от английского, могут отображаться как белые квадраты или другие знаки. Рекомендуется изменить значение по умолчанию (для выбора шрифта {{ic|cyr-sun16}} или другого шрифта смотрите файлы {{ic|КREADME}} в указанной директории {{ic|/usr/share/kbd/consolefonts}}.<br />
<br />
* {{ic|FONT_MAP}} – определяет консольную таблицу символов при загрузке. Для уточнения деталей смотрите {{ic|man setfont}}. Значение по умолчанию (не установлено) является безопасным для системы.<br />
<br />
Смотрите [[Fonts (Русский)#Шрифт в консоли|Шрифт в консоли]] и {{ic|man vconsole.conf}} для получения дальнейшей информации.<br />
<br />
====Временная зона====<br />
<br />
Доступные временные зона и субзоны находятся в директориях {{ic|/usr/share/zoneinfo/<Zone>/<SubZone>}}.<br />
<br />
Чтобы увидеть доступные зоны (<Zone>), проверьте директорию {{ic|/usr/share/zoneinfo/}}:<br />
<br />
# ls /usr/share/zoneinfo/<br />
<br />
Таким же образом можно проверить содержимое директорий, относящихся к субзонам (<SubZone>):<br />
<br />
# ls /usr/share/zoneinfo/Europe<br />
<br />
Создайте символическую ссылку {{ic|/etc/localtime}} на файл со своей временной зоной {{ic|/usr/share/zoneinfo/<Zone>/<SubZone>}}, используя данную команду:<br />
<br />
# ln -s {{ic|/usr/share/zoneinfo/<Zone>/<SubZone>}} /etc/localtime<br />
<br />
'''Пример:'''<br />
<br />
# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime<br />
<br />
====Аппаратные часы====<br />
<br />
Установите аппаратные часы единообразно во всех используемых вами операционных системах. В противном случае, ОС могут менять значения аппаратных часов и вызывать временные сдвиги.<br />
<br />
Можно сгненерировать {{ic|/etc/adjtime}} автоматически с помощью одной из следующих команд:<br />
<br />
* '''UTC''' (рекомендуется)<br />
<br />
: {{Note|Использование [[Wikipedia:Coordinated Universal Time|UTC]] для аппаратных часов не означает, что программное обеспечение будет отображать время в UTC.}}<br />
<br />
: {{bc|# hwclock --systohc --utc}}<br />
<br />
* '''localtime''' (не рекомендуется, используется по умолчанию в Windows)<br />
<br />
: {{Warning|Использование ''localtime'' может привести к ряду известных и до сих пор не исправленных ошибок. Тем не менее, не планируется отказаться от поддержки ''localtime''.}}<br />
<br />
: {{bc|# hwclock --systohc --localtime}}<br />
<br />
Если у вас уже есть (или планируется использовать) двойная загрузка с Windows:<br />
<br />
* Рекомендуется: Установить обе системы (и Arch Linux, и Windows) с использованием UTC. Потребуется быстрое [[Time#UTC_in_Windows|исправление реестра]]. Кроме того, убедитесь, что Windows не будет синхронизировать время on-line, поскольку в этом случае аппаратные часы вернутся по умолчанию к ''localtime''. Если вам нужна такая функциональность (синхронизация с использованием NTP), вместо этого следует использовать [[ntpd]] на установленной системе Arch Linux.<br />
<br />
* Не рекомендуется: Установка в Arch Linux значения по ''localtime'' и остановка любых связанных с синхронизацией времени сервисов, наподобие {{ic|ntpd.service}}. Это позволит Windows корректировать значение аппаратных часов и вам нужно будет не забывать о необходимости загружаться в Windows по меньшей мере дважды в годr (весной и осенью) когда осуществляется переход от зимнего времени к летнему и наоборот ([[Wikipedia:Daylight_savings_time|DST]], если такая смена времени вновь будет введена в России). Поэтому, пожалуйста, не задавайте на форумах вопросов о том, почему ваши часы ушли на один час вперед или назад, как это случается в течение нескольких дней или недель без загрузки Windows.<br />
<br />
====Модули ядра====<br />
<br />
{{Tip|Это просто пример, вам не обязательно ему следовать. Все необходимые модули автоматически подгружаются udev, поэтому редко возникает необходимость добавить еще какой-то модуль. Добавляйте только те модули, о которых вам точно известно, что они пропущены при загрузке ядра.}}<br />
<br />
Для того, чтобы модуль ядра подгрузился во время загрузки, поместите в директорию {{ic|/etc/modules-load.d/}} файл {{ic|*.conf}} с именем используемой программы (чтобы удобнее было запомнить имя конфигурационного файла).<br />
<br />
{{hc|# nano /etc/modules-load.d/virtio-net.conf|<br />
# Load 'virtio-net.ko' at boot.<br />
<br />
virtio-net}}<br />
<br />
Если в файле {{ic|*.conf}} указан более чем один модуль, имена модулей записываются с новой строки. Хороший пример можно посмотреть [[VirtualBox#Auto-start_modules|здесь]].<br />
<br />
Пустые строки и строки, начинающиеся с символов {{ic|#}} или {{ic|;}}, игнорируются.<br />
<br />
====Имя компьютера====<br />
<br />
Добавьте свой [[Wikipedia:hostname|hostname]] (например ''arch''):<br />
<br />
# echo ''myhostname'' > /etc/hostname <br />
<br />
{{Note|Редактировать {{ic|/etc/hosts}} нет необходимости.}}<br />
<br />
===Настройка сети===<br />
<br />
Вам надо заново сконфигурировать сетевое соединение, но на этот раз во вновь установленном окружении. Порядок и условия настройки сети очень похожи на те, что описаны [[#Настройка_сети|выше]], за исключением того, что мы собираемся сделать сетевое соединение постоянным и автоматически запускаемым при загрузке системы.<br />
<br />
{{Note|Для получения более подробной информации о конфигурации сети, посетите страницы [[Configuring Network (Русский)]] и [[Wireless Setup]].}}<br />
<br />
====Проводное соединение====<br />
<br />
; Динамический IP<br />
<br />
Если у вас только одно фиксированное проводное подключение к сети, вам необходим сервис управления сетью, доступ к которому просто получить с помощью сервиса {{ic|dhcpcd}}, где <interface> ваше проводное соединение:<br />
<br />
# systemctl enable dhcpcd@<interface>.service<br />
<br />
{{Warning|1={{ic|systemd}} теперь [https://bbs.archlinux.org/viewtopic.php?id=156375 переименовывает] сетевые соединения. Более того, {{ic|dhcpcd@.service}} всегда [https://bbs.archlinux.org/viewtopic.php?pid=1218527#p1218527 создает] символическую ссылку {{ic|dhcpcd@eth0.service}}, что бы вы ни поставли вместо {{ic|<interface>}}.}}<br />
<br />
Чтобы исправить это, скопируйте {{ic|dhcpcd@.service}} в /etc/systemd/system/ и отредактируйте строку Alias= для вашего правильного {{ic|<interface>}} или удалите ее и замените на WantedBy=multi-user.target<br />
# cp /usr/share/lib/system/dhcpcd@.service /etc/systemd/system/<br />
# nano /etc/systemd/system/dhcpcd@.service<br />
<br />
В качестве альтернативного варианта вы можете использовать инструмент {{ic|net-auto-wired}} из пакета {{Pkg|netcfg}}, который корректно создает подключение к новым сетям:<br />
<br />
Установите {{Pkg|ifplugd}}, который требуется для {{ic|net-auto-wired}}:<br />
<br />
# pacman -S ifplugd<br />
<br />
Установите dhcp профиль и включите сервис {{ic|net-auto-wired}}:<br />
<br />
# cd /etc/network.d<br />
# ln -s examples/ethernet-dhcp .<br />
# systemctl enable net-auto-wired.service<br />
<br />
; Статический IP<br />
Установите {{Pkg|ifplugd}}, который требуется для {{ic|net-auto-wired}}:<br />
<br />
# pacman -S ifplugd<br />
<br />
Установите пакет {{Pkg|netcfg}} (если вы еще не сделали этого):<br />
<br />
# pacman -S netcfg<br />
<br />
Скопируйте образец профиля из {{ic|/etc/network.d/examples}} в {{ic|/etc/network.d}}:<br />
<br />
# cd /etc/network.d<br />
# cp examples/ethernet-static .<br />
<br />
При необходимости, настройте профиль:<br />
<br />
# nano ethernet-static<br />
<br />
Измените имя сетевого интерфейса в {{ic|/etc/conf.d/netcfg}} так как скорее всего это не eth0. Вы можете узнать больше об именовании в предупреждении выше.<br />
<br />
{{ic|<nowiki>WIRED_INTERFACE="<interface>"</nowiki>}}<br />
<br />
Сделайте доступным сервис {{ic|net-auto-wired}}:<br />
<br />
# systemctl enable net-auto-wired.service<br />
<br />
====Беспроводное соединение====<br />
<br />
Для настройки и управления профилями беспроводных соединений вам необходимо установить дополнительные программы, такие, как [[netcfg]].<br />
<br />
Также популярные программы - [[NetworkManager]] и [[Wicd]].<br />
<br />
* Установите требуемые пакеты:<br />
<br />
# pacman -S wireless_tools wpa_supplicant wpa_actiond netcfg dialog<br />
<br />
Если вашему адаптеру беспроводной сети требуется проприетарная прошивка (как описано выше в секции [[#Настройка_беспроводного_соединения|Настройка сети]], а также [[Wireless_Setup#Drivers_and_firmware|здесь]]), установите пакет, содержащий эту прошивку. Например:<br />
<br />
# pacman -S zd1211-firmware<br />
После окончания остальной части этой установки и перезагрузки, вы можете подключиться к сети с помощью {{ic|wifi-menu <interface>}} (где <interface> является интерфейсом беспроводных чипсетов), который будет генерировать файл профиля в {{ic|/etc/network.d}} после имени SSID. Для ручной настройки также доступны шаблоны в {{ic|/etc/network.d/examples/}}<br />
<br />
# wifi-menu <interface><br />
<br />
{{Warning| Если вы используете wifi-menu, это должно быть сделано *после* перезагрузки, когда вы больше не в chroot. Этот процесс будет конфликтовать если запускается за пределами корня. Кроме того, можно просто настроить профиль сети вручную, используя шаблоны о которых уже упоминалось ранее, так что вам не придется беспокоиться об использовании WiFi-меню вообще.}} <br />
<br />
<br />
* Сделайте доступным (для автозагрузки) сервис {{ic|net-auto-wireless}}, который будет подключаться к известным сетям и корректно обрабатывать роуминг и обрывы соединения.<br />
<br />
# systemctl enable net-auto-wireless.service<br />
<br />
{{Note|Пакет [[Netcfg]] также включает {{ic|net-auto-wired}}, который может использоваться совместно с {{ic|net-auto-wireless}}.}}<br />
<br />
* Убедитесь в правильном установлении беспроводного интерфейса (обычно {{ic|wlan0}}) в файле {{ic|/etc/conf.d/netcfg}}:<br />
<br />
{{hc|# nano /etc/conf.d/netcfg|2=<br />
WIRELESS_INTERFACE="wlp3s0"}}<br />
<br />
Также возможно определить список сетевых профилей для автоматического соединения при использовании переменной {{ic|AUTO_PROFILES}} в {{ic|/etc/conf.d/netcfg}}. Если переменная {{ic|AUTO_PROFILES}} не установлена, система будет пытаться подключиться ко всем известным сетям.<br />
<br />
====xDSL (PPPoE), аналоговый модем или ISDN====<br />
<br />
Для xDSL, аналогового модема (dial-up) и ISDN, смотрите [[Direct Modem Connection]].<br />
<br />
===Конфигурирование pacman===<br />
<br />
Pacman - пакетный менеджер Arch Linux (аббревиатура от '''pac'''kage '''man'''ager). Настоятельно рекомендуется изучить его и научиться им пользоваться. Прочтите {{ic|man pacman}}, просмотрите статью [[pacman (Русский)]], или же сверьтесь со статьей [[Pacman Rosetta]] для сравнения данной утилиты с другими популярными пакетными менеджерами.<br />
<br />
Для выбора репозиториев (хранилищ пакетов) и настройки pacman, отредактируйте конфигурационный файл {{ic|pacman.conf}}:<br />
<br />
# nano /etc/pacman.conf<br />
<br />
{{Note|Выбирая репозитории, убедитесь, что раскомментировали как строки заголовка {{ic|[''repo_name'']}}, так и строку {{ic|Include}}. Если это не будет сделано, то выбранные репозитории будут пропущены! Это довольно распространенная ошибка. Ваши репозитории должны выглядеть так:<br />
<br />
{{hc|# nano /etc/pacman.conf|2=<br />
# The testing repositories are disabled by default. To enable, uncomment the<br />
# repo name header and Include lines. You can add preferred servers immediately<br />
# after the header, and they will be used before the default mirrors.<br />
<br />
#[testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#[community-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist}}<br />
}}<br />
<br />
Большинство людей используют репозитории {{ic|[core]}}, {{ic|[extra]}} и{{ic|[community]}}.<br />
<br />
Если вы устанавливаете x86_64 версию Arch Linux, то рекомендуется сделать доступным также и репозиторий {{ic|[multilib]}} (позволяющий запускать в вашей системе как 32-битные, так и 64-битные приложения):<br />
<br />
[multilib]<br />
SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
Смотрите статью [[Official Repositories (Русский)]] для получения дальнейшей информации, включая детальное описание предназначения каждого репозитория.<br />
<br />
Для установки программ, которые недоступные посредством pacman, смотрите статью [[Arch User Repository (Русский)]].<br />
<br />
===Создание начального окружения виртуального диска===<br />
<br />
{{Tip|Большинство пользователей могут пропустить данный шаг и использовать загрузочный диск по умолчанию, создаваемый {{ic|mkinitcpio.conf}}. Образ initramfs (из директории {{ic|/boot}}) уже был сгенерирован на основе данного файла на предшествующем этапе установки, когда при помощи {{ic|pacstrap}} устанавливалось ядро Linux - пакет {{Pkg|linux}}.}}<br />
<br />
Тем не менее, вам необходимо установить правильные [[Mkinitcpio#HOOKS|хуки]], если корень системы расположен на USB-диске, а также если вы используете RAID, LVM, или если директория {{ic|/usr}} расположена на отдельном разделе.<br />
<br />
Отредактируйте конфигурационный файл {{ic|/etc/mkinitcpio.conf}} и сгенерируйте заново образ initramfs командой:<br />
<br />
# mkinitcpio -p linux<br />
<br />
===Установка пароля суперпользователя и добавление пользователя===<br />
<br />
Вы можете установить пароль суперпользователя (root) командой:<br />
<br />
# passwd<br />
<br />
{{Warning|Linux - многопользовательская система. Вы не должны использовать в повседневной работе учетную запись суперпользователя root. Это более, чем нежелательно - это опасно. Используйте суперпользователя только для задач управления системой.}}<br />
<br />
Создайте обычного пользователя (без повышенных привилегий) одним из двух приведенных ниже способов. Пользователь под именем ''archie'' здесь приведен исключительно в качестве примера.<br />
<br />
====Интерактивный метод====<br />
<br />
Команда {{ic|adduser}} будет работать в интерактивном режиме:<br />
<br />
{{hc|# adduser|<br />
<br />
Login name for new user []: '''archie''' #Имя (логин) нового пользователя<br />
<br />
User ID ('UID') [ defaults to next available ]: #ID пользователя (по умолчанию следующее свободное)<br />
<br />
Initial group [ users ]: #Группа, в которую первоначально входит пользователь<br />
<br />
Additional groups (comma separated) []: '''audio,games,lp,optical,power,scanner,storage,video''' #Дополнительные группы (разделяемые запятой)<br />
<br />
Home directory [ /home/archie ]: #Домашняя директория пользователя<br />
<br />
Shell [ /bin/bash ]: #Оболочка (в примере указана оболочка Bash)<br />
<br />
Expiry date (YYYY-MM-DD) []: #Дата, когда истечет срок использования данного логина}}<br />
<br />
Как показано в приведенном примере, вам следует указать только лишь имя пользователя (еще именуемое его "логином" - {{ic|Login name}}) и дополнительные группы, в которые должен входить ваш пользователь ({{ic|Additional groups}}), а остальные поля оставить незаполненными.<br />
<br />
Список дополнительных групп {{ic|Additional groups}} из примера является типичным выбором для настольной системы, поэтому он и рекомендуется для новичков:<br />
<br />
* '''audio''' - для задач управления звуком и музыкального программного обеспечения.<br />
* '''games''' - для разрешения играм из группы games осуществлять операции записи.<br />
* '''lp''' - для управления функциями печати.<br />
* '''optical''' - для доступа к приводам оптических дисков.<br />
* '''power''' - для использования функций управления питанием (например выключение кнопкой power на корпусе).<br />
* '''scanner''' - для использования сканера.<br />
* '''storage''' - для управления устройствами хранения данных.<br />
* '''video''' - для задач, связанных с видео.<br />
<br />
Для получения дальнейшей информации о приведенных выше группах или других группах, смотрите [[Groups#User_groups|User groups]].<br />
<br />
Теперь вам будет представлен предварительный просмотр нового аккаунта, а также возможность отменить или продолжить операцию. После нажатия {{Keypress|Enter}} будет создана новая учетная запись и вам будет предложено ввести дополнительные (необязательные) сведения о новом пользователе (например, его полное имя). После этого вам будет предложено ввести пароль для данной учетной записи.<br />
<br />
====Неинтерактивный метод====<br />
<br />
# useradd -m -g users -G audio,games,lp,optical,power,scanner,storage,video -s /bin/bash archie<br />
<br />
Вам надо будет установить пароль командой {{ic|passwd}}. Для ввода дополнительной информации используйте команду {{ic|chfn}}.<br />
<br />
====Удаление учетной записи пользователя====<br />
<br />
В случае ошибки, а также если вы пожелаете удалить данный пользовательский аккаунт в связи со сменой имени (логина) или по какой-нибудь другой причине, используйте команду {{ic|userdel}} (где username - имя пользователя):<br />
<br />
# userdel -r [username]<br />
<br />
Ключ {{ic|-r}} удалит также и домашнюю директорию пользователя со всем ее содержимым, включая пользовательские настройки (так называемые "файлы с точкой" - англ. "dot" files, поскольку перед именами конфигурационных файлов и директорий в пользовательском каталоге проставляется точка, чтобы они не были видны без специальных ухищрений).<br />
<br />
====Дальнейшая информация====<br />
<br />
Обратитесь к статье [[Users and Groups]] для получения дальнейшей информации. Если вы хотите просто сменить имя пользователя (своего пользователя или любого из существующих в системе), обратитесь к странице [[Change username]]. Также ознакомьтесь со страницами руководства для команд {{ic|usermod(8)}} и {{ic|gpasswd(8)}}.<br />
<br />
===Установка и конфигурирование загрузчика===<br />
<br />
====Для материнских плат с BIOS====<br />
<br />
Для систем с BIOS существуют три загрузчика - Syslinux, GRUB и [[LILO]]. Выберите тот загрузчик, который вам наиболее удобен. Ниже будет объяснена установка только загрузчиков Syslinux и GRUB. <br />
<br />
* Syslinux ограничен в своей функциональности(в настоящее время) - он может загружать только разделы с того диска, на котором он установлен. Считается, что его конфигурационный файл легче понять. Пример конфигурации смотрите [https://bbs.archlinux.org/viewtopic.php?pid=1109328#p1109328 здесь].<br />
<br />
* GRUB функционально богаче и поддерживает более сложные сценарии. Его конфигурационный файл больше напоминает скриптовый язык и может вызвать трудности у начинающих пользователей при ручном конфигурировании. Рекомендуется, чтобы новички автоматически генерировали данный конфигурационный файл.<br />
<br />
===== Syslinux =====<br />
<br />
Установите пакет {{Pkg|syslinux}} и затем используйте скрипт {{ic|syslinux-install_update}} для автоматической ''установки'' файлов ({{ic|-i}}), обозначения ''активного'' раздела путем установки флага загрузки ({{ic|-a}}) и установки загрузочного кода ''MBR'' ({{ic|-m}}):<br />
<br />
{{Note|Если вы размечали диск как GPT, поставьте также пакет {{Pkg|gptfdisk}} - ({{ic|pacman -S gptfdisk}}), поскольку он содержит утилиту {{ic|sgdisk}}, позволяющую устанавливать специфичный для GPT флаг загрузки.}}<br />
<br />
# pacman -S syslinux<br />
# syslinux-install_update -iam<br />
<br />
Настройте {{ic|syslinux.cfg}} для указания правильного загрузочного раздела. Этот шаг жизненно необходим. Если конфигурационный файл будет содержать неверное указание раздела загрузки, то Arch Linux не загрузится. Измените {{ic|/dev/sda3}} на соответствующий загрузочный раздел вашей системы ''(если вы разбили ваш диск так, как было указано в [[#Подготовка_жесткого_диска|данном примере]], вышим загрузочным разделом является sda1)''. Сделайте тоже самое для пункта fallback.<br />
<br />
{{hc|# nano /boot/syslinux/syslinux.cfg|2=<br />
...<br />
LABEL arch<br />
...<br />
APPEND root=/dev/sda3 ro<br />
...}}<br />
<br />
Для получения более детальной информации о конфигурировании и использовании Syslinux, смотрите [[Syslinux]].<br />
<br />
===== GRUB =====<br />
<br />
{{Note|При GPT-разметке дисков на материнских платах с BIOS, GRUB нуждается в 2-мегабайтном "[[GRUB#GPT_specific_instructions|загрузочном разделе BIOS]]".}}<br />
<br />
{{Note|Пожалуйста, не пользуйтесь обозначениями разделов наподобие {{ic|/dev/sda1}} в приведенной ниже команде.}}<br />
<br />
# pacman -S grub-bios<br />
# grub-install --target=i386-pc --recheck /dev/sda<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
Хотя использование созданного вручную файла конфигурации {{ic|grub.cfg}} полностью допустимо, начинающим пользователям рекомендуется генерировать данный файл автоматически:<br />
<br />
{{Tip|Для автоматического поиска других операционных систем на вашем компьютере, перед генерированием конфигурационного файла установите {{Pkg|os-prober}}:<br />
# pacman -S os-prober<br />
}}<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
Для получения более детальной информации о конфигурировании и использовании GRUB, смотрите [[GRUB]].<br />
<br />
====Для материнских плат UEFI====<br />
<br />
Для загрузки UEFI, требуется GPT-разметка диска и разметка системы под UEFI (512 Мб или больше, FAT32, должен присутствовать тип {{ic|EF00}}) и диск должен быть смонтирован в {{ic|/boot/efi}}. Если вы с самого начала следовали указаниям данного руководства, у вас уже соблюдены все необходимые требования.<br />
<br />
Несмотря на наличие других [[UEFI_Bootloaders|загрузчиков UEFI]], рекомендуется использовать EFISTUB. Ниже приведены инструкции по установке EFISTUB и GRUB.<br />
<br />
{{Note|Syslinux не поддерживает UEFI.}}<br />
<br />
===== EFISTUB =====<br />
<br />
Используя EFISTUB, ядро Linux может выступать как свой собственный загрузчик. Вот загрузочный метод UEFI, рекомендованный разработчиками и более простой, чем {{ic|grub-efi-x86_64}}. Приведенные ниже шаги устанавливают rEFInd (форк rEFIt), чтобы обеспечить меню для ядер EFISTUB, равно как и для загрузки других загрузчиков UEFI. Вы можете пользоваться такжеe [[UEFI_Bootloaders#Using_gummiboot|gummiboot]] (не протестирован) вместо rEFInd. И rEFInd, и gummiboot могут обнаружить загрузчик Windows UEFI при двойной загрузке.<br />
<br />
1. Загрузитесь в режиме UEFI и подгрузите модуль ядра {{ic|efivars}} перед выполнением chroot:<br />
<br />
# modprobe efivars # перед выполнением chroot<br />
<br />
2. Примонтируйте раздел UEFISYS в {{ic|/mnt/boot/efi}}, выполните chroot и [[UEFI_Bootloaders#Setting_up_EFISTUB|скопируйте ядро и файлы initramfs]] в {{ic|/boot/efi}}.<br />
<br />
3. Каждый раз при обновлении ядра и файлом initramfs files в {{ic|/boot}} их необходимо обновлять и в {{ic|/boot/efi/EFI/arch}}. Этот процесс может быть автоматизирован или [[UEFI_Bootloaders#Sync_EFISTUB_Kernel_in_UEFISYS_partition_using_Systemd|с использованием systemd]] или же [[UEFI_Bootloaders#Sync_EFISTUB_Kernel_in_UEFISYS_partition_using_Incron|с использованием incron]] (для установок, не использующих systemd).<br />
<br />
4. Установите следующие пакеты:<br />
<br />
# pacman -S refind-efi-x86_64 efibootmgr<br />
<br />
5. Установите rEFInd в раздел UEFISYS (кратко из статьи [[UEFI Bootloaders#Using rEFInd]]):<br />
<br />
# mkdir -p /boot/efi/EFI/arch/refind<br />
# cp /usr/lib/refind/refindx64.efi /boot/efi/EFI/arch/refind/refindx64.efi<br />
# cp /usr/lib/refind/config/refind.conf /boot/efi/EFI/arch/refind/refind.conf<br />
# cp -r /usr/share/refind/icons /boot/efi/EFI/arch/refind/icons<br />
<br />
6. Создайте файл {{ic|refind_linux.conf}} с параметрами ядра, которые будут использоваться rEFInd:<br />
<br />
{{hc|# nano /boot/efi/EFI/arch/refind_linux.conf|2=<br />
"Boot to X" "root=/dev/sdaX ro rootfstype=ext4 systemd.unit=graphical.target"<br />
"Boot to console" "root=/dev/sdaX ro rootfstype=ext4 systemd.unit=multi-user.target"}}<br />
<br />
7. Добавьте rEFInd в загрузочное меню UEFI, используя [[UEFI#efibootmgr|efibootmgr]]. <br />
<br />
{{Warning|Использование {{ic|efibootmgr}} на компьютерах Apple Macs может повредить прошивку и потребовать перепрошивки ROM на материнской плате. Для компьютеров Mac, используйте {{AUR|mactel-boot}}, или "благословите" данное использование из самой Mac OS X.}}<br />
<br />
# efibootmgr -c -g -d /dev/sdX -p Y -w -L "Arch Linux (rEFInd)" -l '\\EFI\\arch\\refind\\refindx64.efi'<br />
<br />
{{Note|В приведенной выше команде, X и Y обозначают диски и разделы раздела UEFISYS. Например, в {{ic|/dev/sdc5}}, X обозначает "c" и Y обозначает "5".}}<br />
<br />
8. (не обязательно) Как запасный вариант, в случае, когда созданный {{ic|efibootmgr}} загрузочная запись не работает, скопируйте {{ic|refindx64.efi}} в {{ic|/boot/efi/EFI/boot/bootx64.efi}} как показано ниже:<br />
<br />
# cp -r /boot/efi/EFI/arch/refind/* /boot/efi/EFI/boot/<br />
# mv /boot/efi/EFI/boot/refindx64.efi to /boot/efi/EFI/boot/bootx64.efi<br />
<br />
===== GRUB =====<br />
<br />
{{Note|В случае системы с 32-битным EFI, как Mac до 2008 года, вместо этого установите {{ic|grub-efi-i386}} и используйте опцию {{ic|1=--target=i386-efi}}.}}<br />
<br />
# pacman -S grub-efi-x86_64 efibootmgr<br />
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
Выполните следующую команду для создания пункта меню GRUB в загрузочном меню UEFI. Смотрите [[UEFI#efibootmgr|efibootmgr]] для получения дальнейшей информации.<br />
<br />
# efibootmgr -c -g -d /dev/sdX -p Y -w -L "Arch Linux (GRUB)" -l '\\EFI\\arch_grub\\grubx64.efi'<br />
<br />
Хотя использование созданного вручную файла конфигурации {{ic|grub.cfg}} полностью допустимо, начинающим пользователям рекомендуется генерировать данный файл автоматически:<br />
<br />
{{Tip|Для автоматического поиска других операционных систем на вашем компьютере, перед генерированием конфигурационного файла установите {{Pkg|os-prober}}:<br />
# pacman -S os-prober<br />
}}<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
Для получения более детальной информации о конфигурировании и использовании GRUB, смотрите [[GRUB]].<br />
<br />
===Обновление системы===<br />
<br />
{{Warning|1=Обновление системы каждый раз должно выполняться c осторожностью. Очень важно прочитать и понять [https://bbs.archlinux.org/viewtopic.php?id=57205 эти правила (англ.)], прежде чем продолжить.}}<br />
<br />
Часто разработчики предоставляют важную информацию о требованиях к конфигурации и изменениях с указанием известных проблем. От пользователя Arch Linux ожидается, что он обратит внимание на данные сведения перед выполнением обновления:<br />
<br />
* [http://archlinux.org.ru/ Новости на главной странице Arch]. Если вы не прочитали их перед обновлением и затем обнаружили ошибку, проверьте раздел новостей ''до'' того, как зададите вопрос на форуме!<br />
<br />
* [https://archlinux.org/pipermail/arch-announce/ списки рассылки (англ.)].<br />
<br />
Синхронизуйте и обновите базу данных пакетов, выполните обновление системы в целом командой:<br />
<br />
# pacman -Syu<br />
<br />
Или, что то же самое:<br />
<br />
# pacman --sync --refresh --sysupgrade<br />
<br />
Если в этот момент вам будет предложено обновить pacman, согласитесь, нажав клавишу {{Keypress|Y}}, а по окончании обновления установщика повторите команду {{ic|pacman -Syu}}.<br />
<br />
{{Note|Иногда изменения в конфигурации могут потребовать от пользователя определенных действий в процессе обновления; читайте вывод программы pacman для получения соответствующей информации. Смотрите статью [[Pacnew and Pacsave Files]] для получения более подробной информации.}}<br />
<br />
{{Note|Перезагрузитесь, если обновили пакет ядра {{Pkg|linux}}.}}<br />
<br />
Имейте в виду, что дистрибутив Arch придерживается модели '''rolling release'''. Это означает, что пользователю не придется переустановить или выполнять сложную пересборку системы для обновления её до новейшей версии. Периодическое использование команды {{ic|pacman -Syu}} (с учетом приведенных выше предупреждений) позволяет сохранять всю систему в актуальном состоянии и на переднем крае. По итогам этого обновления будет получена система с текущими версиями всех пакетов.<br />
<br />
Смотрите раздел [[FAQ_(Русский)#Управление пакетами|Управление пакетами]] статьи [[FAQ (Русский)]] для получения ответов на вопросы, касающиеся обновления системы и управления пакетами.<br />
<br />
=====Игнорирование обновления пакетов=====<br />
<br />
Команда {{ic|pacman -Syu}} выполнит обновление вашей системы. Существует возможность защитить какой-либо пакет от обновления. Обычно это касается пакета, обновление которого может создать проблемы для стабильной работы вашей системы. <br />
<br />
В этом случае у вас есть два варианта: <br />
<br />
* Обозначить пакет/пакеты, который/которые вы не хотите обновлять, указав при обновлении ключ {{ic|--ignore}}:<br />
<br />
# pacman -Syu --ignore libass filesystem<br />
<br />
* Указать игнориуемый пакет/пакеты в конфигурационном файле {{ic|pacman.conf}}:<br />
<br />
{{hc|# nano /etc/pacman.conf|2=<br />
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup<br />
IgnorePkg = libass filesystem}}<br />
<br />
Ожидается, что опытные пользователи будут поддерживать '''всю''' систему в актуальном состоянии при помощи {{ic|pacman -Syu}}, а не обновлять отдельные пакеты. Конечно, вы можете отклониться от такого типичного использования, если пожелаете; однако, имейте в виду: в таком случае гораздо вероятнее, что программы не будут работать, как ожидается, и такие действия могут повредить всю систему. Большинство проблем возникает, когда производится выборочное обновление пакетов или нестандартная компиляция. Поэтому использование секции {{ic|IgnorePkg}} в файле {{ic|/etc/pacman.conf}} не рекомендуется и должно применяться крайне редко, и только если вы знаете, что вы делаете. Используйте {{ic|IgnorePkg}} на свой страх и риск.<br />
<br />
===Отмонтирование разделов и перезагрузка===<br />
<br />
Покиньте окружение chroot:<br />
<br />
# exit<br />
<br />
Так как разделы были примонтированы в {{ic|/mnt}}, мы используем следующую команду, чтобы отмонитровать их:<br />
<br />
# umount /mnt/{boot,home,}<br />
<br />
Перезагрузите компьютер:<br />
<br />
# reboot<br />
<br />
{{Tip|Не забудьте вынуть установочный диск из привода, иначе вы снова попадете в установщик системы.}}<noinclude><br />
{{Beginners' Guide navigation (Русский)}}</noinclude></div>
Vadik
https://wiki.archlinux.org/index.php?title=Beginners%27_Guide/Installation_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=251663
Beginners' Guide/Installation (Русский)
2013-03-23T11:47:17Z
<p>Vadik: /* Имя компьютера */</p>
<hr />
<div><noinclude><br />
[[Category:Русский]]<br />
[[da:Beginners' Guide/Installation]]<br />
[[en:Beginners' Guide/Installation]]<br />
[[es:Beginners' Guide/Installation]]<br />
[[hr:Beginners' Guide/Installation]]<br />
[[hu:Beginners' Guide/Installation]]<br />
[[it:Beginners' Guide/Installation]]<br />
[[ko:Beginners' Guide/Installation]]<br />
[[nl:Beginners' Guide/Installatie]]<br />
[[pt:Beginners' Guide/Installation]]<br />
[[sr:Beginners' Guide/Installation]]<br />
[[zh-CN:Beginners' Guide/Installation]]<br />
{{Note| Это часть более обширной статьи '''[[Beginners' Guide_(Русский)|Руководство для новичков]]'''.}}<br />
</noinclude><br />
<br />
==Установка==<br />
<br />
Теперь вы видите приглашение командной строки от имени пользователя root.<br />
<br />
====Изменение языка====<br />
<br />
{{Tip|Эти действия выполнять не обязательно, если вам не нужно вносить записи в конфигурационные файлы на русском языке, или же использовать отличные от стандартных английских символы при установлении пароля Wi-Fi, а также получать системные сообщения на родном языке (например, сообщения об ошибках).}}<br />
<br />
По умолчанию, раскладка клавиатуры установлена в {{ic|us}}. Если вам нужна не раскладка, отличная от американской ([[Wikipedia:File:KB_United_States-NoAltGr.svg|US]]), как, впрочем, и предполагается для русскоязычного пользователя, выполните:<br />
<br />
# loadkeys ''layout''<br />
<br />
...где ''layout'' может быть {{ic|ru}} (для русской раскладки), {{ic|ua}} (для украинской) и др. Другие раскладки можно найти в {{ic|/usr/share/kbd/keymaps/}} (можно не указывать полный путь и расширение файла с раскладкой при использовании команды loadkeys). См. соответствующий список раскладок [[KEYMAP#Keyboard_layouts|здесь]].<br />
<br />
Шрифт также должен быть изменен, поскольку большинство языков используют больше символов, чем 26 букв [[Wikipedia:English_alphabet|английского алфавита]]. В противном случае некоторые символы, отличные от стандартных английских, могут отображаться как белые квадраты или другие знаки. Обратите внимание, что наименование шрифта чувствительно к регистру, поэтому, пожалуйста, введите его ''точно'' так, как вы его видите, например:<br />
<br />
# setfont cyr-sun16<br />
<br />
Другие шрифты, в том числе кириллические, можно найти в {{ic|/usr/share/kbd/consolefonts}}.<br />
<br />
По умолчанию языком системы является английский (US/США). Если вы хотите изменить настройки языка, используемые в процессе установки ''(русский, в данном примере)'', удалите символ комментария {{ic|#}} перед нужной вам [http://www.greendesktiny.com/support/knowledgebase_detail.php?ref=EUH-483 локалью] в файле {{ic|/etc/locale.gen}}, наряду с английской локалью (US). Пожалуйста, выбирайте юникодовскую локаль {{ic|UTF-8}}.<br />
<br />
Используйте клавиши {{Keypress|Ctrl+X}} для выхода, когда же вам будет предложено сохранить изменения, нажмите {{Keypress|Y}} и {{Keypress|Enter}} для сохранения файла под тем же именем.<br />
<br />
{{hc|# nano /etc/locale.gen|<br />
en_US.UTF-8 UTF-8<br />
ru_RU.UTF-8 UTF-8}}<br />
<br />
# locale-gen<br />
# export LANG=ru_RU.UTF-8<br />
<br />
Помните, раскладка переключается установленным для нее и неизменяемым сочетанием клавиш (для {{ic|ru}} - {{Keypress|LCtrl+LShift}}).<br />
<br />
===Настройка сети===<br />
<br />
{{Warning| udev теперь не присваивает имена сетевых интерфейсов по схеме wlanX и ethX. Если вы пришли с другого дистрибутива или переустанавливаете Arch и не осведомлены о новом стиле именования интерфейсов, пожалуйста не думайте что Ваше беспроводное соединение имеет имя wlan0, или проводное соединение имеет имя eth0. Вы можете использовать утилиту "ip" для того чтобы узнать имена интерфейсов.}}<br />
<br />
Начиная с релиза systemd-197's и далее, udev теперь назначае предсказуемое, стабильное имя сети которое отличается от привычного именования (wlan0, wlan1, и т.д.). Эти имена интерфейсов гарантированно сохраняются и после перезагрузки, которые решают проблему отсутствия предсказуемости назначения имени сетевого интерфейса. Для получения дополнительной информации о том, почему это было необходимо, читайте http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames .<br />
<br />
Сетевой демон {{ic|dhcpcd}} стартует при загрузке автоматически и попытается подключиться к проводному соединению, если оно доступно. Попробуйте пропинговать какой-нибудь сайт.<br />
<br />
{{hc|# ping -c 3 ya.ru|2=<br />
PING ya.ru (93.158.134.203) 56(84) bytes of data.<br />
64 bytes from www.yandex.ru (93.158.134.203): icmp_req=1 ttl=54 time=62.4 ms<br />
64 bytes from www.yandex.ru (93.158.134.203): icmp_req=2 ttl=54 time=63.0 ms<br />
64 bytes from www.yandex.ru (93.158.134.203): icmp_req=3 ttl=54 time=62.4 ms<br />
<br />
--- ya.ru ping statistics ---<br />
3 packets transmitted, 3 received, 0% packet loss, time 2002ms<br />
rtt min/avg/max/mdev = 62.423/62.623/63.009/0.273 ms<br />
}}<br />
<br />
Если вместо этого вы увидели ошибку {{ic|ping: unknown host}}, Вам необходимо настроить соединение в ручную как описано ниже<br />
<br />
В противном случае переходите к [[#Prepare the storage drive|Prepare the storage drive]].<br />
<br />
====Настройка проводного соединения====<br />
<br />
Выполните эту процедуру, если вам нужно установить проводное соединение через статический IP адрес.<br />
Во-первых, определите название вашего интерфейса.<br />
{{hc|# ip link|<br />
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT <br />
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br />
2: enp2s0f0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000<br />
link/ether 00:11:25:31:69:20 brd ff:ff:ff:ff:ff:ff<br />
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000<br />
link/ether 01:02:03:04:05:06 brd ff:ff:ff:ff:ff:ff}}<br />
<br />
В этом примере сетевой интерфейсом Ethernet является enp2s0f0. Если вы не уверены, что ваш Ethernet интерфейс может начинаться с буквы "e", и вряд ли будет "lo" или начинаться с "w". Вы также можете использовать iwconfig и посмотреть, какие интерфейсы не являются беспроводными:<br />
<br />
<br />
{{hc|# iwconfig|2=<br />
enp2s0f0 no wireless extensions.<br />
wlp3s0 IEEE 802.11bgn ESSID:"NETGEAR97" <br />
Mode:Managed Frequency:2.427 GHz Access Point: 2C:B0:5D:9C:72:BF <br />
Bit Rate=65 Mb/s Tx-Power=16 dBm <br />
Retry long limit:7 RTS thr:off Fragment thr:off<br />
Power Management:on<br />
Link Quality=61/70 Signal level=-49 dBm <br />
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0<br />
Tx excessive retries:0 Invalid misc:430 Missed beacon:0<br />
lo no wireless extensions.}}<br />
<br />
В этом примере, ни enp2s0f0 ни lo не имеют беспроводных дополнений, то есть enp2s0f0 наш интерфейс Ethernet.<br />
<br />
Вам необходимо знать следующие настройки:<br />
<br />
* Ваш статический IP адрес.<br />
* Маска сети.<br />
* Широковещательный адрес<br />
* Ваш шлюз.<br />
* Адреса ваших DNS серверов.<br />
* Доменное имя.<br />
<br />
Поднимите сетевое соединение, например, для {{ic|enp2s0f0}}:<br />
<br />
# ip link set enp2s0f0 up<br />
<br />
Добавьте адрес:<br />
<br />
# ip addr add <ip address>/<subnetmask> dev <interface><br />
<br />
Например:<br />
<br />
# ip addr add 192.168.1.2/24 dev enp2s0f0<br />
<br />
Для дополнительной настройки обратитесь к {{ic|man ip}}.<br />
<br />
Добавьте ваш шлюз как показано ниже, вставив IP-адрес своего шлюза:<br />
<br />
# ip route add default via <ip address><br />
<br />
Например:<br />
<br />
# ip route add default via 192.168.1.1<br />
<br />
Отредактируйте {{ic|resolv.conf}}, сменив адреса ваших DNS серверов и доменное имя:<br />
<br />
{{hc|# nano /etc/resolv.conf|<br />
nameserver 61.23.173.5<br />
nameserver 61.95.849.8<br />
search example.com}}<br />
<br />
{{Note|Сейчас у вас может быть включено максимум 3 строки {{ic|nameserver}}.}}<br />
<br />
Теперь у вас должно появиться работающее сетевое соединение. Если этого не произошло, обратитесь к странице [[Configuring Network (Русский)]].<br />
<br />
====Настройка беспроводного соединения====<br />
<br />
Следуйте указанной процедуре, если вам в процессе установки необходимо беспроводное соединение.<br />
Если вы в первый раз уставливаете Arch Linux, вы будете удивлены что названия беспроводных интерфейсов теперь не именуются по схеме "wlanX". Не паникуйте, используйте {{ic|iwconfig}} чтобы узнать имя вашего беспроводного соединения.<br />
<br />
Драйверы и утилиты для настройки беспроводного соединения теперь доступны на установочном диске. Для успешной настройки имеет большое значение хорошее представление о собственном оборудовании для беспроводных сетей, . Учтите, что ''описываемый процесс настройки'' действителен только ''на время установки в live-системе''. Вам нужно будет повторить его уже ''в установленной системе после загрузки в нее''.<br />
<br />
Имейте также в виду, что настройка беспроводного соединения необязательна для установки системы, если во время установки такое соединение не доступно. Функциональность, обеспечиваемая беспроводным соединением, всегда может быть добавлена позже.<br />
<br />
{{Note|Данный пример использует {{ic|wlp3s0}} в качестве имени интерфейса и {{ic|linksys}} для ESSID. Не забудьте изменить эти настройки применительно к вашей ситуации.}}<br />
<br />
Основные этапы:<br />
* (необязательно) Определите используемое беспроводное оборудование:<br />
<br />
# lspci | grep -i net<br />
или же при использовании USB-адаптера:<br />
<br />
# lsusb<br />
<br />
* Удостоверьтесь командой {{ic|/usr/sbin/iwconfig}}, что udev загрузил нужный драйвер, который создал беспроводный интерфейс:<br />
<br />
{{Note|Если вы не увидели аналогичный вывод, значит драйвер для вашего беспроводного оборудования не был загружен. В этом случае вы должны загрузить драйвер самостоятельно. Обратитесь к статье [[Wireless Setup]] для получения дополнительной информации.}}<br />
<br />
{{hc|# iwconfig|2=<br />
enp2s0f0 no wireless extensions.<br />
wlp3s0 IEEE 802.11bgn ESSID:"NETGEAR97" <br />
Mode:Managed Frequency:2.427 GHz Access Point: 2C:B0:5D:9C:72:BF <br />
Bit Rate=65 Mb/s Tx-Power=16 dBm <br />
Retry long limit:7 RTS thr:off Fragment thr:off<br />
Power Management:on<br />
Link Quality=61/70 Signal level=-49 dBm <br />
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0<br />
Tx excessive retries:0 Invalid misc:430 Missed beacon:0<br />
lo no wireless extensions.}}<br />
<br />
В этом примере {{ic|wlp3s0}} - имя беспроводного интерфейса. <br />
<br />
* Поднимите интерфейс:<br />
<br />
# ip link set wlp3s0 up<br />
<br />
Некоторое беспроводное оборудование в дополнение к драйверу требует также загрузки проприетарной прошивки. В этом случае вы, скорее всего, увидите такое сообщение:<br />
<br />
{{hc|# ip link set wlp3s0 up|<br />
SIOCSIFFLAGS: No such file or directory}}<br />
<br />
Если вы не уверены в необходимости проприетарной прошивки для вашего оборудования, выполните команду {{ic|/usr/bin/dmesg}} для того, чтобы увидеть сообщения ядра системы, где должна быть строка с требованием загрузить прошивку. <br />
<br />
Вот пример для чипсета Intel:<br />
<br />
{{hc|# dmesg <nowiki>|</nowiki> grep firmware|<br />
firmware: requesting iwlwifi-5000-1.ucode}}<br />
<br />
Если подобного сообщения нет, значит, ваше оборудование не требует загрузки прошивки.<br />
<br />
{{Note|Прошивки для беспроводного оборудования во время установки расположены в директории {{ic|/usr/lib/firmware}}, ''но должны быть установлены явным образом в новую систему на этапе выбора пакетов!'' Процесс установки пакетов описан ниже в этом руководстве. Убедитесь, что вы устанавливаете как драйвера, так и прошивки для вашего беспроводного оборудования. Прочтите статью [[Wireless Setup]], если вы не уверены насчет прошивки, требуемой для Вашего оборудования. Это типичная ошибка.}}<br />
<br />
Наконец, используйте интерактивное меню для установки подключения по Wi-Fi, предлагаемое пакетом {{pkg|netcfg}}:<br />
<br />
# wifi-menu wlp3s0<br />
<br />
Теперь у вас должно появиться работающее сетевое соединение. Если этого не произошло, обратитесь к странице [[Wireless Setup]].<br />
<br />
====xDSL (PPPoE), аналоговый модем или ISDN====<br />
<br />
Если у вас роутер в режиме моста, выполните:<br />
<br />
# pppoe-setup<br />
<br />
* Введите свое имя (логин), выданный провайдером.<br />
* Нажмите {{Keypress|Enter}} для "eth0".<br />
* Нажмите {{Keypress|Enter}} для выбора опции "no", так что эта настройка останется постоянной.<br />
* Нажмите {{ic|server}} (выбор в большинстве случаев).<br />
* Нажмите {{Keypress|1}} для брандмауэра.<br />
* Введите пароль, выданный провайдером.<br />
* В конце нажмите {{Keypress|y}}.<br />
<br />
Для использования этих настроек и подключения к провайдеру, выполните:<br />
<br />
# pppoe-start<br />
<br />
Вам также может потребоваться настроить свой конфигурационный файл {{ic|resolv.conf}}:<br />
<br />
# echo nameserver 8.8.8.8 > /etc/resolv.conf<br />
<br />
Для аналогового модема (dial-up) и ISDN, см. [[Direct Modem Connection]].<br />
<br />
====Использование прокси-сервера====<br />
<br />
Если вы используете прокси-сервер, вам необходимо экспортировать переменные среды {{ic|http_proxy}} и {{ic|ftp_proxy}}. '''[[Proxy|Нажмите здесь]]''' для получения информации по данной теме.<br />
<br />
{{Note|В установленной системе данные переменные должны быть указаны в файле {{ic|/etc/wgetrc}}.}}<br />
<br />
===Подготовка жесткого диска===<br />
<br />
{{Warning| Ошибка в разбиении диска на разделы может уничтожить данные. Поэтому настоятельно рекомендуется сделать резервную копию наиболее важных данных.}}<br />
Новичкам рекомендуется использовать графическую утилиту для разметки диска. Хороший пример подобной утилиты -[http://gparted.sourceforge.net/download.php GParted], запускаемый из live-дистрибутива Linux, такого как [[Wikipedia:Parted_Magic|Parted Magic]], [[Wikipedia:Ubuntu_(operating_system)|Ubuntu]], [[Wikipedia:Linux_Mint|Linux Mint]] и др. Смотрите [[Partitioning]] для получения общих сведений и убедитесь, что отформатировали разделы с файловой системой (например, '''ext4''', '''btrfs''' и др.) до перезагрузки компьютера.<br />
<br />
Если вы уже произвели разметку жесткого диска, переходите к разделу [[#Монтирование_разделов|монтированию разделов]].<br />
<br />
В противном случае, посмотрите следующий пример.<br />
<br />
====Пример====<br />
<br />
Установочный образ Arch Linux включает следующие утилиты разбиения диска:<br />
<br />
* [[Wikipedia:cfdisk|cfdisk]] – поддерживает только таблицы разделов [[MBR]].<br />
<br />
* [[Wikipedia:gdisk|gdisk]] – поддерживает только таблицы разделов [[GPT]].<br />
<br />
* [[Wikipedia:parted|parted]] – поддерживает обе таблицы разделов.<br />
<br />
Приводимый ниже пример использует утилиту '''cfdisk''', но с той же легкостью может быть использована и утилита '''gdisk''' для разделов GPT.<br />
<br />
{{Note|Если у вас материнская плата [[UEFI]], вам потребуется создать дополнительный раздел, именуемый системным разделом UEFI. Обратитесь к [[Unified_Extensible_Firmware_Interface#Create_an_UEFI_System_Partition_in_Linux|данной статье]].}}<br />
<br />
{{Note|Если вы хотите установить загрузчик GRUB в режиме BIOS-GPT, то вам потребуется создать "загрузочный раздел BIOS" размером в 2 Мб. Обратитесь к [[GRUB#GPT_specific_instructions|особым инструкциям по использованию GPT]] за дальнейшей информацией.}}<br />
<br />
{{Note|Если вы производите установку на USB-флешку, смотрите [[Installing Arch Linux on a USB key]].}}<br />
<br />
{{Note|Если вы не будете использовать двойную загрузку с Windows, то предпочтительнее использовать таблицу разделов [[GPT]] вместо [[MBR]]. Разбиение на разделы GPT может быть проведено только с использованием '''gdisk''' или '''parted'''. Прочтите статью [[GPT]] для выяснения преимуществ такого разбиения.}}<br />
<br />
# cfdisk /dev/sda<br />
<br />
Система в данном примере будет содержать корневой раздел (root) ({{ic|/}}) размером 15 Гб, раздел подкачки {{ic|swap}} в 1 Гб и домашний раздел {{ic|/home}}, занимающий всё оставшееся место.<br />
<br />
Следует особо отметить, что разбиение диска отвечает личным предпочтениям пользователя и данный пример имеет исключительно иллюстративный характер. См. [[Partitioning]].<br />
<br />
'''Root:'''<br />
<br />
* Выберите пункт New/Новый (или нажмите {{Keypress|N}}) – {{Keypress|Enter}} для Primary/Основного раздела - введите размер "15360" – {{Keypress|Enter}} для пункта Beginning/Начало – {{Keypress|Enter}} для того, чтобы сделать этот диск Bootable/Загрузочным.<br />
<br />
'''Swap:'''<br />
<br />
* Клавишей со стрелкой вниз перейдите на свободное пространство диска.<br />
* Выберите пункт New/Новый (или нажмите {{Keypress|N}}) – {{Keypress|Enter}} для Primary/Основного раздела - введите размер "1024" – {{Keypress|Enter}} для пункта Beginning/Начало.<br />
* Выберите Type/Тип (или нажмите {{Keypress|T}}) – нажмите любую клавишу, чтобы прокрутить список вниз – {{Keypress|Enter}} для выбора типа 82.<br />
<br />
'''Home:'''<br />
<br />
* Клавишей со стрелкой вниз перейдите на свободное пространство диска.<br />
* Выберите пункт New/Новый (или нажмите {{Keypress|N}}) – {{Keypress|Enter}} для Primary/Основного раздела – {{Keypress|Enter}} для использования оставшегося дискового пространства (или вы можете вручную ввести требуемый размер раздела).<br />
<br />
Вот как это должно выглядеть:<br />
<br />
Name Flags Part Type FS Type [Label] Size (MB)<br />
-----------------------------------------------------------------------<br />
sda1 Boot Primary Linux 15360<br />
sda2 Primary Linux swap / Solaris 1024<br />
sda3 Primary Linux 133000*<br />
<br />
или в русскоязычном варианте:<br />
<br />
Имя Флаги Тип раздела Тип ФС [Метка] Размер (MБ)<br />
-------------------------------------------------------------------------<br />
sda1 Загрузочный Основной Linux 15360<br />
sda2 Основной Linux своп / Solaris 1024<br />
sda3 Основной Linux 133000*<br />
<br />
Прежде чем продолжить, проверьте несколько раз сделанные изменения и убедитесь что вы довольны как размерами разделов, так и раскладкой таблицы разбиения.<br />
<br />
Если захотите начать все сначала, можете просто выбрать Quit/Выход (или нажмите {{Keypress|Q}}) для выхода без сохранения изменений, а затем перезапустить cfdisk.<br />
<br />
Если вас устраивает разбивка, выберите Write/Запись (или нажмите {{Keypress|Shift+W}}), чтобы завершить разбиение и записать таблицу разделов на диск. Наберите "yes"/"да" и выберите Quit/Выход (или нажмите {{Keypress|Q}}), чтобы выйти из cfdisk без каких-либо изменений.<br />
<br />
Простого разбиения на разделы недостаточно, необходимо также явно задать [[File Systems|файловую систему]]. Для форматирования разделов с файловой системой ext4 выполните:<br />
<br />
# mkfs.ext4 /dev/sda1<br />
# mkfs.ext4 /dev/sda3<br />
<br />
Форматирование и подключение раздела подкачки:<br />
<br />
# mkswap /dev/sda2<br />
# swapon /dev/sda2<br />
<br />
===Монтирование разделов===<br />
<br />
Каждый раздел отождествляется определенным числовым суффиксом. Например, раздел {{ic|sda1}} указывает на первый раздел первого диска, в то время как {{ic|sda}} обозначает весь диск.<br />
<br />
Чтобы увидеть текущую таблицу разделов выполните команду:<br />
<br />
# lsblk /dev/sda<br />
<br />
Обратите внимание, что для установки вашей системы важен порядок монтирования разделов.<br />
<br />
Сперва монтируется корневой раздел (root) в {{ic|/mnt}}. В приводимом ниже примере (у вас могут быть отличия) это выглядит так:<br />
<br />
# mount /dev/sda1 /mnt<br />
<br />
Затем монтируется домашний ({{ic|/home}}) раздел и все остальные отдельные разделы ({{ic|/boot}}, {{ic|/var}} и др.), если они у вас имеются:<br />
<br />
# mkdir /mnt/home<br />
# mount /dev/sda3 /mnt/home<br />
<br />
В случае, если у вас имеется отдельный загрузочный ({{ic|/boot}}) раздел:<br />
<br />
# mkdir /mnt/boot<br />
# mount /dev/sda''x'' /mnt/boot<br />
<br />
Если у вас материнская плата UEFI, монтируется раздел UEFI:<br />
<br />
# mkdir /mnt/boot/efi<br />
# mount /dev/sda''x'' /mnt/boot/efi<br />
<br />
===Выбор зеркал===<br />
<br />
Зеркала перечислены в файле {{ic|/etc/pacman.d/mirrorlist}} и должны располагаться по приоритету. Перед установкой вы можете отредактировать файл {{ic|mirrorlist}}и поместите нужные зеркала на первые позиции. Копия этого файла будет установлена скриптом {{ic|pacstrap}} в вашу новую систему, так что стоит проделать эту работу.<br />
<br />
{{hc|# nano /etc/pacman.d/mirrorlist|<br />
##<br />
## Arch Linux repository mirrorlist<br />
## Sorted by mirror score from mirror status page<br />
## Generated on 2012-MM-DD<br />
##<br />
<br />
<nowiki>Server = http://mirror.example.xyz/archlinux/$repo/os/$arch</nowiki><br />
...}}<br />
<br />
* {{Keypress|Alt+6}} для копирования строки {{ic|Server}}.<br />
* {{Keypress|PageUp}} клавиша для прокрутки.<br />
* {{Keypress|Ctrl+U}}, чтобы вставить скопированное наверх часть списка.<br />
* {{Keypress|Ctrl+X}} для выхода, когда будет предложено сохранить изменения - нажмите {{Keypress|Y}} и {{Keypress|Enter}} для сохранения в файл с тем же именем.<br />
<br />
Если вы захотите, что можете сделать доступным ''только одно'' зеркало, удалив все остальные (используя {{Keypress|Ctrl+K}}), но обычно правильной идеей является использование нескольких зеркал, которые будут доступны, если первое из списка уйдет в offline.<br />
<br />
{{Tip|<br />
* Используйте генератор зеркал [https://www.archlinux.org/mirrorlist/ Mirrorlist Generator] для получения обновленного списка зеркал, доступных в вашей стране. Зеркала HTTP быстрее чем зеркала FTP из-за использования сообщений типа [[Wikipedia:Keepalive|keepalive]]. В случае с FTP, pacman каждый раз, когда он загружает пакет, будет посылать сигнал, завершающийся короткой паузой. Помните, что сгенерированный таким образом список зеркал будет содержать строки не только с серверами, но и указанием их статуса (если вы включили опцию {{ic|Use mirror status}}):<br />
<br />
## Score: 4.8, Russian Federation<br />
<nowiki>#Server = http://mirror.rol.ru/archlinux/$repo/os/$arch</nowiki><br />
<br />
Требуется раскомментировать только строки, содержащие сервера (начинающиеся с {{ic|Server}})!<br />
Чтобы узнать о других способах создания собственного списка зеркал, обратитесь к статьям [[Mirrors#Sorting_mirrors|Sorting mirrors]] и [[Reflector]]<br />
<br />
* [https://archlinux.org/mirrors/status/ Arch Linux MirrorStatus] сообщает различную информацию о зеркалах, такую, как сетевые проблемы с зеркалами, проблемы со сбором данных, последнее время синхронизации зеркал и т.д.}}<br />
{{Note|<br />
* При любом изменении списка зеркал всегда формируйте обновление списка пакетов с помощью команды {{ic|pacman -Syy}}. Такой способ рассматривается как правильный и поможет избежать головной боли. Смотрите статью [[Mirrors]] для получения дальнейшей информации.<br />
* Если вы используете устаревший установочный носитель, ваш список зеркал также, скорее всего, устарел, что может привести к проблемам с обновлением Arch Linux (см. {{Bug|22510}}). В силу этого настоятельно рекомендуется получить свежую информацию о зеркалах, как описано выше.<br />
* На [https://bbs.archlinux.org/ форумах Arch Linux] сообщалось о некоторых сетевых проблемах, мешающих pacman произвести обновление/синхронизацию репозиториев (см. [https://bbs.archlinux.org/viewtopic.php?id&#61;68944] и [https://bbs.archlinux.org/viewtopic.php?id&#61;65728]). Во время установки Arch Linux на реальную машину эти проблемы разрешались путем замены загрузчика файлов по умолчанию, используемого в pacman, альтернативным загрузчиком (см. [[Improve Pacman Performance]] для более детальной информации). В случае же установки Arch Linux в качестве гостевой машины в [[VirtualBox]], данная проблема также решалась путем использования типа подключения "Виртуальный адаптер хоста" вместо "NAT" в настройках виртуальной машины.}}<br />
<br />
===Установка базовой системы===<br />
<br />
Базовая система устанавливается с использованием скрипта [https://github.com/falconindy/arch-install-scripts/blob/master/pacstrap.in pacstrap].<br />
<br />
# pacstrap /mnt base base-devel<br />
<br />
{{Note|Если pacman не может проверить подписи ваших пакетов, убедитесь в правильной установке системного времени. Если системное время выставлено неверно (например, показывает 2010 год), срок ключей будут считаться истекшими или неверными, проверка подписей пакетов окажется неудачной и установка будет прервана. Скорректируйте системное время вручную или с использованием клиента {{Pkg|ntp}} и вновь запустите команду pacstrap. Обратитесь к странице [[Time_(Русский)|Time (Русский)]] за дальнейшей информацией о корректировке системного времени.}}<br />
<br />
* {{Grp|base}}: пакеты программного обеспечения из репозитория [core], обеспечивающие минимальное рабочее окружение.<br />
<br />
* {{Grp|base-devel}}: дополнительные утилиты из репозитория [core], такие, как {{ic|make}} и {{ic|automake}}. Большинству новичков лучше их установить сразу, так как в дальнейшем они, скорее всего, всё равно понадобятся для наращивания установленной системы. В частности, группа ''base-devel'' необходима для установки программ из [[Arch User Repository]].<br />
<br />
Таким образом, вы получили базовую систему Arch. Остальные пакеты могут быть установлены позднее с использованием [[pacman]].<br />
<br />
===Генерированиеe fstab===<br />
<br />
Сгенерируйте файл [[fstab]] приводимой ниже командой. Если вы предпочитаете использовать в данном файле UUID или метки дисков, соответственно добавьте опции {{ic|-U}} или {{ic|-L}}. Хорошей идеей станет проверка данного файла перед продолжением работы:<br />
<br />
{{Note|Если вы столкнетесь с ошибками при запуске genfstab или с ошибками, возникающими позже в процессе установки, '''не''' выполняйте команду genfstab вновь; просто отредактируйте файл fstab.}}<br />
<br />
# genfstab -p /mnt > /mnt/etc/fstab<br />
# nano /mnt/etc/fstab<br />
<br />
Только корневой раздел ({{ic|/}}) нуждается в значении {{ic|1}}, указываемом в последнем поле. Все остальные должны быть помечены или значением {{ic|2}}, или значением {{ic|0}} (см.[[Fstab#Field_definitions|Field definitions]]).<br />
<br />
Также, опция {{ic|1=data=ordered}} должна быть удалена, потому что она используется автоматически вне зависимости от того, указали вы ее или нет. Нет смысла загромождать ваш fstab.<br />
<br />
===Chroot и конфигурирование базовой системы===<br />
<br />
Затем, мы входим с помощью [[chroot]] во вновь установленную систему:<br />
<br />
# arch-chroot /mnt<br />
<br />
На этом этапе установки вам предстоит настроить основные файлы конфигурации своей базовой системы Arch Linux. Эти файлы могут быть созданы, если они не существуют, или отредактированы, если вы хотите изменить настройки по умолчанию.<br />
<br />
Внимательное следование приведенным ниже шагам и понимание сути своих действий имеет ключевое значение для правильной настройки системы.<br />
<br />
====Локализация====<br />
<br />
Локали используются '''glibc''' и другими программами или библиотеками для рендеринга текста, корректного отображения значений региональных валют, формата времени и даты, алфавитных особенностей и других специфических языковых и локальных стандартов.<br />
<br />
Необходимо отредактировать два файла: {{ic|locale.gen}} и {{ic|locale.conf}}.<br />
<br />
* Файл {{ic|locale.gen}} по умолчанию пустой (точнее, все значения в нем закомментированы) и вам потребуется удалить символ комментария {{ic|#}} в начале избранной (избранных) вами строки (строк) с нужными локалями. Вы можете раскомментировать больше строк, чем просто строка с американским английским языком (English (US)), одновременно выбирая свою кодировку (предпочтительно {{ic|UTF-8}}):<br />
<br />
{{hc|# nano /etc/locale.gen|<br />
en_US.UTF-8 UTF-8<br />
ru_RU.UTF-8 UTF-8}}<br />
<br />
# locale-gen<br />
<br />
Эта команда запускается при каждом обновлении '''glibc''', генерируя локали, указанные в {{ic|/etc/locale.gen}}. Не забудьте запустить ее после правки файла {{ic|locale.gen}}<br />
<br />
* Файл {{ic|locale.conf}} по умолчанию отсутствует. Его необходимо создать, при этом достаточно указать в нем только лишь значение переменной {{ic|LANG}}. Данное значение будет использоваться по умолчанию остальными переменными. Для американского английского языка:<br />
<br />
# echo LANG=en_US.UTF-8 > /etc/locale.conf<br />
# export LANG=en_US.UTF-8<br />
<br />
Для русского языка:<br />
<br />
# echo LANG=ru_RU.UTF-8 > /etc/locale.conf<br />
# export LANG=ru_RU.UTF-8<br />
<br />
{{Note|если в начале процесса установки вы определили язык, отличный от американского английского языка, приводимая выше команда уже будет выглядеть так:<br />
# echo LANG<nowiki>=</nowiki>ru_RU.UTF-8 > /etc/locale.conf<br />
# export LANG<nowiki>=</nowiki>ru_RU.UTF-8<br />
}}<br />
<br />
Для использования других переменных {{ic|LC_*}}, сначала выполните {{ic|locale}}, чтобы увидеть доступные опции. Дополнительные сведения могут быть получены [[Locale#Setting_system-wide_locale|здесь]].<br />
<br />
{{Warning|Использовать переменную {{ic|LC_ALL}} категорически не рекомендуется, так как она изменяет значение всех остальных переменных.}}<br />
<br />
====Консольный шрифт и раскладка клавиатуры====<br />
<br />
Если вы выбрали раскладку клавиатуры на [[#Изменение_языка|начальной]] стадии процесса установки, загрузите её вновь точно таким же образом, поскольку рабочее окружение изменилось. Например:<br />
<br />
# loadkeys ''ru''<br />
# setfont cyr-sun16<br />
<br />
Чтобы эти настройки сохранились после перезагрузки, отредактируте файл {{ic|vconsole.conf}}:<br />
<br />
{{hc|# nano /etc/vconsole.conf|2=<br />
KEYMAP=ru<br />
FONT=cyr-sun16<br />
FONT_MAP=}}<br />
<br />
* {{ic|KEYMAP}} – имейте в виду, что эта настройка действует только для ваших TTY, а не графических оконных менеджеров или X.Org.<br />
<br />
* {{ic|FONT}} – доступны и другие консольные шрифты, расположенные в директории {{ic|/usr/share/kbd/consolefonts/}}. Значение по умолчанию (шрифт не указан) является безопаасным для системы, но некоторые символы на языках, отличных от английского, могут отображаться как белые квадраты или другие знаки. Рекомендуется изменить значение по умолчанию (для выбора шрифта {{ic|cyr-sun16}} или другого шрифта смотрите файлы {{ic|КREADME}} в указанной директории {{ic|/usr/share/kbd/consolefonts}}.<br />
<br />
* {{ic|FONT_MAP}} – определяет консольную таблицу символов при загрузке. Для уточнения деталей смотрите {{ic|man setfont}}. Значение по умолчанию (не установлено) является безопасным для системы.<br />
<br />
Смотрите [[Fonts (Русский)#Шрифт в консоли|Шрифт в консоли]] и {{ic|man vconsole.conf}} для получения дальнейшей информации.<br />
<br />
====Временная зона====<br />
<br />
Доступные временные зона и субзоны находятся в директориях {{ic|/usr/share/zoneinfo/<Zone>/<SubZone>}}.<br />
<br />
Чтобы увидеть доступные зоны (<Zone>), проверьте директорию {{ic|/usr/share/zoneinfo/}}:<br />
<br />
# ls /usr/share/zoneinfo/<br />
<br />
Таким же образом можно проверить содержимое директорий, относящихся к субзонам (<SubZone>):<br />
<br />
# ls /usr/share/zoneinfo/Europe<br />
<br />
Создайте символическую ссылку {{ic|/etc/localtime}} на файл со своей временной зоной {{ic|/usr/share/zoneinfo/<Zone>/<SubZone>}}, используя данную команду:<br />
<br />
# ln -s {{ic|/usr/share/zoneinfo/<Zone>/<SubZone>}} /etc/localtime<br />
<br />
'''Пример:'''<br />
<br />
# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime<br />
<br />
====Аппаратные часы====<br />
<br />
Установите аппаратные часы единообразно во всех используемых вами операционных системах. В противном случае, ОС могут менять значения аппаратных часов и вызывать временные сдвиги.<br />
<br />
Можно сгненерировать {{ic|/etc/adjtime}} автоматически с помощью одной из следующих команд:<br />
<br />
* '''UTC''' (рекомендуется)<br />
<br />
: {{Note|Использование [[Wikipedia:Coordinated Universal Time|UTC]] для аппаратных часов не означает, что программное обеспечение будет отображать время в UTC.}}<br />
<br />
: {{bc|# hwclock --systohc --utc}}<br />
<br />
* '''localtime''' (не рекомендуется, используется по умолчанию в Windows)<br />
<br />
: {{Warning|Использование ''localtime'' может привести к ряду известных и до сих пор не исправленных ошибок. Тем не менее, не планируется отказаться от поддержки ''localtime''.}}<br />
<br />
: {{bc|# hwclock --systohc --localtime}}<br />
<br />
Если у вас уже есть (или планируется использовать) двойная загрузка с Windows:<br />
<br />
* Рекомендуется: Установить обе системы (и Arch Linux, и Windows) с использованием UTC. Потребуется быстрое [[Time#UTC_in_Windows|исправление реестра]]. Кроме того, убедитесь, что Windows не будет синхронизировать время on-line, поскольку в этом случае аппаратные часы вернутся по умолчанию к ''localtime''. Если вам нужна такая функциональность (синхронизация с использованием NTP), вместо этого следует использовать [[ntpd]] на установленной системе Arch Linux.<br />
<br />
* Не рекомендуется: Установка в Arch Linux значения по ''localtime'' и остановка любых связанных с синхронизацией времени сервисов, наподобие {{ic|ntpd.service}}. Это позволит Windows корректировать значение аппаратных часов и вам нужно будет не забывать о необходимости загружаться в Windows по меньшей мере дважды в годr (весной и осенью) когда осуществляется переход от зимнего времени к летнему и наоборот ([[Wikipedia:Daylight_savings_time|DST]], если такая смена времени вновь будет введена в России). Поэтому, пожалуйста, не задавайте на форумах вопросов о том, почему ваши часы ушли на один час вперед или назад, как это случается в течение нескольких дней или недель без загрузки Windows.<br />
<br />
====Модули ядра====<br />
<br />
{{Tip|Это просто пример, вам не обязательно ему следовать. Все необходимые модули автоматически подгружаются udev, поэтому редко возникает необходимость добавить еще какой-то модуль. Добавляйте только те модули, о которых вам точно известно, что они пропущены при загрузке ядра.}}<br />
<br />
Для того, чтобы модуль ядра подгрузился во время загрузки, поместите в директорию {{ic|/etc/modules-load.d/}} файл {{ic|*.conf}} с именем используемой программы (чтобы удобнее было запомнить имя конфигурационного файла).<br />
<br />
{{hc|# nano /etc/modules-load.d/virtio-net.conf|<br />
# Load 'virtio-net.ko' at boot.<br />
<br />
virtio-net}}<br />
<br />
Если в файле {{ic|*.conf}} указан более чем один модуль, имена модулей записываются с новой строки. Хороший пример можно посмотреть [[VirtualBox#Auto-start_modules|здесь]].<br />
<br />
Пустые строки и строки, начинающиеся с символов {{ic|#}} или {{ic|;}}, игнорируются.<br />
<br />
====Имя компьютера====<br />
<br />
Добавьте свой [[Wikipedia:hostname|hostname]] (например ''arch''):<br />
<br />
# echo '''myhostname''' > /etc/hostname <br />
<br />
{{Note|Редактировать {{ic|/etc/hosts}} нет необходимости.}}<br />
<br />
===Настройка сети===<br />
<br />
Вам надо заново сконфигурировать сетевое соединение, но на этот раз во вновь установленном окружении. Порядок и условия настройки сети очень похожи на те, что описаны [[#Настройка_сети|выше]], за исключением того, что мы собираемся сделать сетевое соединение постоянным и автоматически запускаемым при загрузке системы.<br />
<br />
{{Note|Для получения более подробной информации о конфигурации сети, посетите страницы [[Configuring Network (Русский)]] и [[Wireless Setup]].}}<br />
<br />
====Проводное соединение====<br />
<br />
; Динамический IP<br />
<br />
Если у вас только одно фиксированное проводное подключение к сети, вам необходим сервис управления сетью, доступ к которому просто получить с помощью сервиса {{ic|dhcpcd}}, где <interface> ваше проводное соединение:<br />
<br />
# systemctl enable dhcpcd@<interface>.service<br />
<br />
{{Warning|1={{ic|systemd}} теперь [https://bbs.archlinux.org/viewtopic.php?id=156375 переименовывает] сетевые соединения. Более того, {{ic|dhcpcd@.service}} всегда [https://bbs.archlinux.org/viewtopic.php?pid=1218527#p1218527 создает] символическую ссылку {{ic|dhcpcd@eth0.service}}, что бы вы ни поставли вместо {{ic|<interface>}}.}}<br />
<br />
Чтобы исправить это, скопируйте {{ic|dhcpcd@.service}} в /etc/systemd/system/ и отредактируйте строку Alias= для вашего правильного {{ic|<interface>}} или удалите ее и замените на WantedBy=multi-user.target<br />
# cp /usr/share/lib/system/dhcpcd@.service /etc/systemd/system/<br />
# nano /etc/systemd/system/dhcpcd@.service<br />
<br />
В качестве альтернативного варианта вы можете использовать инструмент {{ic|net-auto-wired}} из пакета {{Pkg|netcfg}}, который корректно создает подключение к новым сетям:<br />
<br />
Установите {{Pkg|ifplugd}}, который требуется для {{ic|net-auto-wired}}:<br />
<br />
# pacman -S ifplugd<br />
<br />
Установите dhcp профиль и включите сервис {{ic|net-auto-wired}}:<br />
<br />
# cd /etc/network.d<br />
# ln -s examples/ethernet-dhcp .<br />
# systemctl enable net-auto-wired.service<br />
<br />
; Статический IP<br />
Установите {{Pkg|ifplugd}}, который требуется для {{ic|net-auto-wired}}:<br />
<br />
# pacman -S ifplugd<br />
<br />
Установите пакет {{Pkg|netcfg}} (если вы еще не сделали этого):<br />
<br />
# pacman -S netcfg<br />
<br />
Скопируйте образец профиля из {{ic|/etc/network.d/examples}} в {{ic|/etc/network.d}}:<br />
<br />
# cd /etc/network.d<br />
# cp examples/ethernet-static .<br />
<br />
При необходимости, настройте профиль:<br />
<br />
# nano ethernet-static<br />
<br />
Измените имя сетевого интерфейса в {{ic|/etc/conf.d/netcfg}} так как скорее всего это не eth0. Вы можете узнать больше об именовании в предупреждении выше.<br />
<br />
{{ic|<nowiki>WIRED_INTERFACE="<interface>"</nowiki>}}<br />
<br />
Сделайте доступным сервис {{ic|net-auto-wired}}:<br />
<br />
# systemctl enable net-auto-wired.service<br />
<br />
====Беспроводное соединение====<br />
<br />
Для настройки и управления профилями беспроводных соединений вам необходимо установить дополнительные программы, такие, как [[netcfg]].<br />
<br />
Также популярные программы - [[NetworkManager]] и [[Wicd]].<br />
<br />
* Установите требуемые пакеты:<br />
<br />
# pacman -S wireless_tools wpa_supplicant wpa_actiond netcfg dialog<br />
<br />
Если вашему адаптеру беспроводной сети требуется проприетарная прошивка (как описано выше в секции [[#Настройка_беспроводного_соединения|Настройка сети]], а также [[Wireless_Setup#Drivers_and_firmware|здесь]]), установите пакет, содержащий эту прошивку. Например:<br />
<br />
# pacman -S zd1211-firmware<br />
После окончания остальной части этой установки и перезагрузки, вы можете подключиться к сети с помощью {{ic|wifi-menu <interface>}} (где <interface> является интерфейсом беспроводных чипсетов), который будет генерировать файл профиля в {{ic|/etc/network.d}} после имени SSID. Для ручной настройки также доступны шаблоны в {{ic|/etc/network.d/examples/}}<br />
<br />
# wifi-menu <interface><br />
<br />
{{Warning| Если вы используете wifi-menu, это должно быть сделано *после* перезагрузки, когда вы больше не в chroot. Этот процесс будет конфликтовать если запускается за пределами корня. Кроме того, можно просто настроить профиль сети вручную, используя шаблоны о которых уже упоминалось ранее, так что вам не придется беспокоиться об использовании WiFi-меню вообще.}} <br />
<br />
<br />
* Сделайте доступным (для автозагрузки) сервис {{ic|net-auto-wireless}}, который будет подключаться к известным сетям и корректно обрабатывать роуминг и обрывы соединения.<br />
<br />
# systemctl enable net-auto-wireless.service<br />
<br />
{{Note|Пакет [[Netcfg]] также включает {{ic|net-auto-wired}}, который может использоваться совместно с {{ic|net-auto-wireless}}.}}<br />
<br />
* Убедитесь в правильном установлении беспроводного интерфейса (обычно {{ic|wlan0}}) в файле {{ic|/etc/conf.d/netcfg}}:<br />
<br />
{{hc|# nano /etc/conf.d/netcfg|2=<br />
WIRELESS_INTERFACE="wlp3s0"}}<br />
<br />
Также возможно определить список сетевых профилей для автоматического соединения при использовании переменной {{ic|AUTO_PROFILES}} в {{ic|/etc/conf.d/netcfg}}. Если переменная {{ic|AUTO_PROFILES}} не установлена, система будет пытаться подключиться ко всем известным сетям.<br />
<br />
====xDSL (PPPoE), аналоговый модем или ISDN====<br />
<br />
Для xDSL, аналогового модема (dial-up) и ISDN, смотрите [[Direct Modem Connection]].<br />
<br />
===Конфигурирование pacman===<br />
<br />
Pacman - пакетный менеджер Arch Linux (аббревиатура от '''pac'''kage '''man'''ager). Настоятельно рекомендуется изучить его и научиться им пользоваться. Прочтите {{ic|man pacman}}, просмотрите статью [[pacman (Русский)]], или же сверьтесь со статьей [[Pacman Rosetta]] для сравнения данной утилиты с другими популярными пакетными менеджерами.<br />
<br />
Для выбора репозиториев (хранилищ пакетов) и настройки pacman, отредактируйте конфигурационный файл {{ic|pacman.conf}}:<br />
<br />
# nano /etc/pacman.conf<br />
<br />
{{Note|Выбирая репозитории, убедитесь, что раскомментировали как строки заголовка {{ic|[''repo_name'']}}, так и строку {{ic|Include}}. Если это не будет сделано, то выбранные репозитории будут пропущены! Это довольно распространенная ошибка. Ваши репозитории должны выглядеть так:<br />
<br />
{{hc|# nano /etc/pacman.conf|2=<br />
# The testing repositories are disabled by default. To enable, uncomment the<br />
# repo name header and Include lines. You can add preferred servers immediately<br />
# after the header, and they will be used before the default mirrors.<br />
<br />
#[testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#[community-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist}}<br />
}}<br />
<br />
Большинство людей используют репозитории {{ic|[core]}}, {{ic|[extra]}} и{{ic|[community]}}.<br />
<br />
Если вы устанавливаете x86_64 версию Arch Linux, то рекомендуется сделать доступным также и репозиторий {{ic|[multilib]}} (позволяющий запускать в вашей системе как 32-битные, так и 64-битные приложения):<br />
<br />
[multilib]<br />
SigLevel = PackageRequired<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
Смотрите статью [[Official Repositories (Русский)]] для получения дальнейшей информации, включая детальное описание предназначения каждого репозитория.<br />
<br />
Для установки программ, которые недоступные посредством pacman, смотрите статью [[Arch User Repository (Русский)]].<br />
<br />
===Создание начального окружения виртуального диска===<br />
<br />
{{Tip|Большинство пользователей могут пропустить данный шаг и использовать загрузочный диск по умолчанию, создаваемый {{ic|mkinitcpio.conf}}. Образ initramfs (из директории {{ic|/boot}}) уже был сгенерирован на основе данного файла на предшествующем этапе установки, когда при помощи {{ic|pacstrap}} устанавливалось ядро Linux - пакет {{Pkg|linux}}.}}<br />
<br />
Тем не менее, вам необходимо установить правильные [[Mkinitcpio#HOOKS|хуки]], если корень системы расположен на USB-диске, а также если вы используете RAID, LVM, или если директория {{ic|/usr}} расположена на отдельном разделе.<br />
<br />
Отредактируйте конфигурационный файл {{ic|/etc/mkinitcpio.conf}} и сгенерируйте заново образ initramfs командой:<br />
<br />
# mkinitcpio -p linux<br />
<br />
===Установка пароля суперпользователя и добавление пользователя===<br />
<br />
Вы можете установить пароль суперпользователя (root) командой:<br />
<br />
# passwd<br />
<br />
{{Warning|Linux - многопользовательская система. Вы не должны использовать в повседневной работе учетную запись суперпользователя root. Это более, чем нежелательно - это опасно. Используйте суперпользователя только для задач управления системой.}}<br />
<br />
Создайте обычного пользователя (без повышенных привилегий) одним из двух приведенных ниже способов. Пользователь под именем ''archie'' здесь приведен исключительно в качестве примера.<br />
<br />
====Интерактивный метод====<br />
<br />
Команда {{ic|adduser}} будет работать в интерактивном режиме:<br />
<br />
{{hc|# adduser|<br />
<br />
Login name for new user []: '''archie''' #Имя (логин) нового пользователя<br />
<br />
User ID ('UID') [ defaults to next available ]: #ID пользователя (по умолчанию следующее свободное)<br />
<br />
Initial group [ users ]: #Группа, в которую первоначально входит пользователь<br />
<br />
Additional groups (comma separated) []: '''audio,games,lp,optical,power,scanner,storage,video''' #Дополнительные группы (разделяемые запятой)<br />
<br />
Home directory [ /home/archie ]: #Домашняя директория пользователя<br />
<br />
Shell [ /bin/bash ]: #Оболочка (в примере указана оболочка Bash)<br />
<br />
Expiry date (YYYY-MM-DD) []: #Дата, когда истечет срок использования данного логина}}<br />
<br />
Как показано в приведенном примере, вам следует указать только лишь имя пользователя (еще именуемое его "логином" - {{ic|Login name}}) и дополнительные группы, в которые должен входить ваш пользователь ({{ic|Additional groups}}), а остальные поля оставить незаполненными.<br />
<br />
Список дополнительных групп {{ic|Additional groups}} из примера является типичным выбором для настольной системы, поэтому он и рекомендуется для новичков:<br />
<br />
* '''audio''' - для задач управления звуком и музыкального программного обеспечения.<br />
* '''games''' - для разрешения играм из группы games осуществлять операции записи.<br />
* '''lp''' - для управления функциями печати.<br />
* '''optical''' - для доступа к приводам оптических дисков.<br />
* '''power''' - для использования функций управления питанием (например выключение кнопкой power на корпусе).<br />
* '''scanner''' - для использования сканера.<br />
* '''storage''' - для управления устройствами хранения данных.<br />
* '''video''' - для задач, связанных с видео.<br />
<br />
Для получения дальнейшей информации о приведенных выше группах или других группах, смотрите [[Groups#User_groups|User groups]].<br />
<br />
Теперь вам будет представлен предварительный просмотр нового аккаунта, а также возможность отменить или продолжить операцию. После нажатия {{Keypress|Enter}} будет создана новая учетная запись и вам будет предложено ввести дополнительные (необязательные) сведения о новом пользователе (например, его полное имя). После этого вам будет предложено ввести пароль для данной учетной записи.<br />
<br />
====Неинтерактивный метод====<br />
<br />
# useradd -m -g users -G audio,games,lp,optical,power,scanner,storage,video -s /bin/bash archie<br />
<br />
Вам надо будет установить пароль командой {{ic|passwd}}. Для ввода дополнительной информации используйте команду {{ic|chfn}}.<br />
<br />
====Удаление учетной записи пользователя====<br />
<br />
В случае ошибки, а также если вы пожелаете удалить данный пользовательский аккаунт в связи со сменой имени (логина) или по какой-нибудь другой причине, используйте команду {{ic|userdel}} (где username - имя пользователя):<br />
<br />
# userdel -r [username]<br />
<br />
Ключ {{ic|-r}} удалит также и домашнюю директорию пользователя со всем ее содержимым, включая пользовательские настройки (так называемые "файлы с точкой" - англ. "dot" files, поскольку перед именами конфигурационных файлов и директорий в пользовательском каталоге проставляется точка, чтобы они не были видны без специальных ухищрений).<br />
<br />
====Дальнейшая информация====<br />
<br />
Обратитесь к статье [[Users and Groups]] для получения дальнейшей информации. Если вы хотите просто сменить имя пользователя (своего пользователя или любого из существующих в системе), обратитесь к странице [[Change username]]. Также ознакомьтесь со страницами руководства для команд {{ic|usermod(8)}} и {{ic|gpasswd(8)}}.<br />
<br />
===Установка и конфигурирование загрузчика===<br />
<br />
====Для материнских плат с BIOS====<br />
<br />
Для систем с BIOS существуют три загрузчика - Syslinux, GRUB и [[LILO]]. Выберите тот загрузчик, который вам наиболее удобен. Ниже будет объяснена установка только загрузчиков Syslinux и GRUB. <br />
<br />
* Syslinux ограничен в своей функциональности(в настоящее время) - он может загружать только разделы с того диска, на котором он установлен. Считается, что его конфигурационный файл легче понять. Пример конфигурации смотрите [https://bbs.archlinux.org/viewtopic.php?pid=1109328#p1109328 здесь].<br />
<br />
* GRUB функционально богаче и поддерживает более сложные сценарии. Его конфигурационный файл больше напоминает скриптовый язык и может вызвать трудности у начинающих пользователей при ручном конфигурировании. Рекомендуется, чтобы новички автоматически генерировали данный конфигурационный файл.<br />
<br />
===== Syslinux =====<br />
<br />
Установите пакет {{Pkg|syslinux}} и затем используйте скрипт {{ic|syslinux-install_update}} для автоматической ''установки'' файлов ({{ic|-i}}), обозначения ''активного'' раздела путем установки флага загрузки ({{ic|-a}}) и установки загрузочного кода ''MBR'' ({{ic|-m}}):<br />
<br />
{{Note|Если вы размечали диск как GPT, поставьте также пакет {{Pkg|gptfdisk}} - ({{ic|pacman -S gptfdisk}}), поскольку он содержит утилиту {{ic|sgdisk}}, позволяющую устанавливать специфичный для GPT флаг загрузки.}}<br />
<br />
# pacman -S syslinux<br />
# syslinux-install_update -iam<br />
<br />
Настройте {{ic|syslinux.cfg}} для указания правильного загрузочного раздела. Этот шаг жизненно необходим. Если конфигурационный файл будет содержать неверное указание раздела загрузки, то Arch Linux не загрузится. Измените {{ic|/dev/sda3}} на соответствующий загрузочный раздел вашей системы ''(если вы разбили ваш диск так, как было указано в [[#Подготовка_жесткого_диска|данном примере]], вышим загрузочным разделом является sda1)''. Сделайте тоже самое для пункта fallback.<br />
<br />
{{hc|# nano /boot/syslinux/syslinux.cfg|2=<br />
...<br />
LABEL arch<br />
...<br />
APPEND root=/dev/sda3 ro<br />
...}}<br />
<br />
Для получения более детальной информации о конфигурировании и использовании Syslinux, смотрите [[Syslinux]].<br />
<br />
===== GRUB =====<br />
<br />
{{Note|При GPT-разметке дисков на материнских платах с BIOS, GRUB нуждается в 2-мегабайтном "[[GRUB#GPT_specific_instructions|загрузочном разделе BIOS]]".}}<br />
<br />
{{Note|Пожалуйста, не пользуйтесь обозначениями разделов наподобие {{ic|/dev/sda1}} в приведенной ниже команде.}}<br />
<br />
# pacman -S grub-bios<br />
# grub-install --target=i386-pc --recheck /dev/sda<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
Хотя использование созданного вручную файла конфигурации {{ic|grub.cfg}} полностью допустимо, начинающим пользователям рекомендуется генерировать данный файл автоматически:<br />
<br />
{{Tip|Для автоматического поиска других операционных систем на вашем компьютере, перед генерированием конфигурационного файла установите {{Pkg|os-prober}}:<br />
# pacman -S os-prober<br />
}}<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
Для получения более детальной информации о конфигурировании и использовании GRUB, смотрите [[GRUB]].<br />
<br />
====Для материнских плат UEFI====<br />
<br />
Для загрузки UEFI, требуется GPT-разметка диска и разметка системы под UEFI (512 Мб или больше, FAT32, должен присутствовать тип {{ic|EF00}}) и диск должен быть смонтирован в {{ic|/boot/efi}}. Если вы с самого начала следовали указаниям данного руководства, у вас уже соблюдены все необходимые требования.<br />
<br />
Несмотря на наличие других [[UEFI_Bootloaders|загрузчиков UEFI]], рекомендуется использовать EFISTUB. Ниже приведены инструкции по установке EFISTUB и GRUB.<br />
<br />
{{Note|Syslinux не поддерживает UEFI.}}<br />
<br />
===== EFISTUB =====<br />
<br />
Используя EFISTUB, ядро Linux может выступать как свой собственный загрузчик. Вот загрузочный метод UEFI, рекомендованный разработчиками и более простой, чем {{ic|grub-efi-x86_64}}. Приведенные ниже шаги устанавливают rEFInd (форк rEFIt), чтобы обеспечить меню для ядер EFISTUB, равно как и для загрузки других загрузчиков UEFI. Вы можете пользоваться такжеe [[UEFI_Bootloaders#Using_gummiboot|gummiboot]] (не протестирован) вместо rEFInd. И rEFInd, и gummiboot могут обнаружить загрузчик Windows UEFI при двойной загрузке.<br />
<br />
1. Загрузитесь в режиме UEFI и подгрузите модуль ядра {{ic|efivars}} перед выполнением chroot:<br />
<br />
# modprobe efivars # перед выполнением chroot<br />
<br />
2. Примонтируйте раздел UEFISYS в {{ic|/mnt/boot/efi}}, выполните chroot и [[UEFI_Bootloaders#Setting_up_EFISTUB|скопируйте ядро и файлы initramfs]] в {{ic|/boot/efi}}.<br />
<br />
3. Каждый раз при обновлении ядра и файлом initramfs files в {{ic|/boot}} их необходимо обновлять и в {{ic|/boot/efi/EFI/arch}}. Этот процесс может быть автоматизирован или [[UEFI_Bootloaders#Sync_EFISTUB_Kernel_in_UEFISYS_partition_using_Systemd|с использованием systemd]] или же [[UEFI_Bootloaders#Sync_EFISTUB_Kernel_in_UEFISYS_partition_using_Incron|с использованием incron]] (для установок, не использующих systemd).<br />
<br />
4. Установите следующие пакеты:<br />
<br />
# pacman -S refind-efi-x86_64 efibootmgr<br />
<br />
5. Установите rEFInd в раздел UEFISYS (кратко из статьи [[UEFI Bootloaders#Using rEFInd]]):<br />
<br />
# mkdir -p /boot/efi/EFI/arch/refind<br />
# cp /usr/lib/refind/refindx64.efi /boot/efi/EFI/arch/refind/refindx64.efi<br />
# cp /usr/lib/refind/config/refind.conf /boot/efi/EFI/arch/refind/refind.conf<br />
# cp -r /usr/share/refind/icons /boot/efi/EFI/arch/refind/icons<br />
<br />
6. Создайте файл {{ic|refind_linux.conf}} с параметрами ядра, которые будут использоваться rEFInd:<br />
<br />
{{hc|# nano /boot/efi/EFI/arch/refind_linux.conf|2=<br />
"Boot to X" "root=/dev/sdaX ro rootfstype=ext4 systemd.unit=graphical.target"<br />
"Boot to console" "root=/dev/sdaX ro rootfstype=ext4 systemd.unit=multi-user.target"}}<br />
<br />
7. Добавьте rEFInd в загрузочное меню UEFI, используя [[UEFI#efibootmgr|efibootmgr]]. <br />
<br />
{{Warning|Использование {{ic|efibootmgr}} на компьютерах Apple Macs может повредить прошивку и потребовать перепрошивки ROM на материнской плате. Для компьютеров Mac, используйте {{AUR|mactel-boot}}, или "благословите" данное использование из самой Mac OS X.}}<br />
<br />
# efibootmgr -c -g -d /dev/sdX -p Y -w -L "Arch Linux (rEFInd)" -l '\\EFI\\arch\\refind\\refindx64.efi'<br />
<br />
{{Note|В приведенной выше команде, X и Y обозначают диски и разделы раздела UEFISYS. Например, в {{ic|/dev/sdc5}}, X обозначает "c" и Y обозначает "5".}}<br />
<br />
8. (не обязательно) Как запасный вариант, в случае, когда созданный {{ic|efibootmgr}} загрузочная запись не работает, скопируйте {{ic|refindx64.efi}} в {{ic|/boot/efi/EFI/boot/bootx64.efi}} как показано ниже:<br />
<br />
# cp -r /boot/efi/EFI/arch/refind/* /boot/efi/EFI/boot/<br />
# mv /boot/efi/EFI/boot/refindx64.efi to /boot/efi/EFI/boot/bootx64.efi<br />
<br />
===== GRUB =====<br />
<br />
{{Note|В случае системы с 32-битным EFI, как Mac до 2008 года, вместо этого установите {{ic|grub-efi-i386}} и используйте опцию {{ic|1=--target=i386-efi}}.}}<br />
<br />
# pacman -S grub-efi-x86_64 efibootmgr<br />
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
Выполните следующую команду для создания пункта меню GRUB в загрузочном меню UEFI. Смотрите [[UEFI#efibootmgr|efibootmgr]] для получения дальнейшей информации.<br />
<br />
# efibootmgr -c -g -d /dev/sdX -p Y -w -L "Arch Linux (GRUB)" -l '\\EFI\\arch_grub\\grubx64.efi'<br />
<br />
Хотя использование созданного вручную файла конфигурации {{ic|grub.cfg}} полностью допустимо, начинающим пользователям рекомендуется генерировать данный файл автоматически:<br />
<br />
{{Tip|Для автоматического поиска других операционных систем на вашем компьютере, перед генерированием конфигурационного файла установите {{Pkg|os-prober}}:<br />
# pacman -S os-prober<br />
}}<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
Для получения более детальной информации о конфигурировании и использовании GRUB, смотрите [[GRUB]].<br />
<br />
===Обновление системы===<br />
<br />
{{Warning|1=Обновление системы каждый раз должно выполняться c осторожностью. Очень важно прочитать и понять [https://bbs.archlinux.org/viewtopic.php?id=57205 эти правила (англ.)], прежде чем продолжить.}}<br />
<br />
Часто разработчики предоставляют важную информацию о требованиях к конфигурации и изменениях с указанием известных проблем. От пользователя Arch Linux ожидается, что он обратит внимание на данные сведения перед выполнением обновления:<br />
<br />
* [http://archlinux.org.ru/ Новости на главной странице Arch]. Если вы не прочитали их перед обновлением и затем обнаружили ошибку, проверьте раздел новостей ''до'' того, как зададите вопрос на форуме!<br />
<br />
* [https://archlinux.org/pipermail/arch-announce/ списки рассылки (англ.)].<br />
<br />
Синхронизуйте и обновите базу данных пакетов, выполните обновление системы в целом командой:<br />
<br />
# pacman -Syu<br />
<br />
Или, что то же самое:<br />
<br />
# pacman --sync --refresh --sysupgrade<br />
<br />
Если в этот момент вам будет предложено обновить pacman, согласитесь, нажав клавишу {{Keypress|Y}}, а по окончании обновления установщика повторите команду {{ic|pacman -Syu}}.<br />
<br />
{{Note|Иногда изменения в конфигурации могут потребовать от пользователя определенных действий в процессе обновления; читайте вывод программы pacman для получения соответствующей информации. Смотрите статью [[Pacnew and Pacsave Files]] для получения более подробной информации.}}<br />
<br />
{{Note|Перезагрузитесь, если обновили пакет ядра {{Pkg|linux}}.}}<br />
<br />
Имейте в виду, что дистрибутив Arch придерживается модели '''rolling release'''. Это означает, что пользователю не придется переустановить или выполнять сложную пересборку системы для обновления её до новейшей версии. Периодическое использование команды {{ic|pacman -Syu}} (с учетом приведенных выше предупреждений) позволяет сохранять всю систему в актуальном состоянии и на переднем крае. По итогам этого обновления будет получена система с текущими версиями всех пакетов.<br />
<br />
Смотрите раздел [[FAQ_(Русский)#Управление пакетами|Управление пакетами]] статьи [[FAQ (Русский)]] для получения ответов на вопросы, касающиеся обновления системы и управления пакетами.<br />
<br />
=====Игнорирование обновления пакетов=====<br />
<br />
Команда {{ic|pacman -Syu}} выполнит обновление вашей системы. Существует возможность защитить какой-либо пакет от обновления. Обычно это касается пакета, обновление которого может создать проблемы для стабильной работы вашей системы. <br />
<br />
В этом случае у вас есть два варианта: <br />
<br />
* Обозначить пакет/пакеты, который/которые вы не хотите обновлять, указав при обновлении ключ {{ic|--ignore}}:<br />
<br />
# pacman -Syu --ignore libass filesystem<br />
<br />
* Указать игнориуемый пакет/пакеты в конфигурационном файле {{ic|pacman.conf}}:<br />
<br />
{{hc|# nano /etc/pacman.conf|2=<br />
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup<br />
IgnorePkg = libass filesystem}}<br />
<br />
Ожидается, что опытные пользователи будут поддерживать '''всю''' систему в актуальном состоянии при помощи {{ic|pacman -Syu}}, а не обновлять отдельные пакеты. Конечно, вы можете отклониться от такого типичного использования, если пожелаете; однако, имейте в виду: в таком случае гораздо вероятнее, что программы не будут работать, как ожидается, и такие действия могут повредить всю систему. Большинство проблем возникает, когда производится выборочное обновление пакетов или нестандартная компиляция. Поэтому использование секции {{ic|IgnorePkg}} в файле {{ic|/etc/pacman.conf}} не рекомендуется и должно применяться крайне редко, и только если вы знаете, что вы делаете. Используйте {{ic|IgnorePkg}} на свой страх и риск.<br />
<br />
===Отмонтирование разделов и перезагрузка===<br />
<br />
Покиньте окружение chroot:<br />
<br />
# exit<br />
<br />
Так как разделы были примонтированы в {{ic|/mnt}}, мы используем следующую команду, чтобы отмонитровать их:<br />
<br />
# umount /mnt/{boot,home,}<br />
<br />
Перезагрузите компьютер:<br />
<br />
# reboot<br />
<br />
{{Tip|Не забудьте вынуть установочный диск из привода, иначе вы снова попадете в установщик системы.}}<noinclude><br />
{{Beginners' Guide navigation (Русский)}}</noinclude></div>
Vadik
https://wiki.archlinux.org/index.php?title=Systemd_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=251546
Systemd (Русский)
2013-03-21T18:15:20Z
<p>Vadik: /* Эмуляция initscripts */</p>
<hr />
<div>{{DISPLAYTITLE:systemd (Русский)}}<br />
[[Category:Русский]]<br />
[[Category:Процесс Загрузки (Русский)]]<br />
[[en:systemd]]<br />
[[es:systemd]]<br />
[[fr:systemd]]<br />
[[it:systemd]]<br />
[[ja:Systemd]]<br />
[[zh-CN:systemd]]<br />
[[zh-TW:Systemd]]<br />
{{Article summary start|Сводка}}<br />
{{Article summary text|Статья охватывает установку и настройку systemd.}}<br />
{{Article summary heading|Связанные статьи}}<br />
{{Article summary wiki|systemd/User}}<br />
{{Article summary wiki|systemd/Services}}<br />
{{Article summary wiki|systemd FAQ}}<br />
{{Article summary wiki|init Rosetta (Русский)}}<br />
{{Article summary wiki|udev (Русский)}}<br />
{{Article summary end}}<br />
Цитата с [http://freedesktop.org/wiki/Software/systemd веб-страницы проекта]:<br />
<br />
''"'''systemd''' - система [инициализации] и менеджер служб для Linux, совместимые со скриптами инициализации SysV и LSB. '''systemd''' обеспечивает возможности агрессивной параллелизации, использует сокеты и активацию [[D-Bus]] для запускаемых служб, предлагает запуск демонов по необходимости, отслеживает процессы при помощи [[cgroups|контрольных групп]] Linux, поддерживает мгновенные снимки и восстановление состояния системы, монтирование и точки монтирования, а также внедряет основанную на зависимостях логику контроля процессов сложных транзакций. Эта система может выступать заменой [[SysVinit|sysvinit]]."''.<br />
<br />
{{Note|1=За детальным объяснением причин происходящего перехода Arch'а на systemd обратитесь к [https://bbs.archlinux.org/viewtopic.php?pid&#61;1149530#p1149530 сообщению на англоязычном форуме].}}<br />
<br />
Смотрите также [[Wikipedia:Systemd|статью в Википедии]].<br />
<br />
== Соображения перед началом миграции ==<br />
<br />
* Почитайте про systemd на [http://freedesktop.org/wiki/Software/systemd/ сайте разработчиков].<br />
* Обратите внимание, что systemd имеет собственный '''журнал (journal)''', заменяющий '''syslog''', хотя оба варианта ведения логов могут сосуществовать. Обратитесь к приведенному ниже [[#Журнал|разделу, посвященному журналу]].<br />
* Хотя systemd вполне способна заменить определенную функциональность таких демонов, как '''cron''', '''acpid''' или '''xinetd''', но если вы не хотите, можете не отказываться от использования традиционных демонов.<br />
* Интерактивные загрузочные скрипты (initscripts) не работают с systemd. В частности, '''netcfg-menu''' [https://bugs.archlinux.org/task/31377 не может] использоваться при загрузке системы.<br />
<br />
== Установка ==<br />
<br />
{{Note|Оба пакета - {{pkg|systemd}} и {{pkg|systemd-sysvcompat}} - ставятся по умолчанию при установке с носителя новее, чем [https://www.archlinux.org/news/systemd-is-now-the-default-on-new-installations/ 2012-10-13].}}<br />
<br />
{{Note|Если вы запускаете Arch Linux в виртуальном выделенном сервере (VPS), пожалуйста, обратитесь к [[Virtual_Private_Server#Moving_your_VPS_from_initscripts_to_systemd|соответствующей странице вики (англ.)]].}}<br />
<br />
Следующий раздел предназначен для тех установок Arch Linux, которые все еще зависят от пакетов {{pkg|sysvinit}} и {{pkg|initscripts}} и не перешли на использование {{pkg|systemd}}.<br />
<br />
# Установите пакет {{pkg|systemd}} и добавьте следующую запись к [[kernel_line|параметрам загрузки ядра]]: {{ic|1=init=/usr/lib/systemd/systemd}}<br />
# Выполнив это, вы сможете включать или отключать любой необходимый сервис путем применения команды {{ic|systemctl enable <service_name>}} (это примерно соответствует тому, что включалось в массив {{ic|DAEMONS}}), но с [[Daemons_List|отличающимися именами]].<br />
# Перезагрузите свою систему и убедитесь, что {{ic|systemd}} в настоящее время активен, выполнив следующую команду: {{ic|cat /proc/1/comm}}. Данная команда должна вернуть строку {{ic|systemd}}.<br />
# Убедитесь, что hostname (имя компьютера) у вас под systemd установлено праильно: {{ic|hostnamectl set-hostname myhostname}}.<br />
# Удалите {{pkg|initscripts}} и {{pkg|sysvinit}} из вашей системы и установите {{pkg|systemd-sysvcompat}}.<br />
# Теперь можно (но не обязательно) удалить параметр {{ic|1=init=/usr/lib/systemd/systemd}}, поскольку необходимости в нем более нет. Инициализация по умолчанию обеспечивается пакетом {{pkg|systemd-sysvcompat}}.<br />
<br />
=== Дополнительная информация ===<br />
<br />
* Если в параметрах ядра имеется значение {{ic|quiet}}, вероятно, вам стоит удалить его для нескольких первых загрузок systemd, чтобы видеть возникающие во время загрузки проблемы.<br />
<br />
{{Accuracy|reason=При использовании systemd ничего не изменилось в отношении групп. Существует много групп, которые редко необходимы пользователям, но ничего из указанного не изменилось с переходом от сonsolekit к logind.}} <br />
<br />
* Теперь при использовании systemd добавлять вашего пользователя в [[Users and Groups|группы]] ({{ic|sys}}, {{ic|disk}}, {{ic|lp}}, {{ic|network}}, {{ic|video}}, {{ic|audio}}, {{ic|optical}}, {{ic|storage}}, {{ic|scanner}}, {{ic|power}} и др.)) в большинстве случаев '''нет''' необходимости. Это даже может нарушить работоспособность системы. Например, добавление в группу audio может привести к невозможности быстрого переключения между пользователями и позволит приложениям заблокировать программное микширование. Каждый вход PAM предоставляет сессию logind, которая дает вам разрешения для локальной сессии посредством [[Wikipedia:Access control list|POSIX ACLs]] на аудио/видео устройства и позволяет выполнять некоторые операции, такие, как как монтирование съемных носителей через [[udisks]].<br />
<br />
* Удаление пакета {{Pkg|initscripts}} нарушит совместимость с основным конфигурационным файлом прежней системы инициализации {{ic|rc.conf}}. Соблюдайте осторожность в том случае, если у вас статическое сетевое соединение посредством данного конфигурационного файла или же используются некоторые демоны, еще не совместимые с systemd. Обратитесь к [[#Эмуляция initscripts| разделу Эмуляция initscripts]] для получения более детальной информации о том, как эти две системы инициализации могут сосуществовать.<br />
<br />
== Родные системные файлы ==<br />
<br />
{{Note|Возможно, вам придется создать эти файлы. Установите для всех файлов права доступа 644 и владельца root:root.}}<br />
<br />
=== Имя компьютера (hostname) ===<br />
<br />
Имя компьютера настраивается в файле {{ic|/etc/hostname}}. Этот файл может содержать содержать доменное имя системы, если таковое имеется, однако в момент написания руководства команда {{ic|hostnamectl}} не устанавливала FQDN (Fully Qualified Domain Name — полностью определенное имя домена). Для установки короткого имени компьютера выполните:<br />
<br />
# hostnamectl set-hostname '''myhostname'''<br />
<br />
Обратитесь к руководствам {{ic|man 5 hostname}} и {{ic|man hostnamectl}} для получения более подробной информации.<br />
<br />
Вот примерный файл:<br />
<br />
{{hc|/etc/hostname|<br />
myhostname<br />
}}<br />
<br />
=== Локаль ===<br />
<br />
Системная локаль по умолчанию настраивается в конфигурационном файле {{ic|/etc/locale.conf}}. Для установки локали по умолчанию выполните:<br />
<br />
# localectl set-locale LANG="ru_RU.UTF-8"<br />
<br />
{{Note|Перед установкой локали по умолчанию вам сперва необходимо сделать локали доступными системе, раскомментировав их в файле {{ic|/etc/locale.gen}} и затем выполнив команду {{ic|locale-gen}} от суперпользователя root. Локаль, установленная командой {{ic|localectl}}, должна быть одной из '''раскомментированных''' локалей в файле {{ic|/etc/locale.gen}}.}}<br />
<br />
Для получения подробной информации о вариантах настройки обратитесь к руководствам {{ic|man 1 localectl}} и {{ic|man 5 locale.conf}}.<br />
* Дальнейшая информация содержится в статье [[Locale]].<br />
<br />
Вот примерный файл:<br />
<br />
{{hc|/etc/locale.conf|2=<br />
LANG=ru_RU.utf8}}<br />
<br />
=== Консоль и раскладка клавиатуры ===<br />
<br />
Файл {{ic|/etc/vconsole.conf}} устанавливает настройки виртуальной консоли (раскладку клавиатуры и консольный шрифт).<br />
<br />
{{hc|/etc/vconsole.conf|2=<br />
KEYMAP=ru<br />
FONT=cyr-sun16<br />
}}<br />
<br />
{{Note|С версии {{Pkg|systemd}}-194 используются шрифт ядра и раскладку по умолчанию (т.е. американскую английскую). Нет более необходимости (для тех, кто использует американскую английскую раскладку) настраивать в конфигурационном файле строки {{ic|1=KEYMAP=}} и {{ic|1=FONT=}}, их можно оставить пустыми.}}<br />
<br />
Другой способ настройки раскладки клавиатуры в консоли состоит в использовании команды:<br />
<br />
# localectl set-keymap ru<br />
<br />
Команда <code>localectl</code> также может быть использована для установки раскладки клавиатуры в X11:<br />
<br />
# localectl set-x11-keymap ru<br />
<br />
Для получения подробной информации о вариантах настройки обратитесь к руководствам {{ic|man 1 localectl}} и {{ic|man 5 vconsole.conf}}.<br />
* Для получения детальной информации обратитесь к разделам [[Fonts#Console_fonts|консольные шрифты (англ.)]] и [[KEYMAP|раскладка клавиатуры (англ.)]].<br />
<br />
=== Временная зона ===<br />
<br />
Временная зона настраивается путем создания соответствующей символической ссылки {{ic|/etc/localtime}} на файл временной зоны в директории {{ic|/usr/share/zoneinfo/}}. Чтобы сделать это автоматически, выполните команду:<br />
<br />
# timedatectl set-timezone Europe/Moscow<br />
<br />
Для получения подробной информации о вариантах настройки обратитесь к руководствам {{ic|man 1 timedatectl}}, {{ic|man 5 localtime}} и {{ic|man 7 archlinux}}.<br />
<br />
{{Note|Прежний конфигурационный файл {{ic|/etc/timezone}} объявлен устаревшим с выходом {{pkg|systemd}}-190 и должен быть удален.}}<br />
<br />
Альтернативный метод - создание символической ссылки вручную:<br />
<!-- НЕ СОЗДАВАЙЬТЕ АБСОЛЮТНУЮ СИМВОЛИЧЕСКУЮ ССЫЛКУ, руководство archlinux(7) ясно указывает, что это должна быть относительная символическая ссылка --><br />
<br />
# ln -sf ../usr/share/zoneinfo/Europe/Moscow /etc/localtime<br />
<br />
Если в вашей системе имеется прежний конфигурационный файл {{ic|/etc/timezone}}, он теперь может быть безопасно удален, посокльку не используется systemd.<br />
<br />
=== Аппаратные часы ===<br />
<br />
Systemd будет использовать UTC для аппаратных часов по умолчанию.<br />
{{Tip|Обычно рекомендуется запускать [[NTP|демон Network Time Protocol]] для поддержания синхронизации аппаратных часов с системным временем.}}<br />
<br />
==== Аппаратные часы по localtime ====<br />
<br />
Если вы собираетесь выставить аппаратные часы по localtime (местному времени, что '''КАТЕГОРИЧЕСКИ НЕ РЕКОМЕНДУЕТСЯ'''), выполните команду:<br />
<br />
# timedatectl set-local-rtc true<br />
<br />
Если же захотите вернуть ваши аппаратные часы к использованию временного формата UTC, выполните:<br />
<br />
# timedatectl set-local-rtc false<br />
<br />
Помните, что настройка перехода на зимнее/летнее время - неблагодарное занятие. Если переход на зимнее/летнее время происходит в тот момент, когда ваш компьютер выключен, то при следующей загрузке ваши часы будут показывать ошибочное время ([http://www.cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html здесь об этом чуть подробнее (англ.)]). Последние версии ядра устанавливают системное время из RTC (часов реального времени) непосредственно во время загрузки без использования {{ic|hwclock}}, при этом ядро всегда считает, что RTC выставлено по UTC. Это означает, что если RTC выставлено по местному времени (local time), системное время будет изначально установлено ошибочно и затем корректироваться вскоре после этого при каждой загрузке. Это является причиной некоторых досадных багов (идущие назад часы редко являются нужной вещью).<br />
<br />
Причиной, позволяющей RTC быть выставленными по местному времени, является двойная загрузка системы с Windows, ([http://blogs.msdn.com/b/oldnewthing/archive/2004/09/02/224672.aspx которая использует localtime (англ.)]). Windows воспринимает RTC, выставленные по UTC при помощи простого [[Time#UTC in Windows|исправления реестра (англ.)]]. Если вы столкнетесь с подобными проблемами при двойной загрузке с Windows, вы можете установить аппаратные часы на использование местного времени. <br />
<br />
Если вы настроите Windows на использование UTC, также не забудьте отключить функцию "Обновление времени по Интернету" ("Internet Time Update"), иначе для Windows возникнет проблема с аппаратными часами, поскольку система будет пытаться синхронизировать их с временем через Интернет. Вместо этого следует оставить время в формате RTC и синхронизовать через Интернет в Linux посредством демона [[NTP]], как это предлагалось выше.<br />
<br />
* За дальнейшей информацией обратитесь к статье [[Time]].<br />
<br />
=== Подгружаемые модули ядра ===<br />
<br />
Сегодня все необходимые модули для загрузки подгружаются автоматически с помощью [[Udev]], так что, если вам не надо (или же вы не должны) использовать какой-нибудь модуль не из дерева ядра , нет необходимости дополнительно помещать какие-либо модули в какой-то файл конфигурации загрузки. Тем не менее, бывают случаи, когда вы можете подгрузить дополнительный модуль в процессе загрузки или поместить какой-то модуль в черный список, чтобы ваш компьютер работал правильно.<br />
<br />
==== Дополнительно подгружаемые при загрузке модули ====<br />
<br />
Необходимые для загрузки дополнительные модули оформляются в статический список файлов в директории {{ic|/etc/modules-load.d/}}. Каждый из конфигурационных файлов имеет наименование вида {{ic|/etc/modules-load.d/<program>.conf}} (где <program> - имя подгружаемого модуля) и содержит список имен подгружаемых модулей ядра, каждое из которых начинается с новой строки. При этом игнорируются как пустые строки конфигурационных файлов, так и строки, у которых первым символом, отличным о пробела, является символ {{ic|#}} и {{ic|;}}. Например:<br />
<br />
{{hc|/etc/modules-load.d/virtio-net.conf|<br />
# Load virtio-net.ko at boot<br />
virtio-net}}<br />
<br />
Более подробная информация содержится в руководстве {{ic|man 5 modules-load.d}}.<br />
<br />
==== Настройка параметров модулей ====<br />
<br />
Дополнительные параметры модулей должны устанавливаться в конфигурационном файле {{ic|/etc/modprobe.d/modprobe.conf}}.<br />
<br />
Например:<br />
<br />
* мы имеем {{ic|/etc/modules-load.d/loop.conf}} с прописанным модулем {{ic|loop}} для подгрузки его во время загрузки системы.<br />
<br />
* в файле {{ic|/etc/modprobe.d/modprobe.conf}} определяются дополнительные параметры, такие, как {{ic|options loop max_loop&#61;64}}.<br />
<br />
Затем вновь установленные параметры могут быть проверены с помощью команды {{ic|cat /sys/module/loop/parameters/max_loop}}.<br />
<br />
==== Черный список ====<br />
<br />
Добавление модулей в черный список работает также, как и в случае с {{Pkg|initscripts}}, поскольку в действительности эта функция выполняется таким инструментом, как {{Pkg|kmod}}. Обратитесь к разделу [[Kernel_modules#Blacklisting|Module Blacklisting]] за более подробной информацией.<br />
<br />
=== Монтирование файловых систем ===<br />
<br />
Установка по умолчанию автоматически проверяет файловые системы командой fsck и монтирует файловые системы перед запуском тех сервисов, котрым необходимо иметь эти системы примонтированными. Например, systemd позволяет в автоматическом режиме добиться, что удаленные файловые системы наподобие [[NFS]] и [[Samba]] подключаются после поднятия сети. Поэтому монтирование как локальных, так и удаленных файловых систем, прописанных в {{ic|/etc/fstab}} должно работать "из коробки".<br />
<br />
Обратитесь к руководству {{ic|man 5 systemd.mount}} для получения более подробной информации.<br />
<br />
==== Автомонтирование ====<br />
<br />
* Если ваш раздел {{ic|/home}} занимает большой объем, лучшим вариантом было бы позволить сервисам не зависеть от подключения {{ic|/home}} и запускать данные сервисы, когда {{ic|/home}} еще подвергается проверке при загрузке системы. Добиться такого результата можно добавлением следующих параметров в запись файла {{ic|/etc/fstab}}, касающуюся раздела {{ic|/home}}:<br />
<br />
noauto,x-systemd.automount<br />
<br />
Такие параметры вызовут команду fsck и примонтируют {{ic|/home}} при первом обращении к данному разделу, и ядро будет буферизовать все файлы доступа к {{ic|/home}} до готовности данного раздела.<br />
<br />
{{Note|Nаким образом для вашей файловой системы {{ic|/home}} при монтировании будет установлен тимп {{ic|autofs}}, который по умолчанию игнорируется утилитой [[mlocate]]. Скорость автомонирования {{ic|/home}} при этом не увеличится более чем на одну или две секунды,в зависимости от вашей системы, поэтому данный труюк, возможно, не стоит применять.}}<br />
<br />
* То же самое применимо и к удаленным файловым системам. Если вы хотите, чтобы монтирование данных систем происходило только по мере доступа к ним, вы можете использовать параметр {{ic|1=x-systemd.device-timeout=#}} в файле {{ic|/etc/fstab}} для определения таймаута в том случае, кода сетевые ресурсы оказываются недоступны.<br />
<br />
* В случае использования зашифрованных файловых систем с ключами доступа, вам также Iследует добавить параметр {{ic|noauto}} в соответствующие записи файла {{ic|/etc/crypttab}}. systemd не будет подключать зашифрованные устройства при загрузке, но, вместо этого, дождется реального обращения к ним и автоматически откроет к ним доступ с использованием определенных ключей перед тем, как они будут примонтированы. Это сэкономит несколько секунд при загрузке системы, например, в случае использования зашифрованного устройства RAID, потому что systemd не будет дожидаться от устройства, когда оно станет доступным. Например:<br />
<br />
{{hc|/etc/crypttab|<br />
data /dev/md0 /root/key noauto}}<br />
<br />
=== LVM ===<br />
<br />
Если у вас имеются тома [[LVM]], не активированные посредством [[Mkinitcpio|initramfs]], включите сервис {{ic|lvm-monitoring}}, который предоставляется пакетом {{pkg|lvm2}}:<br />
<br />
# systemctl enable lvm-monitoring<br />
<br />
Точно так же, если у вас LVM на устройствах с шифрованием, монтируемым позже в процессе загрузки (например, из {{ic|/etc/crypttab}}), вам необходимо включить сервис {{ic|lvm-on-crypt}}, который также предоставляется пакетом {{pkg|lvm2}}:<br />
<br />
# systemctl enable lvm-on-crypt<br />
<br />
=== Управлением питанием ACPI ===<br />
<br />
Systemd обрабатывает некоторые события, связанные с [http://ru.wikipedia.org/wiki/ACPI ACPI], что настраивается при помощи параметров в конфигурационном файле {{ic|/etc/systemd/logind.conf}}:<br />
<br />
* {{ic|HandlePowerKey}}: определяет действия системы при нажатии кнопки питания (вкл./выкл.).<br />
* {{ic|HandleSuspendKey}}: определяет действия системы при нажатии кнопки спящего режима.<br />
* {{ic|HandleHibernateKey}}: определяет действия системы при нажатии кнопки ждущего режимаs.<br />
* {{ic|HandleLidSwitch}}: определяет действия системы при закрытии крышки компьютера.<br />
<br />
Для соответствующих действий могут использоваться значения {{ic|ignore}} (пропустить), {{ic|poweroff}} (отключить питание), {{ic|reboot}} (перезагрузить), {{ic|halt}} (выключить), {{ic|suspend}} (включить спящий режим), {{ic|hibernate}} (включить ждущий режим), {{ic|hybrid-sleep}} (включить режим гибридного сна), {{ic|lock}} (заблокировать) или {{ic|kexec}} (системный вызов позволяющий оперативно переключиться в другое ядро).<br />
<br />
Если данные параметры не определены, по умолчанию systemd будет использовать следующие: {{ic|1=HandlePowerKey=poweroff}}, {{ic|1=HandleSuspendKey=suspend}}, {{ic|1=HandleHibernateKey=hibernate}}, и {{ic|1=HandleLidSwitch=suspend}}.<br />
<br />
В системах без графического интерфейса (или использующих простые оконные менеджеры наподобие [[i3]] или [[awesome]]) так можно заменить демон [[acpid]], который обычно используется для реагирования на данные события ACPI.<br />
<br />
{{Note|Выполните команду {{ic|systemctl restart systemd-logind.service}}, чтобы изменения вступили в силу.}}<br />
<br />
{{Note|Systemd не может обрабатывать события AC и Battery ACPI, поэтому, если вы используете [[Laptop Mode Tools]] или другие аналогичные утилиты, по-прежнему требуется [[acpid]].}}<br />
<br />
В текущей версии systemd параметры {{ic|Handle*}} будут применены ко всей системе, если только они не "подавляются (временно отключены) другой программой, такой, как менеджер питания данного окружения рабочего стола. Если эти ограничений нет, вы можете столкнуться с ситуацией, когда systemd приводит вашу систему в спящий режим, а затем, когда система пробуждается менеджером управлением питания, снова "усыпляет" ее.<br />
<br />
{{Warning|В настоящее время менеджеры управления питанием в новейших версиях сред [[KDE]] и [[GNOME]] являются единственными, которые используют такие команды "подавления". До тех пор, пока их не будут применять другие менеджеры, вам надо выставить в параметрах {{ic|Handle}} значение {{ic|ignore}}, если вы хотите, чтобы события ACPI обрабатывались в случае использования [[Xfce]], [[acpid]] или других программ.}}<br />
<br />
{{Note|Systemd также может использовать для перевода системы в спящий/ждущий режим другие движки (такие, как [[Uswsusp]] или [[TuxOnIce]]), в дополнение к движку ''ядра''.}}<br />
<br />
==== Хуки спящего режима ====<br />
<br />
Systemd в своих командах {{ic|systemctl suspend}}, {ic|systemctl hibernate}} или {{ic|systemctl hybrid-sleep}} не использует [[pm-utils]] для "усыпления" машины; хуки [[pm-utils]], включая любые [[Pm-utils#Creating_your_own_hooks|пользовательские хуки]] не будут работать. Тем не менее, systemd предоставляет два схожих механизма запуска пользовательских скриптов для данных событий. <br />
<br />
===== Сервис-файлы для спящего режима/возобновления работы =====<br />
<br />
Сервис-файлы могут быть подключены к suspend.target, hibernate.target и sleep.target для выполнения действий до или после перевода системы в спящий/ждущий режимы. Отдельные файлы следует создавать для пользовательских действий или системных действий/действий, выполняемых суперпользователем root. Для включения пользовательских сервис-файлов, выполните команду {{ic|# systemctl enable suspend@<user> && systemctl enable resume@<user>}}. Примеры:<br />
<br />
{{hc|/etc/systemd/system/suspend@.service|2=<nowiki><br />
[Unit]<br />
Description=User suspend actions<br />
Before=sleep.target<br />
<br />
[Service]<br />
User=%I<br />
Type=forking<br />
Environment=DISPLAY=:0<br />
ExecStartPre= -/usr/bin/pkill -u %u unison ; /usr/local/bin/music.sh stop ; /usr/bin/mysql -e 'slave stop'<br />
ExecStart=/usr/bin/sflock<br />
<br />
[Install]<br />
WantedBy=sleep.target</nowiki>}}<br />
<br />
{{hc|/etc/systemd/system/resume@.service|2=<nowiki><br />
[Unit]<br />
Description=User resume actions<br />
After=suspend.target<br />
<br />
[Service]<br />
User=%I<br />
Type=simple<br />
ExecStartPre=/usr/local/bin/ssh-connect.sh<br />
ExecStart=/usr/bin/mysql -e 'slave start'<br />
<br />
[Install]<br />
WantedBy=suspend.target</nowiki>}}<br />
<br />
Для действий суперпользователя root/системных действий (включается командой {{ic|# systemctl enable root-suspend}}):<br />
<br />
{{hc|/etc/systemd/system/root-resume.service|2=<nowiki><br />
[Unit]<br />
Description=Local system resume actions<br />
After=suspend.target<br />
<br />
[Service]<br />
Type=simple<br />
ExecStart=/usr/bin/systemctl restart mnt-media.automount<br />
<br />
[Install]<br />
WantedBy=suspend.target</nowiki>}}<br />
<br />
{{hc|/etc/systemd/system/root-suspend.service|2=<nowiki><br />
[Unit]<br />
Description=Local system suspend actions<br />
Before=sleep.target<br />
<br />
[Service]<br />
Type=simple<br />
ExecStart=-/usr/bin/pkill sshfs<br />
<br />
[Install]<br />
WantedBy=sleep.target</nowiki>}}<br />
<br />
Несколько полезных советов по поводу этих сервис-файлах (подробности командой {{ic|man systemd.service}}):<br />
* В случае {{ic|1=<nowiki>Type=OneShot</nowiki>}} вы можете использовать несколько строк {{ic|1=<nowiki>ExecStart=</nowiki>}}. В противном случае допустима только одна строка ExecStart. Можно добавить больше команд либо при помощи {{ic|ExecStartPre}}, либо отдельными командами, разделенными точкой с запятой (;) (смотрите первый пример из приведенных выше - обратите внимание на пробелы до и после точки с запятой... это необходимо!).<br />
* Команды с префиксом '-' приведут к ненулевому (не "0") статусу выхода, который проигнорируется и будет рассматриваться как успешное завершение команды. <br />
* Лучший способ обнаружения ошибок при диагностике данных сервис-файлов - конечно же, команда {{ic|journalctl}}.<br />
<br />
===== Комбинированный сервис-файл спящего режима/возобновления работы =====<br />
<br />
При помощи комбинированного сервис файла спящего-режима/возобновления работы единственный худ сделает всю работу для различных стадий работы компьютера (спящий режим/возобновление работы) и для различных целей (спящий режим/ждущий режим/гибридный рпежим сна).<br />
<br />
Пример и объяснение:<br />
<br />
{{hc|/etc/systemd/system/wicd-sleep.service|2=<nowiki><br />
[Unit]<br />
Description=Wicd sleep hook<br />
Before=sleep.target<br />
StopWhenUnneeded=yes<br />
<br />
[Service]<br />
Type=oneshot<br />
RemainAfterExit=yes<br />
ExecStart=-/usr/share/wicd/daemon/suspend.py<br />
ExecStop=-/usr/share/wicd/daemon/autoconnect.py<br />
<br />
[Install]<br />
WantedBy=sleep.target</nowiki>}}<br />
<br />
* {{ic|1=<nowiki>RemainAfterExit=yes</nowiki>}}: После запуска сервис считается активным, пока не будет явно остановлен.<br />
<br />
* {{ic|1=<nowiki>StopWhenUnneeded=yes</nowiki>}}: В случае, если сервис активен, он может быть остановлен, если нет нуждающихся в нем других активных сервисов. В данном примере он будет остановлен после остановки целевого файла sleep.target.<br />
<br />
* Поскольку sleep.target. используемый такими целевыми юнатами, как suspend.target, hibernate.target, hybrid-sleep.target и самим sleep.target является сервисом StopWhenUnneeded, хук гарантирует старт/остановку различных задач должным образом.<br />
<br />
===== Хуки в /usr/lib/systemd/system-sleep =====<br />
<br />
Systemd запускает все исполняемые файлы в директории {{ic|/usr/lib/systemd/system-sleep/}}, передавая каждому из них два аргумента:<br />
<br />
* Аргумент 1: или {{ic|pre}}, или {{ic|post}}, в зависимости от которых машина либо "уснет", либо будет "пробуждена";<br />
* Аргумент 2: или {{ic|suspend}}, или {{ic|hibernate}} или же {{ic|hybrid-sleep}}, в зависимости от того, что было вызвано.<br />
<br />
В отличие от [[pm-utils]], systemd запустит данные скрипты одновременно, а не один после другого.<br />
<br />
Вывод любого пользовательского скрипта будет записан сервисом {{ic|systemd-suspend.service}}, {{ic|systemd-hibernate.service}} или {{ic|systemd-hybrid-sleep.service}}. Вы вы можете увидеть данный выход в [[#Журнал systemd|журнале]] systemd:<br />
<br />
# journalctl -b -u systemd-suspend<br />
<br />
Обратите внимание, что вместо использования скриптов вы также можете использовать специальные целевые юниты - {{ic|sleep.target}}, {{ic|suspend.target}}, {{ic|hibernate.target}} или {{ic|hybrid-sleep.target}} для того, чтобы подключить к другим юнитам возможности перехода в спящий режима.<br />
<br />
Пример пользовательского скрипта по переходу в спящий режим:<br />
<br />
{{hc|/usr/lib/systemd/system-sleep/example.sh|<br />
#!/bin/sh<br />
case $1/$2 in<br />
pre/*)<br />
echo "Going to $2..."<br />
;;<br />
post/*)<br />
echo "Waking up from $2..."<br />
;;<br />
esac}}<br />
<br />
Не забудьте сделать ваш скрипт исполняемым:<br />
<br />
# chmod a+x /usr/lib/systemd/system-sleep/example.sh<br />
<br />
Обратитесь к руководствам {{ic|man 7 systemd.special}} и {{ic|man 8 systemd-sleep}} для получения дальнейшей информации.<br />
<br />
=== Временные файлы ===<br />
<br />
Systemd-tmpfiles использует конфигурационные файлы в директориях {{ic|/usr/lib/tmpfiles.d/}} и {{ic|/etc/tmpfiles.d/}} для определения действий с временными файлами и директориями (создание, очистка и удаление их), обычно расположенные в {{ic|/run}} or {{ic|/tmp}}. Каждый файл с настройками имеет название вида {{ic|/etc/tmpfiles.d/<program>.conf}}. Данные конфигурационные файлы имеют приоритет по сравнению с любыми файлами с таким же названием, расположенными в директории {{ic|/usr/lib/tmpfiles.d/}}.<br />
<br />
Временные файлы tmpfiles обычно поставляются вместе с сервис-файлами для создания директорийк. которые, как ожидается, будут использоваться определенными демонами. Например, демон [[Samba]] предполагает наличие директории {{{ic|/run/samba}} с соответствующими правами доступа. В данном случае tmpfile выглядит следующим образом:<br />
<br />
{{hc|/usr/lib/tmpfiles.d/samba.conf|<br />
D /run/samba 0755 root root}}<br />
<br />
tmpfiles также могут использоваться для записи значений в определенные файлы во врем загрузки. К примеру, если вы используете {{ic|/etc/rc.local}} для того, чтобы отключить пробуждение системы USB-устройствами, при помощи команды {{ic|echo USBE > /proc/acpi/wakeup}}, вы можете вместо этого использовать следующий tmpfile:<br />
<br />
{{hc|/etc/tmpfiles.d/disable-usb-wake.conf|<br />
w /proc/acpi/wakeup - - - - USBE}}<br />
<br />
Обратитесь к руководству {{ic|man 5 tmpfiles.d}} за более подробной информацией.<br />
<br />
=== Юнит ===<br />
<br />
Юнит (англ. unit) - конфигурационный файл, содержащий информацию о сервисе (службе), сокете, устройстве, точке монирования/автомонирования, файле подкачке или разделе, определяемом для загрузки уровне запуска, пути в файловой системе или таймере, которые контролируются и управляются при помощи systemd. Синтаксис юнитов навеян спецификацией .desktop-файлов (XDG Desktop Entry Specification), которая, в свою очередь, вдохновлялась .ini-файлами от Microsoft Windows. <br />
<br />
Обратитесь к руководству {{ic|man 5 systemd.unit}} для получения дальнейшей информации.<br />
<br />
== Переход от initscripts к использованию systemd ==<br />
<br />
=== Эмуляция initscripts ===<br />
<br />
Интеграция с классической конфигурацией Arch'а обеспечивается пакетом {{Pkg|initscripts}}. В том случае, если {{Pkg|initscripts}} установлен параллельно с systemd и система загружена с использованием systemd, systemd будет выполнять следующую последовательность действий:<br />
<br />
# Проводить синтаксический разбор массива {{ic|DAEMONS}} в файле {{ic|/etc/rc.conf}} и запускать при загрузке все находящиеся там демоны (см. ниже)<br />
# Выполнять при загрузке {{ic|/etc/rc.local}}<br />
# Выполнять при завершении работы системы {{ic|/etc/rc.local.shutdown}}<br />
<br />
Эмуляция initscripts рассматривается как просто переходная мера для легкой миграции пользователей на systemd и '''в конечном итоге будет отброшена'''. Система с "родной" systemd не зависит от централизованной конфигурации в {{ic|rc.conf}}, поэтому рекомендуется использовать [[#Родные системные файлы|родные конфигурационные файлы systemd]], которые имеют приоритет над настройками из {{ic|/etc/rc.conf}}.<br />
<br />
{{Note|Рекомендуемый путь по замене {{ic|/etc/rc.local}} состоит в написании пользовательского сервис-файла для всего того, что вы хотите запускать при загрузке системы. Обратитесь к соответствующему [[#Написание пользовательского файла .service|разделу]] данной статьи.}}<br />
<br />
{{Note|Если вы отключали использование сочетания клавиш для перезагрузки системы {{keypress|Ctrl+Alt+Del}} в файле {{ic|/etc/inittab}}, теперь вам надо заново сделать это для systemd командой {{ic|systemctl mask ctrl-alt-del.target}}, выполняемой от суперпользователя root.}}<br />
<br />
{{Warning|Если у вас установлены как systemd (197-4 или более поздней версии), так и initscripts и имеется файл {{ic|/etc/rc.local}}, процесс загрузки системы никогда не завершится (потому, что при {{ic|getty@tty1.service}} не дождется, когда systemd 197-4 запустит {{ic|rc-local.service}}, и из-за этого getty не может запуститься). Поэтому сначала удалите либо переименуйте файл {{ic|/etc/rc.local}}.}} <br />
<br />
==== Отказ от массива DAEMONS ====<br />
<br />
Для "чистой" установки systemd, вы можете полностью удалить файл {{ic|/etc/rc.conf}} и включать сервисы только посредством systemd. Для каждого сервиса с именем {{ic|<service_name>}} в массиве {{ic|DAEMONS}} из файла {{ic|/etc/rc.conf}} выполните команду:<br />
<br />
# systemctl enable <service_name><br />
<br />
{{Tip|Для получения списка обычно используемых демонов с их эквивалентами в initscripts и systemd, обратитесь к [[Daemons List|данной таблице]].}}<br />
<br />
Если сервис-файл {{ic|<service_name>.service}} отсутствует:<br />
<br />
* сервис-файл может быть недоступен для systemd. В этом случае вам нужно сохранить конфигурационный файл {{ic|rc.conf}} для запуска этих сервисов во время загрузки системы.<br />
* Systemd может использовать для сервисов другие имена, например, {{ic|cronie.service}} заменяет демон {{ic|crond}}; {{ic|alsa-store.service}} и {{ic|alsa-restore.service}} заменяют демон {{ic|alsa}}. Другой важный пример - демон {{ic|network}}, которого сменил целый набор сервис-файлов (обратитесь к статье [[Configuring Network]] для получения дальнейшей информации.)<br />
<br />
{{Tip|Вы можете заглянуть вовнутрь пакета, содержащего стартовые скрипты демона, чтобы узнать имена его сервис-файла. К примеру:<br />
$ pacman -Ql cronie<br />
[...]<br />
cronie /etc/rc.d/crond #Демон initscript, указываемый в массиве {{ic|DAEMONS}} (не используется при "чистой" настройке systemd)<br />
[...]<br />
cronie /usr/lib/systemd/system/cronie.service #Соответствующий сервис systemd<br />
[...]<br />
}}<br />
<br />
* Наконец, пользователю не нужно включать некоторые сервисы явным образом. Например, {{ic|dbus.service}} будет включен автоматическики при установке {{ic|dbus-core}}. {{ic|alsa-store.service}} и {{ic|alsa-restore.service}} также включены systemd автоматически. Проверьте список доступных сервисов и их состояние при помощи команды {{ic|systemctl list-unit-files}}.<br />
<br />
== Основы использования systemctl ==<br />
<br />
Главная команда для наблюдения и контроля за состоянием systemd - команда {{ic|systemctl}}. Некоторые из вариантов ее использования связаны с изучением состояния системы и управлением сервисами. Обратитесь к странцам руководства {{ic|man 1 systemctl}} для получения более детальной информации.<br />
<br />
{{Tip|Вы можете использовать приведенные ниже команды {{ic|systemctl}} с ключом {{ic|-H <user>@<host>}} для того, чтобы контролировать systemd на удаленной машине. В этом случае для соединения с удаленным процессом systemd будет использовать [[SSH]].}}<br />
<br />
{{Note|{{ic|systemadm}} - официальная графическая оболочка для {{ic|systemctl}}. Она доступна в виде пакета {{AUR|systemd-ui-git}} из [[AUR]].}}<br />
<br />
=== Анализ состояния системы ===<br />
<br />
Список запущенных юнитов:<br />
<br />
$ systemctl<br />
<br />
или:<br />
<br />
$ systemctl list-units<br />
<br />
Список юнитов, попытка запуска которых завершилась неудачей:<br />
<br />
$ systemctl --failed<br />
<br />
Доступные юниты можно посмотреть в директориях {{ic|/usr/lib/systemd/system/}} и {{ic|/etc/systemd/system/}} (последняя директория имеет приоритет). Вы можете увидеть список установленных юнитов командой:<br />
<br />
$ systemctl list-unit-files<br />
<br />
=== Использование юнитов ===<br />
<br />
Юниты могут быть сервисами ({{ic|.service}}), точками монтирования ({{ic|.mount}}) или сокетами ({{ic|.sockets}}). При использовании команды {{ic|systemctl}} необходимо всегда указывать полное имя файла, включая расширение. Однако, есть несколько сокращений при определении юнита следующими командами{{ic|systemctl}}:<br />
<br />
* Ели вы не указали суффикс, systemctl предполагает, что это {{ic|.service}}. Например, {{ic|netcfg}} и {{ic|netcfg.service}} будут трактоваться одинаково.<br />
* Точки монтирования будут автоматически преобразованы в соответствующий юнит {{ic|.mount}}. Например, указание {{ic|/home}} равнозначно {{ic|home.mount}}.<br />
* Аналогично точкам монтирования, имена устройств автоматически преобразуются в соответствующий юнит {{ic|.device}}, поэтому указание {{ic|/dev/sda2}} полностью соответствует юниту {{ic|dev-sda2.device}}.<br />
<br />
Обратитесь к руководству {{ic|man systemd.unit}} для получения детальной информации.<br />
<br />
{{Note|При использовании юнитов следует обращать внимание на регистр букв в наименовании сервис-файлов: так, необходимо использовать ''NetworkManager.'''service''' '' (запомните употребление в данном названии букв в верхнем регистре) для включения сервиса NetworkManager'а, в противном случае вы получите сообщение об ошибке и сервис во время загрузки системы не запустится.}}<br />
<br />
Незамедлительно запустить юнит:<br />
<br />
# systemctl start <unit><br />
<br />
Незамедлительно остановить юнит:<br />
<br />
# systemctl stop <unit><br />
<br />
Перезапустить юнит:<br />
<br />
# systemctl restart <unit><br />
<br />
Запросить у юнита перезагрузку его настроек:<br />
<br />
# systemctl reload <unit><br />
<br />
Показать статус юнита, а также запущен он или нет:<br />
<br />
$ systemctl status <unit><br />
<br />
Проверить включение юнита (т.е. разрешен ли юниту запуск при загрузке системы):<br />
<br />
$ systemctl is-enabled <unit><br />
<br />
Включить юнит (разрешить юниту запуск при загрузке системы):<br />
<br />
# systemctl enable <unit><br />
<br />
{{Note| Если сервис-файлы не имеют раздела {{ic|Install}}, это обычно означает, что данные сервисы вызываются автоматически другими сервисами. Но если вам требуется установить их вручную, используйте следующую команду, заменив {{ic|foo}} именем вашего сервиса.<br />
# ln -s /usr/lib/systemd/system/''foo''.service /etc/systemd/system/graphical.target.wants/<br />
}}<br />
<br />
Выключить юнит (запретить юниту запуск при загрузке системы):<br />
<br />
# systemctl disable <unit>}}<br />
<br />
Показать страницу помощи для юнита (необходима поддержка этой функции в указанном файле юнита):<br />
<br />
$ systemctl help <unit><br />
<br />
Перезагрузить systemd с поиском новых или измененных юнитов:<br />
<br />
# systemctl daemon-reload<br />
<br />
=== Управление питанием ===<br />
<br />
Для управления питанием необходим {{ic|polkit}}.<br />
<br />
Если у вас локальная пользовательская сессия {{ic|systemd-logind}} и нет других активных сессий, приведенные ниже команды сработают и без привилегий суперпользователя root. В противном случае (например, вследствие того, что пользователь залогинился в tty), systemd автоматически запросит у вас пароль root.<br />
<br />
Завершить работу и перезагрузить систему:<br />
<br />
$ systemctl reboot<br />
<br />
Завершить работу и выключить компьютер (с отключением питания):<br />
<br />
$ systemctl poweroff<br />
<br />
Перевести систему в спящий режим:<br />
<br />
$ systemctl suspend<br />
<br />
Перевести систему в ждущий режим:<br />
<br />
$ systemctl hibernate<br />
<br />
Перевести систему в режим гибридного сна (или suspend-to-both):<br />
<br />
$ systemctl hybrid-sleep<br />
<br />
== Запуск окружения рабочего стола из systemd ==<br />
<br />
Чтобы включить графический вход в систему, запустите выбранный вами демон [[Display Manager (Русский)|экранного менеджера]] (например, [[KDM]]). В настоящий момент доступны сервис-файлы для [[GDM]], [[KDM]], [[SLiM]], [[XDM]], [[LXDM]] и [[LightDM]].<br />
<br />
# systemctl enable kdm<br />
<br />
Эта команда должна работать "из коробки". Если вдруг она не сработала, то, возможно, у вас {{ic|default.target}} установлен вручную или остался с прежней установки:<br />
<br />
{{hc|# ls -l /etc/systemd/system/default.target|<br />
/etc/systemd/system/default.target -> /usr/lib/systemd/system/graphical.target}}<br />
<br />
Просто удалите символическую ссылку и systemd будет использовать целевой юнит по умолчанию - {{ic|default.target}} (т.е. {{ic|graphical.target}}).<br />
<br />
# rm /etc/systemd/system/default.target<br />
<br />
=== Использование systemd-logind ===<br />
<br />
{{Note|С 30.10.2012 [[ConsoleKit]] был [http://archlinux.org.ru/node/352/ заменен на systemd-logind] как механизм входа в окружение рабочего стола по умолчанию.}}<br />
<br />
Для того, чтобы проверить статус вашей пользовательской сессии, вы можете использовать команду {{ic|loginctl}}. Все действия [[PolicyKit]] наподобие перевода системы в спящий режим или монтирования внешних носителей с помощью [[Udisks]] должны работать автоматически.<br />
<br />
$ loginctl show-session $XDG_SESSION_ID<br />
<br />
== Написание пользовательского файла .service==<br />
<br />
''Смотрите статью: [[Systemd/Services]]''<br />
<br />
=== Обработка зависимостей ===<br />
<br />
В случае использования systemd зависимости могут быть разрешены правильным построением файлов юнитов. ,Наиболее частый случай -- когда юниту {{ic|A}} требуется, чтобы юнит {{ic|B}} был запущен перед тем, как запустится сам юнит {{ic|A}}. В этом случае добавьте строки {{ic|1=Requires=B}} и {{ic|1=After=B}} в секцию {{ic|[Unit]}} сервис-файла юнита {{ic|A}}. Если подобная зависимость не является обязательной, добавьте соответственно взамен указанных выше строки {{ic|1=Wants=B}} и {{ic|1=After=B}}. Обратите внимание, что {{ic|1=Wants=}} и {{ic|1=Requires=}} не подразумевают {{ic|1=After=}}, что означает, что если {{ic|1=After=}} не определено, два юнита будут запущены параллельно друг другу.<br />
<br />
Обычно зависимости указываются в сервис-файлах, а не в целевых юнитах. Например, {{ic|network.target}} потребуется любому сервису, который связан с настройкой ваших сетевых интерфейсов, поэтому в любом случае определите загрузку вашего пользовательского юнита после запуска {{ic|network.target}}.<br />
<br />
=== Тип ===<br />
<br />
Существует несколько различных типов запуска служб, которые надо иметь в виду при написании пользовательского сервис-файла. Тип запуска определяется параметром {{ic|1=Type=}} в секции {{ic|[Service]}}. Обратитесь к руководству {{ic|man systemd.service}} для получения более детального объяснения.<br />
<br />
* {{ic|1=Type=simple}}: systemd предполагает, что сервис будет запущен незамедлительно. Процесс при этом не должен форкнуться. Не используйте этот тип, если другим сервисы зависят от очередности при запуске данного сервиса, за исключением активации сокета.<br />
* {{ic|1=Type=forking}}: systemd предполагает, что сервис запускается однократно, процесс форкается и родительский процесс завершается. Используйте данный тип для запуска классических демонов за исключением тех случаев, когда, как вам известно, в таком поведении процесса нет необходимости. Вам следует также определить {{ic|1=PIDFile=}}, чтобы systemd могла отслеживать основной процесс.<br />
* {{ic|1=Type=oneshot}}: Полезен для скриптов, которые выполняют одну работу, а потом завершаются. Вам может понадобиться также установить параметр {{ic|1=RemainAfterExit=yes}}, чтобы systemd по-прежнему считала процесс активным, даже после его завершения<br />
* {{ic|1=Type=notify}}: Идентичен параметру {{ic|1=Type=simple}}, но с той оговоркой, что демон пошлет systemd сигнал о своей готовности. Эталонная реализация данного уведомления обеспечивается библиотекой {{ic|libsystemd-daemon.so}}.<br />
* {{ic|1=Type=dbus}}: Сервис считается находящимся в состоянии готовности, когда определенное {{ic|BusName}} появляется в системной шине DBus.<br />
<br />
=== Редактирование предоставленных пакетами файлов юнитов ===<br />
<br />
Для того, чтобы отредактировать предоставляемый пакетом файл юнита, вы можете создать директорию {{{ic|/etc/systemd/system/<unit>.d/}} и поместить в нее файлы place {{ic|*.conf}}, чтобы переопределить настройки данных файлов или чтобы добавить новые параметры. Systemd проведет парсинг данный файлов {{ic|*.conf}} и применит их настройки поверх настроек поставляемого исходного юнита. Например, если вы просто хотите добавить в сервис-файл дополнительную зависимость, вы можете исоздать следующий файл:<br />
<br />
{{hc|/etc/systemd/system/<unit>.d/customdependency.conf|2=<br />
[Unit]<br />
Requires=<new dependency><br />
After=<new dependency>}}<br />
<br />
Затем выполните следующие команды для того, чтобы изменения вступили в силу:<br />
<br />
# systemctl daemon-reload<br />
# systemctl restart <unit><br />
<br />
В качестве другого варианта вы можете скопировать старый юнит из директории {{ic|/usr/lib/systemd/system/}} в директорию {{ic|/etc/systemd/system/}} aи применить свои изменения в последней директории. Юнит-файл в директории {{ic|/etc/systemd/system/}} всегда имеет приоритет и переопределяет настройки такого же юнита в директории {{ic|/usr/lib/systemd/system/}}. Обратите внимание, что поставляемый исходный юнит в директории {{ic|/usr/lib/}} изменяется при обновлении пакета и эти изменения не будут автоматически применены к вашему отредактированному юниту в директории {{ic|/etc/}}. Дополнительно вы должны вручную выполнить команду {{ic|systemctl reenable <unit>}}, чтобы изменения вступили в силу. В силу указанных соображений рекомендуется вместо данного варианта использовать описанный выше метод с файлами в директории {{ic|*.conf}}. <br />
<br />
{{Tip|Вы можете использовать команду {{ic|systemd-delta}}, чтобы увидеть, какие файлы юнитов были переопределены и что в точности было изменено. Поскольку файлы, предоставляющие юниты, будут время от времени обновляться, используйте для обслуживания системы systemd-delta.}}<br />
<br />
=== Подсветка синтаксиса файлов юнитов в Vim ===<br />
<br />
Подсветка синтаксиса файлов юнитов для systemd в редакторе [[Vim]] может быть осуществлена путем установки пакета {{Pkg|vim-systemd}} из [[Official Repositories (Русский)|официальных репозиториев]].<br />
<br />
== Уровни запуска/цели ==<br />
<br />
Уровни запуска (по-английски уровень запуска - runlevel) для systemd являются устаревшей концепцией. Systemd использует ''цели'' (англ. target), которые выполняют ту же задачу, что и уровни запуска, но действуют немного по-другому. Каждая ''цель'' поименована (т.е. имеет собственное имя, а не номер) и, как предполагается, предназначена для конкретных задач; возможно иметь в одно и то же время активными несколько таких целей. Некоторые ''цели'' реализованы так, что наследуют все сервисы других ''целей'' и добавляют к ним свои сервисы. В systemd имеются также ''цели'', которые имитируют общие уровни запуска SystemVinit, поэтому вы можете переключаться между целевыми юнитами с использованием привычной команды {{ic|telinit RUNLEVEL}}. <br />
<br />
=== Получение информации о текущем уровне запуска/цели ===<br />
<br />
При использовании systemd для этого предназначена следующая команда (заменяющая {{ic|runlevel}}):<br />
<br />
$ systemctl list-units --type=target<br />
<br />
=== Создание пользовательской цели ===<br />
<br />
Уровни запуска, по которым расписаны конкретные задачи на установке дистрибутива Fedora по умолчанию - 0, 1, 3, 5 и 6; есть маппинг 1:1 с помощью конкретной цели systemd. К сожалению, не существует хорошего способа сделать то же самое для определяемых пользователем уровней, таких, как 2 и 4. Использование их предполагает, что вы создаете новый именованный '' целевой юнит'' systemd наподобие {{ic|/etc/systemd/system/<your target>}}, который берет за основу один из существующих уровней запуска (взгляните, например, на {{ic|/usr/lib/systemd/system/graphical.target}}), создаете также директорию {{ic|/etc/systemd/system/<your target>.wants}} и затем символические ссылки на те дополнительные сервисы из директории {{ic|/usr/lib/systemd/system/}}, которые вы хотите включить при загрузке.<br />
<br />
== Таблица уровней запуска и их аналогов в Systemd ==<br />
<br />
{| class="wikitable" border="1" cellpadding="5" cellspacing="0"<br />
! Уровнень запуска SysV !! systemd Target !! Примечание<br />
|-<br />
| 0 || runlevel0.target, poweroff.target || Выключить систему.<br />
|-<br />
| 1, s, single || runlevel1.target, rescue.target || Однопользовательский уровень запуска.<br />
|-<br />
| 2, 4 || runlevel2.target, runlevel4.target, multi-user.target || Уровень запуска, определенный пользователем/специфичный для узла. По умолчанию соответствует уровню запуска 3.<br />
|-<br />
| 3 || runlevel3.target, multi-user.target || Многопользовательский режим без графики. Пользователи, как правило, входят с помощью множества консолей или через сеть.<br />
|-<br />
| 5 || runlevel5.target, graphical.target || Многопользовательский режим с графикой. Обычно эквивалентен запуску всех сервисов уровня 3 и графическому менеджеру входа.<br />
|-<br />
| 6 || runlevel6.target, reboot.target || Перезагрузка.<br />
|-<br />
| emergency || emergency.target || Аварийная оболочка.<br />
|-<br />
|}<br />
<br />
=== Изменение текущей цели ===<br />
<br />
В systemd цели доступны посредством " целевых юнитов". Вы можете изменить их командой:<br />
<br />
# systemctl isolate graphical.target<br />
<br />
Данная команда изменит только лишь текущую цель и не повлияет на следующую загрузку системы. Она соответствует командам наподобие {{ic|telinit 3}} или {{ic|telinit 5}} для Sysvinit.<br />
<br />
=== Изменение цели для загрузки ===<br />
<br />
Стандартная цель - {{ic|default.target}}, которая по умолчанию является псевдонимом юнита {{ic|graphical.target}} (примерно соответствующего прежнему уровню выполнения 5). Для изменения цели при загрузке по умолчанию, добавьте следующий дополнительный [[kernel parameters|параметр ядра]] в вашем загрузчике:<br />
<br />
{{Tip|Расширение {{ic|.target}} можно опустить.}}<br />
<br />
* {{ic|1=systemd.unit=multi-user.target}} (что примерно соответствует прежнему уровню выполнения 3),<br />
* {{ic|1=systemd.unit=rescue.target}} (что примерно соответствует прежнему уровню выполнения 1).<br />
<br />
Другой путь заключается в том, чтобы оставить загрузчик без изменений и изменить целевой юнит по умолчанию - {{ic|default.target}}, что достигается командой {{ic|systemctl}}:<br />
<br />
# systemctl enable multi-user.target<br />
<br />
Эффект от применения данной команды выводится через {{ic|systemctl}}; символическая ссылка на новый целевой юнит по умолчанию создается в директории {{ic|/etc/systemd/system/default.target}}. Это сработает в том случае (и только в том случае), если имеется следующая секция:<br />
<br />
[Install]<br />
Alias=default.target<br />
<br />
в конфигурационном файле целевого юнита. В настоящий момент как {{ic|multi-user.target}}, так и {{ic|graphical.target}} оба имеют данную секцию.<br />
<br />
== Журнал ==<br />
С версии 38 systemd имеет собственную систему ведения логов - журнал (journal). По умолчанию, более не требуется запуск демона syslog. Для чтения логов используйте команду:<br />
<br />
# journalctl<br />
<br />
По умолчанию (когда в конфигурационном файле {{ic|/etc/systemd/journald.conf}} параметр {{ic|Storage&#61;}} имеет значение {{ic|auto}}) журнал записывается в директорию {{ic|/run/systemd/journal}}. Директория {{ic|/var/log/journal/}} создается при установке {{ic|core/systemd}}. В случае, если вы или какая-либо программа удалили ее), systemd '''не''' воссоздаст ее автоматически , но при следующем обновлении systemd эта директория будет восстановлена. До восстановления данной директории, логи будут записываться в директорию {{ic|/run/systemd/journal}}. Это означает, что логи будут потеряны при перезагрузке.<br />
<br />
=== Фильтрация вывода ===<br />
<br />
{{ic|journalctl}} позволяет фильтровать вывод по особым полям.<br />
<br />
Примеры:<br />
<br />
Показать все сообщения с момента текущей загрузки системы:<br />
<br />
# journalctl -b<br />
<br />
Однако часто интерес представляют сообщения, выданные во время не текущей, а предыдущей загрузки системы (например, если произошел неустраненный аварийный отказ системы). В настоящее время данная функция еще не реализована, хотя прошла дискуссия на [http://comments.gmane.org/gmane.comp.sysutils.systemd.devel/6608 systemd-devel@lists.freedesktop.org] (сентябрь/октябрь 2012).<br />
<br />
В качестве решения проблемы в настоящее время можно использовать следующую команду:<br />
<br />
# journalctl --since=today | tac | sed -n '/-- Reboot --/{n;:r;/-- Reboot --/q;p;n;b r}' | tac<br />
<br />
при условии, что предыдущая загрузка системы прошла сегодня. Имейте в виду, что, если на данный день имеется много сообщений, вывод данной команды произойдет с определенной задержкой.}}<br />
<br />
Последние сообщения:<br />
<br />
# journalctl -f<br />
<br />
Показать все сообщения определенной программы:<br />
<br />
# journalctl /usr/lib/systemd/systemd<br />
<br />
Показать все сообщения определенного процесса:<br />
<br />
# journalctl _PID=1<br />
<br />
Показать все сообщения определенного юнита:<br />
<br />
# journalctl -u netcfg<br />
<br />
Обратитесь к {{ic|man journalctl}} и {{ic|systemd.journal-fields}} или [http://0pointer.de/blog/projects/journalctl.html блог Леннерта (англ.)] для получения детальной информации.<br />
<br />
=== Ограничение размера журнала ===<br />
<br />
Если журнал сохраняется при перезагрузке, размер его по умолчанию ограничен значением в 10% от объема соответствующей файловой системы. Например, для директории {{ic|/var/log/journal}}, расположенной на корневом разделе в 50 Гбайт, максимальный размер журналируемых данных составит до 5 Гбайт. Максимальный объем постоянного журнала можно контролировать при помощи значения {{ic|SystemMaxUse}} в конфигурационном файле {{ic|/etc/systemd/journald.conf}}, поэтому для ограничения его объемом в 50 Mбайт раскомментируйте и отредактируйте соответствующую строку:<br />
<br />
SystemMaxUse=50M<br />
<br />
Обратитесь к {{ic|man journald.conf}} для получения дальнейшей информации.<br />
<br />
=== Journald в связке с классическим демоном syslog ===<br />
<br />
Совместимость с классической реализацией syslog обеспечивается сокетом {{ic|/run/systemd/journal/syslog}}, в который перенаправляются все сообщения. Чтобы дать возможность демону syslog работать вместе с журналом systemd, следует привязать данный демон к указанному сокету вместо {{ic|/dev/log}} ([http://lwn.net/Articles/474968/ официальное сообщение]). Пакетом {{pkg|syslog-ng}} в репозиториях автоматически предоставляется необходимая конфигурация.<br />
<br />
# systemctl enable syslog-ng<br />
<br />
== Сеть ==<br />
<br />
{{Warning|Данный раздел в английской версии включен в состав статьи [[Configuring Network]]; в русской версии временно оставлен из-за того, что русский вариант [[Configuring Network (Русский)]] устарел в сравнении с английским.}}<br />
<br />
=== Динамическое подключение (DHCP) с использованием dhcpcd ===<br />
<br />
Если хотите использовать только DHCP для своего соединения Ethernet, вы можете воспользоваться сервисом {{ic|dhcpcd@.service}} (который поставляется пакетом {{Pkg|dhcpcd}}).<br />
<br />
Чтобы подключить DHCP для {{ic|eth0}}, просто выполните команду:<br />
<br />
# systemctl start dhcpcd@eth0.service<br />
<br />
Вы можете включить этот сервис, и он будет автоматически запускаться при загрузке. Это делается командой:<br />
<br />
# systemctl enable dhcpcd@eth0.service<br />
<br />
Иногда сервис dhcpd запускается до загрузки модуля вашей сетевой карты ({{bug|30235}}), в этом случае вручную добавьте вашу сетевую карту в конфигурационный файл {{ic|/etc/modules-load.d/*.conf}}. Например, для карты Realtek необходима загрузка модуля {{ic|r8169}}, поэтому создайте такой конфигурационный файл:<br />
<br />
{{hc|/etc/modules-load.d/realtek.conf|2=<br />
r8169}}<br />
<br />
=== Другие конфигурации ===<br />
<br />
Для статического подключения, беспроводной сети или сложной конфигурации сети наподобие сетевого моста, вы можете использовать [[Netcfg#systemd_support|netcfg]] или [[NetworkManager#Enable_NetworkManager_under_Native_systemd_system|NetworkManager]], для обоих этих инструментов управления сетью имеются сервис-файлы для systemd.<br />
<br />
{{Note|Если вы хотите использовать netcfg, NetworkManager или другие программы управления сетью, вам не надо в этом случае запускать или включать сервис dhcpcd как показано в предыдущем параграфе.}}<br />
<br />
== Оптимизация ==<br />
<br />
{{Warning| Данный раздел в оригинальной английской вики предлагается перенести в статью [[Improve Boot Performance]].}}<br />
<br />
=== Анализ процесса загрузки ===<br />
<br />
==== Использование systemd-analyze ====<br />
<br />
Systemd предоставляет инструмент под названием {{ic|systemd-analyze}}, позволяющий проанализировать процесс загрузки вашей системы, чтобы можно было увидеть, какие файлы юнитов тормозят загрузку. Соответственно, вы можете оптимизировать вашу систему. Для использования данного инструмента вам потребуется установить пакеты {{Pkg|python2-cairo}} и {{Pkg|python2-gobject}}.<br />
<br />
Чтобы увидеть, сколько времени было потрачено на подготовку пространства ядра и пространства пользователя во время загрузки, просто выполните команду:<br />
<br />
$ systemd-analyze<br />
<br />
{{Tip|<br />
<br />
* Если вы дополните хуком {{ic|timestamp}} ваш массивr {{ic|HOOKS}} в конфигурационном файле {{ic|/etc/[[mkinitcpio]].conf}} и пересоберете ваш образ initramfs командой {{ic|mkinitcpio -p linux}}, systemd-analyze сколько времени затрачивается на initramfs.<br />
<br />
* Если вы загружаетесь при помощи [[UEFI]] и используете загрузчик, в который имплементирова [http://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface Boot Loader Interface] от systemd (что в настоящий момент применено только в [[Gummiboot]] ), systemd-analyze дополнительно сможет показать, сколько времени затрачено на прошивку EFI сам загрузчик.}}<br />
<br />
Чтобы увидеть список запускаемых файлов юнитов, отсортированный по потраченному каждым из них на загрузку времени, выполните команду:<br />
<br />
$ systemd-analyze blame<br />
<br />
Вы также можете создать файл SVG, показывающий процесс загрузки в графическом виде, наподобие [[Bootchart]]:<br />
<br />
$ systemd-analyze plot > plot.svg<br />
<br />
==== Использование systemd-bootchart ====<br />
<br />
Bootchart объединен с systemd с 17 октября 2012 года и вы можете использовать его для загрузки также, как и оригинальный bootchart. Добавьте следующие команду к строке инициализации ядра:<br />
<br />
initcall_debug printk.time=y init=/usr/lib/systemd/systemd-bootchart<br />
<br />
==== Использование bootchart2 ====<br />
<br />
Вы также можете использовать версию bootchart для визуализации последовательности при загрузке системы.<br />
Из-за невозможности использовать стандартные установки bootchart (так как нельзя добавить в командную строку ядра вторую запись init), вам придется воспользоваться пакетом {{AUR|bootchart2}} из [[AUR]], поставляемым с недокументированным сервисом systemd. После установки bootchart2 выполните команду:<br />
<br />
# systemctl enable bootchart<br />
<br />
Обратитесь к [https://github.com/mmeeks/bootchart документации bootchart (англ.)] за дальнейшей и детализированной информацией об использовании данной версии bootchart.<br />
<br />
=== Readahead ===<br />
<br />
systemd поставляется со свой реализации технологии readahead, что в принципе должно усовершенствовать процесс загрузки системы. Однако, в зависимости от версии вашего ядра и типа жесткого диска, скорость обращения к данным может разниться (например, может быть медленнее). Чтобы включить данный сервис, выполните:<br />
<br />
# systemctl enable systemd-readahead-collect systemd-readahead-replay<br />
<br />
Не забудьте, что волшебство технологии readahead подействует только после нескольких перезапусков системы<br />
<br />
== Устранение неполадок ==<br />
<br />
=== Выключение/перезагрузка происходят ужасно долго ===<br />
<br />
Если процесс выключения занимает очень долгое время (или, по-видимому, зависает), то, вероятно, виноват сервис, который не завершает свою работу. systemd ожидает некоторое время, пока каждый сервис завершит свою работу самостоятельно, и только потом пытается принудительно завершить (kill) его. Если вы столкнулись с такой проблемой, обратитесь к [http://freedesktop.org/wiki/Software/systemd/Debugging#Shutdown_Completes_Eventually данной статье (англ.)].<br />
<br />
=== По-видимому, процессы с кратким сроком жизни не оставляют записей в протоколах ===<br />
<br />
Если команда {{ic|journalctl -u foounit.service}} не показывает выхода для сервиса с коротким сроком жизни, вместо нее обратитесь к PID. Например, если загрузка сервиса systemd-modules-load.service завершилась неудачно и команда {{ic|systemctl status systemd-modules-load}} показывает, что он был запущен с PID 123, то вы сможете посмотреть выход процесса в журнале под данным PID, то есть командой {{ic|journalctl -b _PID&#61;123}}. Такие поля метаданных для журнала, как _SYSTEMD_UNIT и _COMM собираются асинхронно и зависят от директории {{ic|/proc}} в случае с действующими процессами. Исправление этой ситуации требует внесения исправлений в ядро для обеспечения этих данных через сокет, наподобие SCM_CREDENTIALS.<br />
<br />
== Полезные ссылки ==<br />
<br />
*[http://www.freedesktop.org/wiki/Software/systemd Официальный веб-сайт (англ.)]<br />
*[http://0pointer.de/public/systemd-man/ Страницы руководств (англ.)]<br />
*[http://freedesktop.org/wiki/Software/systemd/Optimizations systemd Optimizations (англ.)]<br />
*[http://www.freedesktop.org/wiki/Software/systemd/FrequentlyAskedQuestions FAQ (англ.)]<br />
*[http://www.freedesktop.org/wiki/Software/systemd/TipsAndTricks Tips And Tricks (англ.)]<br />
*[http://0pointer.de/blog/projects/the-biggest-myths.html The Biggest Myths (англ.)]<br />
*[http://www2.kangran.su/%7Ennz/pub/s4a/s4a_latest.pdf systemd для администраторов (PDF)] - перевод [http://0pointer.de/blog/projects цикла статей] Леннарта Поттеринга (Lennart Poettering)<br />
*[http://0pointer.de/blog/projects/systemd.html Блог Lennart'а (англ.)]<br />
*[http://www.h-online.com/open/features/Control-Centre-The-systemd-Linux-init-system-1565543.html часть 1] и [http://www.h-online.com/open/features/Booting-up-Tools-and-tips-for-systemd-1570630.html часть 2] вводной статьи в журнале ''The H Open'' (англ.)<br />
*[http://archlinux.org.ru/forum/topic/1301/ systemd mini FAQ]<br />
*[http://fedoraproject.org/wiki/Systemd Fedora Linux Wiki: Systemd (англ.)]<br />
*[http://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet Fedora's SysVinit to systemd cheatsheet (англ.)]<br />
*[http://wiki.russianfedora.ru/index.php/Systemd systemd - база знаний проекта Fedora]<br />
*[http://wiki.debian.org/ru/Systemd Debian Wiki: systemd - менеджер системы и сервисов]<br />
*[http://wiki.ubuntu.com/systemd Ubuntu Wiki: systemd (англ.)]</div>
Vadik
https://wiki.archlinux.org/index.php?title=Downgrading_packages_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=250551
Downgrading packages (Русский)
2013-03-13T19:46:50Z
<p>Vadik: /* Инструкция по откату пакетов */</p>
<hr />
<div>[[Category:Package management (Русский)]]<br />
[[cs:Downgrading Packages]]<br />
[[de:Ältere_Paketversion_installieren_(Downgrade)]]<br />
[[en:Downgrading Packages]]<br />
[[es:Downgrading Packages]]<br />
[[fa:دانگرید]]<br />
[[fr:Downgrade]]<br />
[[it:Downgrading Packages]]<br />
[[sk:Downgrading Packages]]<br />
[[tr:Paket_sürümünü_düşürmek]]<br />
[[uk:Downgrading Packages]]<br />
[[zh-CN:Downgrading Packages]]<br />
{{Article summary start|Описание}}<br />
{{Article summary text|Возврат к более старым версиям пакетов: как и зачем.}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary wiki|Arch Build System}}<br />
{{Article summary wiki|pacman}}<br />
{{Article summary text|[[LVM]] &ndash; how to enable snapshots and how to revert to their state}}<br />
{{Article summary end}}<br />
<br />
В этом руководстве описывается процесс отката установленного пакета к его предыдущей версии. Откат версии пакета не рекомендуется и применяется в том случае, когда в текущем пакете обнаружена ошибка.<br />
<br />
Прежде чем откатить пакет, подумайте, нужно ли это делать. Если необходимость отката вызвана ошибками, пожалуйста, помогите сообществу Arch и разработчикам этого ПО, потратьте несколько минут на составление отчета об ошибке и отправке его в трекер ошибок Arch или на сайт самого проекта. В связи с безрелизной моделью развития Arch при продолжительном его использовании, Вы, возможно, периодически будете сталкиваться с ошибками в новых пакетах.<br />
Наше сообщество и разработчики ПО будут признательны Вам за приложенные усилия. Дополнительная информация может не только спасти нас от часов тестирования и отладки, но также позволит повысить стабильность программного обеспечения.<br />
<br />
== Причины ==<br />
Процесс отката (понижения) версии пакета заключается в удалении текущей версии пакета и установке вместо нее предыдущей. Откат может выполняться как до предыдущей версии, так и до любой доступной.<br />
<br />
Причины понижения версии (среди прочих) могут быть следующие: ошибка в текущей версии, отсутствие требуемой функциональности или установка пакета с целью эксперимента. В любом из этих случаев пользователю, возможно, будет менее проблематично вернуться к старой версии пакета, чем ожидать нового релиза..<br />
<br />
Откат версии одного пакета может повлечь за собой необходимость понижения версий других пакетов. При наличии большого количества экспериментальных и тестовых пакетов, а также отредактированных конфигурационных файлов полная переустановка системы может оказаться предпочтительнее откату версий.<br />
<br />
== Подробности ==<br />
Тем не менее, пользователю нужно учесть следующие моменты:<br />
<br />
*Во-первых, понадобится решить вопрос с зависимостями каждой из программ. Необходимые библиотеки могут изменяться с каждой новой версией, функционально связанные с ними файлы, также могут полностью отличаться от предыдущих. Поэтому, возможно, потребуется их замена на более ранние версии.<br />
<br />
*Во-вторых, в случае удаления необходимых версий пакетов из системы, необходимо убедиться, в их доступности из другого источника. Это связано с безрелизной моделью развития системы Arch Linux, репозитории автоматически обновляются без сохранения старых версий пакетов. Подробнее об этой проблеме ниже.<br />
<br />
*В-третьих, следует соблюдать осторожность при внесении изменений в конфигурационные файлы и сценарии. На данный момент, во избежание возможных проблем, лучше использовать pacman, хотя и он имеет некоторые ограничения.<br />
<br />
Сейчас находится в разработке концепция Машины Отката Arch (Arch Rollback Machine) и при готовности она будет включена в стандартные средства pacman. Как только это произойдет, процесс станет автоматизированным.<br />
<br />
А пока следуйте данным инструкциям.<br />
<br />
== Инструкция по откату пакетов ==<br />
* В: Я только что выполнил {{Ic|pacman -Syu}} и пакет ''XYZ'' с версии М был обновлен до версии N. Обновление пакета вызывает проблемы на моем компьютере, как я могу откатить версию N к старой версии M?<br />
* О: Версию пакета можно понизить элементарно, для этого найдите старую версию нужного пакета в директории {{ic|/var/cache/pacman/pkg}} (если ранее не запускали {{Ic|pacman -Scc}}, то нужный пакет будет там). Если пакет есть, то его можно установить, выполнив {{Ic|pacman -U /var/cache/pacman/pkg/pkgname-olderpkgver.pkg.tar.gz}}. Если нужный пакет был скачан вручную, то понадобится указать полный путь к пакету.<br />
<br />
Эта команда удалит существующий пакет, проверив при этом все изменяющиеся зависимости, и установит более старую версию пакета.<br />
<br />
{{Note| При изменении основных компонентов операционной системы, может возникнуть с необходимость замены десятков пакетов на более старые версии.<br />
Или же пакеты могут у вас просто отсутствовать, и тогда их придется разыскивать самостоятельно, следя при этом, чтоб при обновлении повторно не были установлены нежелательные версии пакетов.}}<br />
<br />
В [[AUR]] доступен пакет под названием {{AUR|downgrade}}. Это простой скрипт на Bash, который ищет в кэше старые версии пакета. Если пакет не будет найден, то он может искать в [[#ARM|A.R.M.]]. Затем понадобится выбрать пакет для установки. Здесь описаны основные возможности пакета по автоматизации процесса. Для получения дополнительной информации выполните: {{Ic|downgrade --help}}.<br />
<br />
Также для отката пакетов вы можете воспользоваться программой {{AUR|downgrader}} - это мощная программа, написанная на C++, работает с логами pacman, кэшем пакетов и ARM. Она поможет откатить пакет к предыдущей версии по данным из логов, сама найдет, скачает и установит нужный пакет. Также она умеет работать с несколькими пакетами одновременно, например, если система стала нестабильна после большого обновления. Для получения дополнительной информации обратитесь к [http://archlinux.org.ru/forum/topic/4262/ этой] теме форума.<br />
<br />
== Поиск старых версий ==<br />
Существует три способа поиска.<br />
<br />
==== Зеркала Out-Of-Sync ====<br />
При отсутствии старых версий пакетов, нужно проверить, не синхронизировалось ли одно из зеркал, и получить пакет оттуда.<br />
Нажмите здесь, чтобы посмотреть [http://users.archlinux.de/~gerbra/mirrorcheck.html статус зеркал].<br />
<br />
Также нужные пакеты можно поискать на этом зеркале:<br />
* http://schlunix.org/?page_id=11<br />
<br />
====ARM====<br />
[http://arm.konnichi.com/ Arch Rollback Machine] (ARM) содержит архив снимков (snapshots) всех репозиториев, начиная с 1 ноября 2009.<br />
Содержимое сайта постоянно изменяется, поэтому если вы заинтересованы в ARM, то лучше регулярно просмотривать объявления и обсуждения на форуме, чтобы быть в курсе текущего состояния проекта. Последние обсуждения на форуме можно почитать [https://bbs.archlinux.org/viewtopic.php?id=53665 здесь].<br />
<br />
URL-адреса задуманы таким образом, чтоб при помощи скриптов wget+pacman было максимально просто "откатить" систему до определенной даты.<br />
Автоматизация процесса пока не объяснена.<br />
Для упрощения ручного поиска отдельного пакета можно использовать страницу поиска, расположенную в [http://arm.konnichi.com/search/ ARM Search].<br />
<br />
==== Re-компиляция пакетов ====<br />
В худшем случае, если пакет не найден в другом месте, вам придется самостоятельно собирать себе старую версию. Для этого нужен файл [[PKGBUILD (Русский)|PKGBUILD]], можно для изменения взять существующий PKGBUILD из [[ABS]] или найти нужный пакет на https://www.archlinux.org/packages/. После того, как вы его нашли, нажмите кнопку "Открыть логи SVN" и выберите "Просмотр журнала". Найдите нужный вариант и нажмите на ссылку. Далее просто скачайте файлы, расположенные в этом каталоге, и создайте пакет с помощью с makepkg.<br />
<br />
== Дополнительная информация ==<br />
Изменение основных настроек менеджера пакетов [[pacman]] осуществляется с помощью редактирования файла {{ic|pacman.conf}}, для редактироваия файла понадобятся права root. Для правки файла следует набрать в командной строке <br />
nano /etc/pacman.conf<br />
(Конечно можно редактировать файл и с помощью графических утилит, например Shaman, но чаще намного быстрее и безопаснее выполнять такие действия из командной строки.)<br />
<br />
Достаточно просто изменить адреса репозиториев, в которых '''pacman''' осуществляет поиск программ. Для скрытия от '''pacman''' и системы управления пакетами определенного репозитория нужно в начало строки репозитория, добавить знак фунта (#). <br />
<br />
Например, для добавления репозитория с ARM, нужно закомментировать старую строку, и добавить новую с соответствующими путями, формат:<br />
[core]<br />
#<nowiki>Server=http://mirrors.gigenet.com/archlinux/core/os/i686</nowiki><br />
<nowiki>Server=http://arm.konnichi.com/2009/11/01/core/os/i686</nowiki><br />
<br />
В этом примере, дата в имени раздела указывает на то, что в нем расположены все пакеты, которые были доступны на 1 ноября 2009 года. Обратите внимание, что все репозитории являются снимками (snapshots) официального репозитория. Далее нужно разместить зеркало ARM в самом верху {{ic|/etc/pacman.d/mirrorlist}}. Так для синхронизации всех официальных репозиториев ARM, перечисленных в {{ic|/etc/pacman.conf}}, нужно выбрать на зеркале http://arm.konnichi.com/2009/11/01/, например, $repo/os/i686, и выполнить:<br />
pacman -Syy # получить список пакетов<br />
pacman -Suu # откатить все пакеты до версии в репозитории<br />
<br />
Но все это не гарантирует полностью автоматического отката, так как иногда имеющаяся версия пакета не совпадает с требующейся. В таком случае можно поискать нужную версию пакета на глобальном зеркале, например http://arm.konnichi.com/core/os/i686, обратите внимание на отсутствие даты в пути.<br />
<br />
Для получения дополнительной информации изучите [[pacman]].<br />
<br />
{{FAQ<br />
|question=Я не могу откатить пакет из-за зависимостей.<br />
|answer=При обновлении или удалении с помощью {{ic|pacman -Ud pkgpkgname-olderpkgver.pkg.tar.gz}}, можно игнорировать зависимости, но учитывайте, что в дальнейшем это может привести к проблемам в системе.}}<br />
<br />
{{FAQ<br />
|question=Как я могу запретить pacman обновлять некоторые пакеты?<br />
|answer=Добавить название пакета в строку "IgnorePkg" файла {{ic|/etc/pacman.conf}}.<br />
{{Ic|<nowiki>IgnorePkg = package1 package2 ...</nowiki>}} в {{ic|pacman.conf}} запретит pacman, при выполнении {{ic|--sysupgrade}}, устанавливать обновления для выбранных пакетов.}}<br />
<br />
{{FAQ<br />
|question=Я хочу вернуться ко вчерашнему состоянию своей системы.<br />
|answer=Легко осуществимо при использовании механизма периодических снимков (snapshots) [[LVM]].}}</div>
Vadik
https://wiki.archlinux.org/index.php?title=Fonts_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=248995
Fonts (Русский)
2013-03-03T08:04:38Z
<p>Vadik: /* Практика */</p>
<hr />
<div>[[Category:Fonts (Русский)]]<br />
[[Category:Graphics and desktop publishing (Русский)]]<br />
[[Category:Eye candy (Русский)]]<br />
[[Category:Русский]]<br />
[[cs:Fonts]]<br />
[[en:Fonts]]<br />
[[es:Fonts]]<br />
[[it:Fonts]]<br />
[[tr:Yazıtipleri]]<br />
[[zh-CN:Fonts]]<br />
[[zh-TW:Fonts]]<br />
{{Article summary start}}<br />
{{Article summary text|Установка и настройка шрифтов в Arch Linux.}}<br />
{{Article summary heading|См. также}}<br />
{{Article summary wiki|MS Fonts}}<br />
{{Article summary wiki|Xorg Font Configuration (Русский)}}<br />
{{Article summary end}}<br />
<br />
= Установка шрифтов =<br />
<br />
Основной каталог размещения шрифтов:<br />
<br />
* {{ic|/usr/share/fonts/}}<br />
Шрифты, расположенные в этих каталогах, будут доступны всем пользователям системы. Однако, установка в эти каталоги требует привилегий суперпользователя. Если у вас нет таких полномочий — Вы можете установить шрифты в каталог:<br />
<br />
* {{ic|~/.fonts/}}<br />
Все шрифты, находящиеся в {{ic|~/.fonts/}} будут доступны только его владельцу.<br />
<br />
== Установка шрифтов при помощи менеджера пакетов Pacman ==<br />
<br />
Просмотреть все доступные для установки шрифты можно командой:<br />
<br />
{{bc|$ pacman -Ss fonts}}<br />
<br />
Установить необходимый шрифт можно командой {{ic|pacman -S <имя-пакета>}}. Например:<br />
<br />
{{bc|# pacman -S ttf-dejavu}}<br />
Эта команда установит шрифт ''Bitstream Vera'' в каталог {{ic|/usr/share/fonts/TTF/}}.<br />
<br />
== Ручная установка шрифтов ==<br />
Для установки шрифтов вручную необходимо:<br />
<br />
* Скачать необходимые шрифты<br />
* Создать каталог хранения шрифтов, установленных вручную. Например:<br />
{{bc|# mkdir /usr/share/fonts/TTFmisc}}<br />
* Скопировать/разархивировать в него необходимые шрифты<br />
<br />
* Создать/пересоздать список псевдонимов для имён шрифтов, который необходим X-серверу:<br />
{{bc|<br />
# cd /usr/share/fonts/TTFmisc<br />
# rm ./fonts.scale<br />
# mkfontscale<br />
}}<br />
* Создать/пересоздать список имён шрифтов в данном каталоге и файлов, в которых они содержатся (необходим X-серверу):<br />
{{bc|<br />
# cd /usr/share/fonts/TTFmisc<br />
# rm ./fonts.dir<br />
# mkfontdir<br />
}}<br />
* Пересоздать файлы описания fonts.cache-NN для каталогов со шрифтами:<br />
{{bc|# fc-cache -fv}}<br />
<br />
= Рекомендации по выбору шрифтов =<br />
<br />
В качестве основного шрифта рабочего окружения можно рекомендовать либо [http://en.wikipedia.org/wiki/Droid_(font) Droid Fonts], либо [http://ru.wikipedia.org/wiki/Bitstream_Vera Bitstream Vera Fonts], либо [http://www.redhat.com/promo/fonts Red Hats Liberation Fonts]. Однако стоит заметить, что [http://img515.imageshack.us/img515/4259/liberationcustomdb7.png начертание некоторых букв] шрифта ''Red Hats Liberation Fonts'' на данный момент оставляет желать лучшего, поэтому его, в отличие от ''Bitstream Vera Fonts'', необходимо устанавливать вручную, а не из репозитория.<br />
<br />
== Установка Droid Fonts ==<br />
{{bc|# pacman -S ttf-droid}}<br />
<br />
== Установка Bitstream Vera Fonts ==<br />
<br />
{{bc|# pacman -S ttf-dejavu}}<br />
<br />
== Установка Red Hats Liberation Fonts ==<br />
<br />
{{bc|1=<br />
# mkdir /usr/share/fonts/TTFmisc<br />
# cd /usr/share/fonts/TTFmisc<br />
# wget -O ./liberation-fonts.tar.gz https://bugzilla.redhat.com/attachment.cgi?id=290976 <br />
# tar -xf ./liberation-fonts.tar.gz<br />
# cp ./liberation-fonts/*.ttf ./<br />
# rm -R ./liberation-fonts/<br />
# rm -R liberation-fonts.tar.gz<br />
# mkfontscale<br />
# mkfontdir<br />
}}<br />
<br />
== Установка шрифтов Microsoft<sup>&reg;</sup> ==<br />
<br />
Так как в пакете ''ttf-ms-fonts'' присутствуют некоторые шрифты, начертание которых на данный момент оставляет желать лучшего, можно воспользоваться альтернативным вариантом их установки, который заключается в выборочной инсталляции только необходимых шрифтов.<br />
<br />
Необходимые шрифты Вы можете скачать на [http://sourceforge.net/project/showfiles.php?group_id=34153&package_id=56408 этой] странице веб-сайта [http://ru.wikipedia.org/wiki/SourceForge.net SourceForge.net]<br />
<br />
'''''Не рекомендуется''' скачивать шрифт ''Arial'', т.к. ''Red Hats Liberation Fonts'', загруженный с сайта [https://bugzilla.redhat.com/show_bug.cgi?id=427791 Red Hat Bugzilla], имеет схожее начертание и более чёткие линии.''<br />
<br />
После того, как Вы скачали все необходимые exe-файлы — из них нужно извлечь шрифты в соответствующую папку (напр., {{ic|/usr/share/fonts/TTFmisc/}}):<br />
<br />
{{bc|<br />
# cabextract -F *.TTF -d /usr/share/fonts/TTFmisc <имя-пакета>.exe<br />
# cd /usr/share/fonts/TTFmisc<br />
# mkfontscale<br />
# mkfontdir<br />
}}<br />
<br />
= Шрифты с включенным LCD фильтром=<br />
== "LCD" пакеты ==<br />
'''Установка:'''<br />
<br />
Удалите оригинальные пакеты:<br />
{{bc|<br />
# pacman -Rd libxft cairo<br />
}}<br />
<br />
Установите патченные пакеты из [https://aur.archlinux.org/packages.php AUR] (с использованием пакета [[Post_Installation_Tips#Accessing_AUR_seamlessly |yaourt]]):<br />
{{bc|<br />
$ yaourt -S fontconfig-lcd<br />
$ yaourt -S cairo-lcd<br />
# pacman -S libxft-lcd<br />
}}<br />
<br />
Перезапустите Xorg ({{keypress|Ctrl+Alt+Backspace}})<br />
<br />
'''Удаление:'''<br />
{{bc|<br />
# pacman -Rd libxft-lcd cairo-lcd fontconfig-lcd<br />
# pacman -S libxft cairo<br />
}}<br />
<br />
== "LCD" пакеты c патчами Ubuntu==<br />
<br />
'''Установка:'''<br />
<br />
Процесс установки этих пакетов несколько отличается от вышеописанных. Для быстрой и успешной инсталляции все действия должны производиться в такой последовательности:<br />
<br />
{{bc|<br />
$ yaourt -S freetype2-ubuntu<br />
}}<br />
<br />
При установке yaourt сообщит о конфликте, конфликтующие пакеты нужно будет удалить.<br />
<br />
Аналогично устанавливаются остальные пакеты. Порядок установки пакетов должен быть таким:<br />
<br />
1. freetype2-ubuntu<br />
2. fontconfig-ubuntu<br />
3. libxft-ubuntu<br />
4. cairo-ubuntu<br />
<br />
= Конфигурация =<br />
<br />
== Общие понятия ==<br />
<br />
Настройки, касающиеся отрисовки шрифтов в Xorg, находятся в:<br />
<br />
* папке {{ic|/etc/fonts/}}<br />
* файле {{ic|/etc/X11/Xresources}} (содержимое ниже)<br />
<br />
Содержимое {{ic|/etc/fonts/}}:<br />
<br />
* папка conf.avail - содержит доступные файлы конфигураций<br />
* папка conf.d - содержит символические ссылки на файлы конфигураций (из папки {{ic|/etc/fonts/conf.d/}}), определяющие параметры шрифтов (отрисовка, замена одних шрифтов другими и т.д.)<br />
* файл fonts.dtd<br />
* файл fonts.conf<br />
<br />
Например, для применения автохинтинга шрифтов Free Type необходимо создать в папке {{ic|/etc/fonts/conf.d/}} символическую ссылку на файл {{ic|/etc/fonts/conf.avail/10-autohint.conf}}:<br />
<br />
{{bc|<br />
# ln -s /etc/fonts/conf.avail/10-autohint.conf /etc/fonts/conf.d/10-autohint.conf<br />
}}<br />
<br />
'''Примечание:''' В настоящее время не все шрифты с автохинтингом выглядят приемлемо, поэтому рекомендуется его использовать либо для отрисовки шрифтов малого размера, либо не использовать вообще.<br />
<br />
Как можно заметить, для файлов конфигурации применяется следующий формат именования:<br />
<br />
{{ic|<xx>-<sometext>.conf}}, где:<br />
<br />
{{ic|<sometext>}} - любой текст, описывающий параметры, находящиеся в этом файле (напр.: "hinting-full");<br />
<br />
{{ic|<xx>}} - двузначное число от 00 до 99, влияет на позицию файла при сортировке по имени, а, соответственно, и на его приоритет: чем больше число - тем выше приоритет.<br />
<br />
Например: если в дирректории будут находится два файла с именами {{ic|11-hinting-slight.conf}} (применение слабого сглаживания) и {{ic|10-hinting-medium.conf}} (применение среднего сглаживания), то файл {{ic|11-hinting-slight.conf}} "перекроет" файл {{ic|10-hinting-medium.conf}} и при отрисовке шрифтов будет использоваться слабое сглаживание.<br />
<br />
'''Примечание:''' В файле {{ic|/etc/fonts/conf.d/README}} Вы можете более подробно узнать о префиксном нумеровании, применяемого для этих файлов.<br />
<br />
== Рекомендации по настройке (для патчей *-ubuntu) ==<br />
<br />
Здесь приведено содержимое конфигурационных файлов/каталогов, так или иначе влияющих на начертание шрифтов в системе.<br />
<br />
'''Примечание:''' Если у Вас в системе всего один пользовательский аккаунт - настраивать шрифты рекомендуется посредством правки файла {{ic|~/.fonts.conf}} ([[Fonts (Русский)#cat ~/.fonts.conf (альтернатива настройкам в /etc/fonts/...)]]), т.к. это:<br />
* избавит Вас от повторной настройки при переустановке/смене дистрибутива<br />
* удобно для быстрого отката изменений (достаточно сделать копию одного файла, а не нескольких)<br />
<br />
Файл {{ic|/etc/X11/Xresources}}:<br />
{{bc|<br />
Xft.dpi: 96<br />
! hintnone, hintslight, hintmedium, hintfull<br />
Xft.hintstyle: hintfull<br />
Xft.hinting: true<br />
! lcdnone, lcddefault, lcdlight, lcdlegacy<br />
Xft.lcdfilter: lcddefault<br />
Xft.rgba: rgb<br />
}}<br />
<br />
Эти настройки можно также задать персонально для пользователя в файле {{ic|~/.Xdefaults}}. Подробнее об опциях Xft написано [http://www.freedesktop.org/wiki/ScreenFontSettings здесь].<br />
<br />
Каталог {{ic|/etc/fonts/conf.d/}} :<br />
{{bc|<br />
lrwxrwxrwx 1 root root 31 Апр 9 10:48 10-antialias.conf -> ../conf.avail/10-antialias.conf<br />
lrwxrwxrwx 1 root root 42 Апр 17 13:18 10-hinting-full.conf -> /etc/fonts/conf.avail/10-hinting-full.conf<br />
lrwxrwxrwx 1 root root 29 Апр 9 10:48 10-hinting.conf -> ../conf.avail/10-hinting.conf<br />
lrwxrwxrwx 1 root root 43 Апр 8 18:17 10-sub-pixel-rgb.conf -> /etc/fonts/conf.avail/10-sub-pixel-rgb.conf<br />
lrwxrwxrwx 1 root root 51 Апр 17 13:14 11-lcd-filter-lcddefault.conf -> /etc/fonts/conf.avail/11-lcd-filter-lcddefault.conf<br />
...<br />
lrwxrwxrwx 1 root root 41 Апр 9 10:49 45-latin.conf -> /etc/fonts/conf.avail/45-latin.conf-droid<br />
...<br />
lrwxrwxrwx 1 root root 41 Апр 9 10:49 60-latin.conf -> /etc/fonts/conf.avail/60-latin.conf-droid<br />
...<br />
lrwxrwxrwx 1 root root 34 Апр 8 18:18 99-misc.conf -> /etc/fonts/conf.avail/99-misc.conf<br />
}}<br />
<br />
Файл {{ic|/etc/fonts/conf.d/10-antialias.conf}} :<br />
{{bc|1=<br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<!-- Use the Antialiasing --> <br />
<match target="font"><br />
<edit name="antialias" mode="assign"><bool>true</bool></edit><br />
</match><br />
</fontconfig><br />
}}<br />
<br />
Файл {{ic|/etc/fonts/conf.d/10-hinting-full.conf}} :<br />
{{bc|1=<br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<!-- Use Full Hinting --> <br />
<match target="font"><br />
<edit name="hintstyle" mode="assign"><const>hintfull</const></edit><br />
</match><br />
</fontconfig><br />
}}<br />
<br />
Файл {{ic|/etc/fonts/conf.d/10-hinting.conf}} :<br />
{{bc|1=<br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<!-- Use Hinting --> <br />
<match target="font"><br />
<edit name="hinting" mode="assign"><bool>true</bool></edit><br />
</match><br />
</fontconfig><br />
}}<br />
<br />
Файл {{ic|/etc/fonts/conf.d/10-sub-pixel-rgb.conf}} :<br />
{{bc|1=<br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<!-- Enable sub-pixel rendering --> <br />
<match target="font"><br />
<edit name="rgba" mode="assign"><const>rgb</const></edit><br />
</match><br />
</fontconfig><br />
}}<br />
<br />
Файл {{ic|/etc/fonts/conf.d/11-lcd-filter-lcddefault.conf}} :<br />
{{bc|1=<br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<!-- conf.d/lcd-filter-lcddefault.conf --><br />
<fontconfig><br />
<!-- Use lcddefault as default for LCD filter --><br />
<match target="font"><br />
<edit mode="assign" name="lcdfilter"><br />
<const>lcddefault</const><br />
</edit><br />
</match><br />
</fontconfig><br />
}}<br />
<br />
Файл {{ic|/etc/fonts/conf.d/45-latin.conf-droid}} :<br />
{{bc|1=<br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<!--<br />
Mark common families with their generics so we'll get<br />
something reasonable<br />
--><br />
<br />
<!--<br />
Serif faces<br />
--><br />
<alias><br />
<family>Droid Serif</family><br />
<family>Bitstream Vera Serif</family><br />
<family>DejaVu Serif</family><br />
<family>Liberation Serif</family><br />
<family>Times New Roman</family><br />
<family>Times</family><br />
<family>Nimbus Roman No9 L</family><br />
<family>Luxi Serif</family><br />
<family>Thorndale AMT</family><br />
<family>Thorndale</family><br />
<default><family>serif</family></default><br />
</alias><br />
<!--<br />
Sans-serif faces<br />
--><br />
<alias><br />
<family>Droid Sans</family><br />
<family>Bitstream Vera Sans</family><br />
<family>DejaVu Sans</family><br />
<family>Liberation Sans</family><br />
<family>Arial</family><br />
<family>Helvetica</family><br />
<family>Verdana</family><br />
<family>Albany AMT</family><br />
<family>Albany</family><br />
<family>Nimbus Sans L</family><br />
<family>Luxi Sans</family><br />
<default><family>sans-serif</family></default><br />
</alias><br />
<!--<br />
Monospace faces<br />
--><br />
<alias><br />
<family>Droid Sans Mono</family><br />
<family>Bitstream Vera Sans Mono</family><br />
<family>DejaVu Sans Mono</family><br />
<family>Liberation Mono</family><br />
<family>Courier New</family><br />
<family>Courier</family><br />
<family>Andale Mono</family><br />
<family>Luxi Mono</family><br />
<family>Cumberland AMT</family><br />
<family>Cumberland</family><br />
<family>Nimbus Mono L</family><br />
<default><family>monospace</family></default><br />
</alias><br />
<!--<br />
Fantasy faces<br />
--><br />
<alias><br />
<family>Impact</family><br />
<family>Copperplate Gothic Std</family><br />
<family>Cooper Std</family><br />
<family>Bauhaus Std</family><br />
<default><family>fantasy</family></default><br />
</alias><br />
<!--<br />
Cursive faces<br />
--><br />
<alias><br />
<family>ITC Zapf Chancery Std</family><br />
<family>Zapfino</family><br />
<family>Comic Sans MS</family><br />
<default><family>cursive</family></default><br />
</alias><br />
</fontconfig><br />
}}<br />
<br />
Файл {{ic|/etc/fonts/conf.d/60-latin.conf}} :<br />
{{bc|1=<br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<alias><br />
<family>serif</family><br />
<prefer><br />
<family>Droid Serif</family><br />
<family>DejaVu Serif</family><br />
<family>Bitstream Vera Serif</family><br />
<family>Times New Roman</family><br />
<family>Thorndale AMT</family><br />
<family>Luxi Serif</family><br />
<family>Nimbus Roman No9 L</family><br />
<family>Times</family><br />
</prefer><br />
</alias><br />
<alias><br />
<family>sans-serif</family><br />
<prefer><br />
<family>Droid Sans</family><br />
<family>DejaVu Sans</family><br />
<family>Bitstream Vera Sans</family><br />
<family>Verdana</family><br />
<family>Arial</family><br />
<family>Albany AMT</family><br />
<family>Luxi Sans</family><br />
<family>Nimbus Sans L</family><br />
<family>Helvetica</family><br />
<family>Lucida Sans Unicode</family><br />
<family>BPG Glaho International</family> <!-- lat,cyr,arab,geor --><br />
<family>Tahoma</family> <!-- lat,cyr,greek,heb,arab,thai --><br />
</prefer><br />
</alias><br />
<alias><br />
<family>monospace</family><br />
<prefer><br />
<family>Droid Sans Mono</family><br />
<family>DejaVu Sans Mono</family><br />
<family>Bitstream Vera Sans Mono</family><br />
<family>Andale Mono</family><br />
<family>Courier New</family><br />
<family>Cumberland AMT</family><br />
<family>Luxi Mono</family><br />
<family>Nimbus Mono L</family><br />
<family>Courier</family><br />
</prefer><br />
</alias><br />
<!--<br />
Fantasy faces<br />
--><br />
<alias><br />
<family>fantasy</family><br />
<prefer><br />
<family>Impact</family><br />
<family>Copperplate Gothic Std</family><br />
<family>Cooper Std</family><br />
<family>Bauhaus Std</family><br />
</prefer><br />
</alias><br />
<!--<br />
Cursive faces<br />
--><br />
<alias><br />
<family>cursive</family><br />
<prefer><br />
<family>ITC Zapf Chancery Std</family><br />
<family>Zapfino</family><br />
<family>Comic Sans MS</family><br />
</prefer><br />
</alias><br />
</fontconfig><br />
}}<br />
<br />
Файл {{ic|/etc/fonts/conf.d/99-misc.conf}} :<br />
{{bc|1=<br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<!-- Enable sub-pixel rendering --><br />
<match target="font"><br />
<edit name="rgba" mode="assign"><br />
<const>rgb</const><br />
</edit><br />
</match><br />
<br />
<!--Enable Autohint--><br />
<match target="font"><br />
<test name="size" compare="less_eq"><br />
<double>8</double><br />
</test><br />
<edit name="autohint" mode="assign"><br />
<bool>true</bool><br />
</edit><br />
</match><br />
<br />
<!-- Change hintstyle to hintslight for bold fonts--><br />
<!-- except small (till 9th size) --><br />
<match target="font"><br />
<!--<test name="weight" compare="more_eq"><br />
<const>medium</const><br />
</test>--><br />
<test name="size" compare="more"><br />
<double>10</double><br />
</test><br />
<edit name="hintstyle" mode="assign"><br />
<const>hintslight</const><br />
</edit><br />
</match><br />
<br />
<!-- Disable Anti Aliasing for Tahoma ()--><br />
<!--<match target="font"><br />
<test name="family"><br />
<string>Tahoma</string><br />
</test><br />
<test compare="less" name="size" qual="any"><br />
<double>12</double><br />
</test><br />
<edit mode="assign" name="antialias"><br />
<bool>false</bool><br />
</edit><br />
</match>--><br />
<br />
<!-- Autohint for Tahoma (bold 6th size) --><br />
<match target="font"><br />
<test name="family"><br />
<string>Tahoma</string><br />
</test><br />
<test name="size" compare="eq"><br />
<double>6</double><br />
</test><br />
<test name="weight" compare="more_eq"><br />
<const>medium</const><br />
</test><br />
<edit name="autohint" mode="assign"><br />
<bool>true</bool><br />
</edit><br />
</match><br />
<!-- Replace Clean font with sans-serif --><br />
<match target="pattern" name="family" ><br />
<test name="family" qual="any" ><br />
<string>Clean</string><br />
</test><br />
<edit mode="assign" name="family" ><br />
<string>sans-serif</string><br />
</edit><br />
</match><br />
<!-- Replace Fixed font with monospace --><br />
<match target="pattern" name="family" ><br />
<test name="family" qual="any" ><br />
<string>Fixed</string><br />
</test><br />
<edit mode="assign" name="family" ><br />
<string>monospace</string><br />
</edit><br />
</match><br />
<!-- Replace Nimbus family font with default --><br />
<match target="pattern" name="family" ><br />
<test name="family" qual="any" ><br />
<string>Nimbus Sans L</string><br />
</test><br />
<edit mode="assign" name="family" ><br />
<string>sans-serif</string><br />
</edit><br />
</match><br />
<match target="pattern" name="family" ><br />
<test name="family" qual="any" ><br />
<string>Nimbus Roman No9 L</string><br />
</test><br />
<edit mode="assign" name="family" ><br />
<string>serif</string><br />
</edit><br />
</match><br />
<match target="pattern" name="family" ><br />
<test name="family" qual="any" ><br />
<string>Nimbus Mono L</string><br />
</test><br />
<edit mode="assign" name="family" ><br />
<string>monospace</string><br />
</edit><br />
</match><br />
</fontconfig><br />
}}<br />
<br />
'''Примечание:''' Рекомендации по настройке характерны для системы, в которой установлены следующие пакеты:<br />
{{bc|<br />
cairo-ubuntu<br />
Cairo vector graphics library, with Ubuntu's LCD rendering patches<br />
fontconfig-ubuntu<br />
A library for configuring and customizing font access, with Ubuntu's LCD rendering patches<br />
freetype2-ubuntu<br />
TrueType font rendering library, with Ubuntu's LCD rendering patches<br />
libxft-ubuntu<br />
FreeType-based font drawing library for X, with Ubuntu's LCD rendering patches<br />
ttf-droid<br />
A font created by Ascender Corporation for use by the Open Handset Alliance platform, Android.<br />
}}<br />
<br />
=== cat {{ic|~/.fonts.conf}} (альтернатива настройкам в {{ic|/etc/fonts/...}}) ===<br />
{{bc|1=<br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<match target="font"><br />
<edit name="antialias" mode="assign"><bool>true</bool></edit><br />
<edit name="autohint" mode="assign"><bool>false</bool></edit><br />
<edit name="hintstyle" mode="assign"><const>hintfull</const></edit><br />
<edit name="hinting" mode="assign"><bool>true</bool></edit><br />
<edit name="rgba" mode="assign"><const>rgb</const></edit><br />
<!-- lcdnone, lcddefault, lcdlight, lcdlegacy --><br />
<edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit><br />
</match><br />
<br />
<match target="font"><br />
<test name="size" compare="less_eq"><double>8</double></test><br />
<edit name="autohint" mode="assign"><bool>true</bool></edit><br />
</match><br />
<match target="font"><br />
<test name="size" compare="more_eq"><double>14</double></test><br />
<edit name="rgba" mode="assign"><const>none</const></edit><br />
</match><br />
<br />
<match target="font"><br />
<test name="family"><string>Tahoma</string></test><br />
<test name="size" compare="eq"><double>6</double></test><br />
<test name="weight" compare="more_eq"><const>medium</const></test><br />
<edit name="autohint" mode="assign"><bool>true</bool></edit><br />
</match><br />
<!-- Replace Clean font with sans-serif --><br />
<match target="pattern" name="family" ><br />
<test name="family" qual="any" ><br />
<string>Clean</string><br />
</test><br />
<edit mode="assign" name="family" ><br />
<string>sans-serif</string><br />
</edit><br />
</match><br />
<!-- Replace Fixed font with monospace --><br />
<match target="pattern" name="family" ><br />
<test name="family" qual="any" ><br />
<string>Fixed</string><br />
</test><br />
<edit mode="assign" name="family" ><br />
<string>monospace</string><br />
</edit><br />
</match><br />
<!-- Replace Nimbus family font with default --><br />
<match target="pattern" name="family" ><br />
<test name="family" qual="any" ><br />
<string>Nimbus Sans L</string><br />
</test><br />
<edit mode="assign" name="family" ><br />
<string>sans-serif</string><br />
</edit><br />
</match><br />
<match target="pattern" name="family" ><br />
<test name="family" qual="any" ><br />
<string>Nimbus Roman No9 L</string><br />
</test><br />
<edit mode="assign" name="family" ><br />
<string>serif</string><br />
</edit><br />
</match><br />
<match target="pattern" name="family" ><br />
<test name="family" qual="any" ><br />
<string>Nimbus Mono L</string><br />
</test><br />
<edit mode="assign" name="family" ><br />
<string>monospace</string><br />
</edit><br />
</match><br />
<br />
<!-- Set default font --><br />
<alias><br />
<family>Droid Serif</family><br />
<default><family>serif</family></default><br />
</alias><br />
<br />
<alias><br />
<family>Droid Sans</family><br />
<default><family>sans-serif</family></default><br />
</alias><br />
<br />
<alias><br />
<family>Liberation Mono</family><br />
<default><family>monospace</family></default><br />
</alias><br />
<br />
<alias><br />
<family>serif</family><br />
<prefer><family>Droid Serif</family></prefer><br />
</alias><br />
<alias><br />
<family>sans-serif</family><br />
<prefer><family>Droid Sans</family></prefer><br />
</alias><br />
<alias><br />
<family>monospace</family><br />
<prefer><family>Liberation Mono</family></prefer><br />
</alias><br />
</fontconfig><br />
}}<br />
<br />
= Шрифт в консоли =<br />
== Теория ==<br />
После запуска ядро Linux создаёт и поддерживает текстовую консоль.<br />
<br />
Текст, выводимый в символьное устройство {{ic|/dev/console}} , записывается в специальный буфер в памяти вместе с информацией о цвете.<br />
<br />
Для отображения этого текста на экране используется другой буфер, в который загружен специально предназначенный для консоли растровый моноширинный шрифт.<br />
<br />
При инициализации консоли в этот буфер записывается дефолтный шрифт, вкомпилированный в ядро (как правило, без кириллицы), а в дальнейшем шрифт в буфере может быть заменён с помощью утилиты {{ic|setfont}}. Так как в этом буфере находится только содержимое файла со шрифтом, но не его название, ядро не знает, какой шрифт в него загружен, и в случае создания консоли заново, как это происходит при переключении из текстового режима во фрэймбуфер после старта соответствующего видеокарте drm-модуля, шрифт снова сбрасывается в дефолт.<br />
<br />
В дополнение к "реальной" консоли, ядро поддерживает динамически расширяемый набор виртуальных консолей {{ic|/dev/tty1}}, {{ic|tty2}} и т.д., и корневую виртуальную консоль {{ic|/dev/tty0}}<br />
<br />
Хотя устройства для первых 59 виртуальных консолей создаются заранее, сами консоли при этом остаются в представлении ядра лишь номерами. Реально они появляются только после первой попытки вывода в них текста. На экран все виртуальные консоли выводятся путём подмены буферов в единственной "реальной" консоли, причём буфер шрифта при создании новой виртуальной консоли берётся тот, что был в "реальной" на момент создания.<br />
<br />
В результате, если шрифт был загружен в реальную консоль ДО создания виртуальной консоли, в последующем он автоматически распространяется на все виртуальные, в противном случае этого не происходит, и каждая новая виртуальная наследует шрифт из предыдущей видимой, то есть тот, что был загружен в "реальную" в тот момент.<br />
<br />
== Практика ==<br />
В пакете {{ic|systemd}} за загрузку консольного шрифта отвечает программа {{ic|/usr/lib/systemd/systemd-vconsole-setup}} , которая читает его имя из параметра {{ic|FONT&#61;}} в конфиге {{ic|/etc/vconsole.conf}} . Суффикс/расширение (.pcf.gz) файла со шрифтом в конфиге писать не обязательно.<br />
<br />
Имеющиеся в системе консольные шрифты находятся в каталоге {{ic|/usr/share/kbd/consolefonts/}} , проверить их можно, запустив команду {{ic|setfont}} для каждого из них.<br />
<br />
Если для вашей видеокарты при загрузке системы подключается drm-модуль, например i915 для intel, его старт приводит к появлению нового устройства фреймбуфера ({{ic|/dev/fb0}} и т.д.), и повторной инициализации консоли со сбросом шрифта. Если это происходит уже ПОСЛЕ того, как {{ic|systemd-vconsole-setup}} загрузила ваш шрифт, вам требуется либо загрузить его повторно, либо [[KMS#Early_KMS_start|обеспечить старт drm-модуля]] заведомо раньше загрузки шрифта.<br />
<br />
Второе проще всего сделать, добавив ваш drm-модуль в строку [[Mkinitcpio#MODULES|MODULES&#61;]] конфига {{ic|/etc/mkinitcpio.conf}} и перегенерировав образ initramfs. Для стационарной системы этого вполне достаточно.<br />
<br />
Если же система "переносная", то есть находится на съёмном диске или флешке, и запускается на разных машинах, предпочтительнее первый вариант. Для этого нужно создать правило UDEV, которое будет срабатывать на появление нового устройства {{ic|/dev/fb*}}<br />
<br />
* {{ic|/etc/udev/rules.d/96-fb-all-vcs-setup.rules}}<br />
<br />
# Setup all vconsoles for a new framebuffer device<br />
KERNEL=="fb*", ACTION=="add", RUN+="/bin/sh /etc/udev/all-vcs-set.sh"<br />
<br />
и скрипт, который оно будет запускать:<br />
<br />
* {{ic|/etc/udev/all-vcs-set.sh}}<br />
<br />
#!/bin/sh<br />
# We must load locale for $VCS util<br />
. /etc/locale.conf<br />
export LANG<br />
VCS=/usr/lib/systemd/systemd-vconsole-setup<br />
# Setup the "real" (current) console first<br />
$VCS<br />
# Setup all other active consoles<br />
for VC in /dev/vcs[0-9]*<br />
do $VCS /dev/tty${VC#/dev/vcs}<br />
done<br />
<br />
Скрипт читает локаль, которая требуется для нормальной работы утилиты {{ic|systemd-vconsole-setup}}, после чего выполняет её для "реальной" консоли, и для каждой из созданных на этот момент виртуальных, если такие есть. Для определения инициализированных виртуальных консолей здесь использованы устройства произвольного доступа к текстовым буферам соответствующих консолей {{ic|/dev/vcs*}}, которые в отличии от {{ic|/dev/tty*}} создаются только для уже имеющихся консолей.<br />
<br />
= Внешние ссылки =<br />
* [http://posix.ru/desktop/x_and_fonts/ Рендеринг шрифтов в X Window: как в ... и даже лучше]<br><br></div>
Vadik
https://wiki.archlinux.org/index.php?title=Arch_build_system_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=248240
Arch build system (Русский)
2013-02-23T18:40:55Z
<p>Vadik: </p>
<hr />
<div>[[Category:Русский]]<br />
[[Category:Управление пакетами (Русский)]]<br />
[[Category:Руководства (Русский)]]<br />
[[cs:Arch Build System]]<br />
[[da:Arch Build System]]<br />
[[de:Arch Build System]]<br />
[[el:Arch Build System]]<br />
[[en:Arch Build System]]<br />
[[es:Arch Build System]]<br />
[[fr:ABS]]<br />
[[it:Arch Build System]]<br />
[[ja:Arch Build System]]<br />
[[ko:Arch Build System]]<br />
[[pl:Arch Build System]]<br />
[[ro:ABS]]<br />
[[tr:Arch_derleme_sistemi]]<br />
[[zh-CN:Arch Build System]]<br />
[[zh-TW:Arch Build System]]<br />
==== Вступление ====<br />
<br />
Arch Build System ("Система Сборки для Arch", сокращенно ABS) используется для:<br />
* Создания новых пакетов программ, которых нет в Arch Linux<br />
* Пересборки существующих пакетов (включение или выключение опций сборки)<br />
* Перестройки всей системы с использованием новых флагов компиляции "a la freebsd" (и получение работающих модулей с Вашим новым ядром)<br />
<br />
ABS полезна, но не является необходимой для использования Arch Linux.<br />
<br />
Это описание - краткий обзор ABS и пакетов Arch Linux, а не полное руководство. Если Вы хотите узнать больше, обратитесь к man-страницам.<br />
<br />
==== Установка пакетов ====<br />
<br />
Для использования ABS Вы должны выполнить:<br />
<br />
<pre><br />
pacman -S abs<br />
</pre><br />
<br />
Или, если Вы уже имеете скачанные пакеты в каталоге 'foo' (например):<br />
<br />
<pre><br />
cd foo <br />
pacman -U abs-*.pkg.tar.gz<br />
</pre><br />
<br />
==== Что такое пакет? ====<br />
<br />
Обычно пакет — это файл вида ''foo''.pkg.tar.gz.<br />
<br />
Это просто архив tar.gz, который содержит:<br />
* Файлы для инсталляции<br />
* .PKGINFO : содержит все метаданные, необходимые для pacman, зависимости и т.п.<br />
* .INSTALL : содержит команды, запускаемые после инсталляции/обновления/деинсталляции. (Этот файл создается только если указан в PKGBUILD)<br />
<br />
==== Что за файл PKGBUILD и что он содержит?====<br />
<br />
Как упоминалось раньше, PKGBUILD содержит метаданные для пакета. Это простой текстовый файл, например:<br />
<br />
<pre><br />
# $Id: PKGBUILD,v 1.12 2003/11/06 08:26:13 dorphell Exp $<br />
# Maintainer: judd <jvinet@zeroflux.org><br />
# Contributor: Judd Vinet <jvinet@zeroflux.org><br />
pkgname=foo<br />
pkgver=0.99 # note: if the pkgver had been '0.99-10' then use an underscore. like '0.99_10'<br />
pkgrel=1<br />
pkgdesc="short description of foo"<br />
arch=(i686 x86_64)<br />
url="http://www.foo.org"<br />
license="GPL"<br />
groups=<br />
provides=<br />
depends=('qt' 'python')<br />
makedepends=('guile')<br />
conflicts=('yafoo')<br />
replaces=('mffoo')<br />
backup=('etc/foo/foo.conf')<br />
install=('foo.install')<br />
source=(http://www.foo.org/download/$pkgname-$pkgver.tar.gz)<br />
md5sums=('2c0cca3ef6330a187c6ef4fe41ecaa4d35175bee593a7cc7d6205584a94d8625')<br />
<br />
build() {<br />
cd $startdir/src/$pkgname-$pkgver<br />
./configure --prefix=/usr<br />
make || return 1<br />
make prefix=$startdir/pkg/usr install<br />
}<br />
</pre><br />
<br />
<br />
Итак, давайте рассмотрим каждое поле:<br />
<br />
* '''# text''' : комментарий<br />
* '''# $Id: PKGBUILD,v ...''' : cvs-tag для этого пакета (из archlinux-cvs)<br />
* '''# Maintainer''' : тот, кто в данный момент сопровождает пакет<br />
* '''# Contributor''' : все те, кто ранее сопровождали данный пакет<br />
* '''pkgname''' : название пакета<br />
* '''pkgver''' : версия пакета<br />
* '''pkgrel''' : номер релиза пакета. Он отличается от версии пакета тем, что он увеличивается при изменениях в PKGBUILD. Для этого есть несколько причин, например, Вы изменили какие-нибудь опции компиляции.<br />
* '''pkgdesc''' : короткое описание пакета. Его можно увидеть при просмотре [https://archlinux.org/packages/ базы пакетов]<br />
* '''arch''' : указывает, на каких архитектурах работает этот пакет. См. [[Arch64_FAQ]] для детальной информации<br />
* '''url''' : домашняя страница пакета (которая откроется, когда Вы кликните по имени пакета в базе пакетов)<br />
* '''license''' : лицензия, по которой распространяется программа<br />
* '''groups''' : используется для группы пакетов: например, когда Вы попробуете установить kde, будут установлены все пакеты, входящие в группу kde<br />
* '''provides''' : используется, если пакет обеспечивает другой пакет, например, kernel-scsi обеспечивает kernel <br />
* '''depends''' : список run-time зависимостей, необходимых для работы пакета<br />
* '''makedepends''' : зависимости, нужные только для сборки пакета<br />
* '''conflicts''' : список пакетов, которые не могут существовать в системе одновременно с "нашим" пакетом<br />
* '''replaces''' : "наш" пакет заменяет указанный<br />
* '''backup''' : список файлов, которые необходимо сохранить (в виде file.pacsave) когда пакет будет деинсталлирован<br />
* '''install''' : указывает на специальный скрипт, который будет включен в пакет (должен быть в том же каталоге, где и PKGBUILD)<br />
* '''source''' : список адресов с исходниками пакета. Это могут быть и локальные файлы, и адреса в интернете. Чтобы каждый раз, при изменении версии, не изменять адрес в - именах можно использовать ''pkgver''<br />
* '''md5sums''' : список контрольных сумм для исходников<br />
<br />
Теперь рассмотрим функции:<br />
<br />
* '''build''' : все действия, необходимые для сборки пакета (более подробно будет рассмотрено позже) <br />
<br />
Итак, Вы видите, что PKGBUILD содержит всю информацию, необходимую для менеджера пакетов. Это сердце pacman и abs.<br />
<br />
Есть еще файлы install. Наш PKGBUILD указывает на 'foo.install' как на инсталляционный скрипт. Вот пример такого файла:<br />
<br />
<pre><br />
post_install() {<br />
/bin/true<br />
}<br />
<br />
post_upgrade() {<br />
/bin/true<br />
}<br />
<br />
pre_remove() {<br />
/bin/true<br />
}<br />
<br />
op=$1<br />
shift<br />
<br />
$op "$@"<br />
</pre><br />
<br />
Назначения функций:<br />
<br />
* '''post_install''' : этот скрипт будет выполнен сразу после инсталляции файлов, он принимает один аргумент : <br />
** версия пакета<br />
* '''post_upgrade''' : этот скрипт будет выполнен после обновления всех файлов, он получает два параметра :<br />
** новая версия пакета<br />
** старая версия пакета<br />
* '''pre_remove''' : этот скрипт будет выполнен перед удалением файлов (например, остановка демонов), он принимает один аргумент : <br />
** версия пакета<br />
<br />
Три строки в конце файла необходимы для правильной работы.<br />
<br />
==== Функция build====<br />
<br />
Если Вы не знакомы со сборкой пакетов - будет полезно знать, что большинство пакетов (но не все) могут быть собраны следующим образом:<br />
<br />
* распаковка исходных файлов : <br />
<br />
<pre><br />
tar -xzf foo-0.99.tar.gz<br />
tar -xjf foo-0.99.tar.bz2</pre><br />
<br />
<br />
* переход в каталог<br />
<br />
<pre>cd foo-0.99</pre><br />
<br />
* конфигурирование: в общем случае, это небольшой скрипт <code>configure</code> в каталоге исходников, который используется для конфигурирования пакета (добавить или убрать возможности, изменить путь инсталляции и т.п.) и проверки, что в Вашей системе установлены все необходимые программы. Он может быть запущен так:<br />
<br />
<pre>./configure [[option]]</pre><br />
<br />
Вы можете сначала почитать подсказку: <br />
<br />
<pre>./configure --help</pre><br />
<br />
* компиляция программы :<br />
<br />
<pre>make</pre><br />
<br />
* инсталляция<br />
<br />
<pre>make install</pre><br />
<br />
Вы должны всегда читать файл <code>INSTALL</code>, чтобы знать, как надо собирать пакет. '''Не все пакеты используют систему <code>configure; make; make install</code>!'''<br />
<br />
Итак, взглянем на стандартное содержимое функции build:<br />
<br />
<pre><br />
build() {<br />
cd $startdir/src/$pkgname-$pkgver<br />
./configure --prefix=/usr<br />
make || return 1<br />
make prefix=$startdir/pkg/usr install<br />
}<br />
</pre><br />
<br />
Что мы делаем:<br />
<br />
* переходим в каталог, куда были распакованы исходники:<br />
<br />
<pre>cd $startdir/src/$pkgname-$pkgver</pre><br />
<br />
Когда Вы попробуете собирать свой пакет, удостоверьтесь, что это правильный каталог, иногда исходники распаковываются в другой каталог:<br />
<br />
<pre>tar -xzf foo-0.99.tar.gz</pre><br />
<br />
и <code>ls</code> может выдать:<br />
<br />
<pre><br />
.<br />
..<br />
foo-0.99.tar.gz<br />
foo/</pre><br />
<br />
а не:<br />
<br />
<pre><br />
.<br />
..<br />
foo-0.99.tar.gz<br />
foo-0.99/</pre><br />
<br />
* конфигурируем пакет и указываем, что он будет установлен в каталог <code>/usr</code> :<br />
<br />
<pre><br />
./configure --prefix=/usr</pre><br />
<br />
* компилируем<br />
<br />
<pre><br />
make || return 1</pre><br />
<br />
* инсталлируем программу, но не в <code>/usr</code>, а в <code>$startdir/pkg/usr</code>, чтобы pacman мог управлять файлами.<br />
<br />
<pre><br />
make prefix=$startdir/pkg/usr install</pre><br />
<br />
Здесь мы заставляем <code>make</code> устанавливать файлы пакета не в указанный при конфигурировании каталог <code>/usr</code>, а в специальный каталог <code>$startdir/pkg/usr</code>. Теперь, <code>makepkg</code> может увидеть все устанавливаемые файлы и собрать их в пакет.<br />
<br />
'''NOTE''': Не всегда <code>prefix</code> используется в <code>Makefile</code>; часто вместо этого используется <code>DESTDIR</code>. Если пакет создавался с помощью autoconf/automake, используйте <code>DESTDIR</code>, это [http://sources.redhat.com/automake/automake.html#Install указано] в документации. Проверьте генерируемый файл <code>filelist</code>. Если он пуст, попробуйте <code>make DESTDIR=$startdir/pkg install</code>. Если это не работает, то надо смотреть, как работает "<code>make <...> install=</code>".<br />
<br />
==== Дерево ABS====<br />
<br />
Когда Вы запускаете '''abs''' впервые<br />
<br />
<pre><br />
# abs</pre><br />
<br />
он, используя систему cvs, синхронизирует то, что может быть названо "Дерево ABS" с сервером arch. <br />
<br />
Что же такое дерево ABS? Оно находится в каталоге <code>/var/abs</code> и выглядит примерно так:<br />
<br />
<pre><br />
|-<br />
| -- base/<br />
|-<br />
| ||-- autoconf/<br />
|-<br />
| ||-- automake/<br />
|-<br />
| ||-- ...<br />
|-<br />
| -- devel/<br />
|-<br />
| -- ...<br />
|-<br />
| -- extra/<br />
|-<br />
| || -- daemons/<br />
|-<br />
| || || -- acpid/<br />
|-<br />
| || || || -- PKGBUILD<br />
... ... ... ...<br />
</pre><br />
<br />
<br />
Дерево ABS имеет ту же структуру, что и база пакетов:<br />
<br />
* Первый уровень каталогов - категории<br />
* Второй уровень каталогов - пакеты<br />
* PKGBUILD содержит всю информацию о пакете <br />
<br />
Исключение — один специальный каталог '''local'''. Это „ваш“ каталог, в нем вы можете делать что угодно. Остальные каталоги изменять нельзя.<br />
<br />
'''Примечание:''' Первая загрузка дерева будет происходить долго, затем будут только обновления. Но не пугайтесь, если у вас только модемное соединение - передается только текст, который сжимается при передаче.<br />
<br />
Теперь, когда мы знаем, что такое дерево ABS, как мы можем использовать его?<br />
<br />
==== Первое использование ABS: изменение пакета====<br />
<br />
Эта ситуация может возникнуть, когда Вы считаете, что официальные пакеты собраны с определенным количеством <code>--enable</code> или <code>--disable</code> опций и это не то, что выбрали бы Вы.<br />
<br />
Для примера возьмем пакет ''foo''. ''foo'' собран без поддержки '''arts'''. Допустим, мы хотим включить '''arts'''.<br />
<br />
Вот что мы будем делать:<br />
<br />
* находим, где расположен пакет ''foo''. Это можно сделать так:<br />
<br />
искать ''foo'' на [https://archlinux.org/packages.php]<br />
использовать find:<br />
<br />
<pre><br />
find /var/abs -name "foo"</pre><br />
<br />
использовать slocate:<br />
<br />
<pre><br />
slocate foo | grep ^/var/abs</pre><br />
<br />
В любом случае, мы должны обнаружить, что ''foo'' находится в <code>extra</code> и <code>multimedia</code><br />
<br />
* копируем ''foo'' файл <code>PKGBUILD</code> в <code>/var/abs/local/foo</code><br />
<br />
<pre><br />
mkdir /var/abs/local/foo<br />
cp /var/abs/extra/multimedia/foo/* /var/abs/local/foo<br />
cd /var/abs/local/foo</pre><br />
<br />
* изменяем <code>PKGBUILD</code>: добавляем поддержку '''arts''':<br />
<br />
<pre><br />
build() {<br />
cd $startdir/src/$pkgname-$pkgver<br />
./configure --prefix=/usr<br />
make || return 1<br />
make prefix=$startdir/pkg/usr install<br />
}</pre><br />
<br />
изменяем на:<br />
<br />
<pre><br />
build() {<br />
cd $startdir/src/$pkgname-$pkgver<br />
./configure --enable-arts --prefix=/usr<br />
make || return 1<br />
make prefix=$startdir/pkg/usr install<br />
}</pre><br />
<br />
* запускаем <code>makepkg</code> :<br />
<br />
<pre><br />
makepkg</pre><br />
<br />
* устанавливаем новый пакет используя одну из следующий команд: (<code>-A</code> для установки нового или <code>-U</code> для обновления уже установленного пакета):<br />
<br />
<pre><br />
pacman -A foo-*.pkg.tar.gz<br />
pacman -U foo-*.pkg.tar.gz</pre><br />
<br />
==== Флаги компиляции и настройка makepkg====<br />
<br />
Настроечный файл для <code>makepkg</code> — <code>/etc/makepkg.conf</code>. Здесь Вы можете установить переменные окружения для <code>gcc</code>, <code>make</code> и непосредственно <code>makepkg</code>. <br />
Это пример файла <code>/etc/makepkg.conf</code>:<br />
<br />
<pre><br />
# Программа, с помощью которой makepkg будет скачивать исходники<br />
export FTPAGENT="/usr/bin/wget --continue --passive-ftp --tries=3 --waitretry=3"<br />
<br />
# Информация для gcc о типе компьютера<br />
export CARCH="i686"<br />
export CHOST="i686-pc-linux-gnu"<br />
<br />
# Флаги компиляции для gcc<br />
export CFLAGS "-march athlon-tbird -O2 -pipe"<br />
export CXXFLAGS "-march athlon-tbird -02 -pipe"<br />
<br />
# Флаги для make<br />
export MAKEFLAGS="-j 2"<br />
<br />
# Расцветка вывода<br />
export USE_COLOR="y"<br />
<br />
# Оставшиеся переменные служат для настройки makepkg<br />
<br />
# Включить fakeroot для сборки пакетов непривилегированным пользователем.<br />
# 'man fakeroot' для информации<br />
export USE_FAKEROOT="y"<br />
<br />
# Каталог, куда будут сваливаться собранные пакеты (default is ./)<br />
export PKGDEST=/home/packages<br />
<br />
# Корень ABS дерева (default is /var/abs)<br />
export ABSROOT=/var/abs<br />
<br />
# Имя, которое будет фигурировать в Ваших пакетах <br />
export PACKAGER="John Doe <nowhere@microsoft.com>"<br />
</pre><br />
<br />
Пара предостережений: пользователи должны быть уверены, что изменение переменных <code>CFLAGS</code>, <code>CXXFLAGS</code>, и <code>MAKEFLAGS</code> не приведет к неработоспособности собираемых пакетов. Также, обычному пользователю Arch Linux, не обязательно изменять значения переменных <code>CARCH</code>, <code>CHOST</code> и <code>USE_FAKEROOT</code>.<br />
<br />
Ссылки на флаги gcc и make:<br />
* [[Safe_Cflags]]<br />
* [http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Option-Summary.html#Option-Summary]<br />
* [http://www.gnu.org/software/make/manual/html''chapter/make''9.html#SEC102]<br />
<br />
==== Дополнительно о ABS====<br />
<br />
Пара ссылок на wiki страницы, которые помогут лучше понять ABS:<br />
* [[Creating Packages]]<br />
* [[Custom local repository with ABS and gensync]]</div>
Vadik
https://wiki.archlinux.org/index.php?title=Arch_build_system_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=248237
Arch build system (Русский)
2013-02-23T18:25:02Z
<p>Vadik: /* Что за файл PKGBUILD и что он содержит? */</p>
<hr />
<div>[[Category:Русский]]<br />
[[Category:Управление пакетами (Русский)]]<br />
[[Category:Руководства (Русский)]]<br />
[[cs:Arch Build System]]<br />
[[da:Arch Build System]]<br />
[[de:Arch Build System]]<br />
[[el:Arch Build System]]<br />
[[en:Arch Build System]]<br />
[[es:Arch Build System]]<br />
[[fr:ABS]]<br />
[[it:Arch Build System]]<br />
[[ja:Arch Build System]]<br />
[[ko:Arch Build System]]<br />
[[pl:Arch Build System]]<br />
[[ro:ABS]]<br />
[[tr:Arch_derleme_sistemi]]<br />
[[zh-CN:Arch Build System]]<br />
[[zh-TW:Arch Build System]]<br />
==== Вступление ====<br />
<br />
Arch Build System ("Система Сборки для Arch", сокращенно ABS) используется для:<br />
* Создания новых пакетов программ, которых нет в Arch Linux<br />
* Пересборки существующих пакетов (включение или выключение опций сборки)<br />
* Перестройки всей системы с использованием новых флагов компиляции "a la freebsd" (и получение работающих модулей с Вашим новым ядром)<br />
<br />
ABS полезна, но не является необходимой для использования Arch Linux.<br />
<br />
Это описание - краткий обзор ABS и пакетов Arch Linux, а не полное руководство. Если Вы хотите узнать больше, обратитесь к man-страницам.<br />
<br />
==== Установка пакетов ====<br />
<br />
Для использования ABS Вы должны выполнить:<br />
<br />
<pre><br />
pacman -S abs<br />
</pre><br />
<br />
Или, если Вы уже имеете скачанные пакеты в каталоге 'foo' (например):<br />
<br />
<pre><br />
cd foo <br />
pacman -U abs-*.pkg.tar.gz<br />
</pre><br />
<br />
==== Что такое пакет? ====<br />
<br />
Обычно пакет — это файл вида ''foo''.pkg.tar.gz.<br />
<br />
Это просто архив tar.gz, который содержит:<br />
* Файлы для инсталляции<br />
* .PKGINFO : содержит все метаданные, необходимые для pacman, зависимости и т.п.<br />
* .INSTALL : содержит команды, запускаемые после инсталляции/обновления/деинсталляции. (Этот файл создается только если указан в PKGBUILD)<br />
<br />
==== Что за файл PKGBUILD и что он содержит?====<br />
<br />
Как упоминалось раньше, PKGBUILD содержит метаданные для пакета. Это простой текстовый файл, например:<br />
<br />
<pre><br />
# $Id: PKGBUILD,v 1.12 2003/11/06 08:26:13 dorphell Exp $<br />
# Maintainer: judd <jvinet@zeroflux.org><br />
# Contributor: Judd Vinet <jvinet@zeroflux.org><br />
pkgname=foo<br />
pkgver=0.99 # note: if the pkgver had been '0.99-10' then use an underscore. like '0.99_10'<br />
pkgrel=1<br />
pkgdesc="short description of foo"<br />
arch=(i686 x86_64)<br />
url="http://www.foo.org"<br />
license="GPL"<br />
groups=<br />
provides=<br />
depends=('qt' 'python')<br />
makedepends=('guile')<br />
conflicts=('yafoo')<br />
replaces=('mffoo')<br />
backup=('etc/foo/foo.conf')<br />
install=('foo.install')<br />
source=(http://www.foo.org/download/$pkgname-$pkgver.tar.gz)<br />
md5sums=('2c0cca3ef6330a187c6ef4fe41ecaa4d35175bee593a7cc7d6205584a94d8625')<br />
<br />
build() {<br />
cd $startdir/src/$pkgname-$pkgver<br />
./configure --prefix=/usr<br />
make || return 1<br />
make prefix=$startdir/pkg/usr install<br />
}<br />
</pre><br />
<br />
<br />
Итак, давайте рассмотрим каждое поле:<br />
<br />
* '''# text''' : комментарий<br />
* '''# $Id: PKGBUILD,v ...''' : cvs-tag для этого пакета (из archlinux-cvs)<br />
* '''# Maintainer''' : тот, кто в данный момент сопровождает пакет<br />
* '''# Contributor''' : все те, кто ранее сопровождали данный пакет<br />
* '''pkgname''' : название пакета<br />
* '''pkgver''' : версия пакета<br />
* '''pkgrel''' : номер релиза пакета. Он отличается от версии пакета тем, что он увеличивается при изменениях в PKGBUILD. Для этого есть несколько причин, например, Вы изменили какие-нибудь опции компиляции.<br />
* '''pkgdesc''' : короткое описание пакета. Его можно увидеть при просмотре [https://archlinux.org/packages/ базы пакетов]<br />
* '''arch''' : указывает, на каких архитектурах работает этот пакет. См. [[Arch64_FAQ]] для детальной информации<br />
* '''url''' : домашняя страница пакета (которая откроется, когда Вы кликните по имени пакета в базе пакетов)<br />
* '''license''' : лицензия, по которой распространяется программа<br />
* '''groups''' : используется для группы пакетов: например, когда Вы попробуете установить kde, будут установлены все пакеты, входящие в группу kde<br />
* '''provides''' : используется, если пакет обеспечивает другой пакет, например, kernel-scsi обеспечивает kernel <br />
* '''depends''' : список run-time зависимостей, необходимых для работы пакета<br />
* '''makedepends''' : зависимости, нужные только для сборки пакета<br />
* '''conflicts''' : список пакетов, которые не могут существовать в системе одновременно с "нашим" пакетом<br />
* '''replaces''' : "наш" пакет заменяет указанный<br />
* '''backup''' : список файлов, которые необходимо сохранить (в виде file.pacsave) когда пакет будет деинсталлирован<br />
* '''install''' : указывает на специальный скрипт, который будет включен в пакет (должен быть в том же каталоге, где и PKGBUILD)<br />
* '''source''' : список адресов с исходниками(!) для пакета. Это могут быть и локальные файлы, и адреса в интернете. В именах можно использовать ''pkgver'' чтобы не изменять адрес каждый раз при изменении версии<br />
* '''md5sums''' : список контрольных сумм для исходников(!)<br />
<br />
Теперь рассмотрим функции:<br />
<br />
* '''build''' : все действия, необходимые для сборки пакета (более подробно будет рассмотрено позже) <br />
<br />
Итак, Вы видите, что PKGBUILD содержит всю информацию, необходимую для менеджера пакетов. Это сердце pacman и abs.<br />
<br />
Есть еще файлы install. Наш PKGBUILD указывает на 'foo.install' как на инсталляционный скрипт. Вот пример такого файла:<br />
<br />
<pre><br />
post_install() {<br />
/bin/true<br />
}<br />
<br />
post_upgrade() {<br />
/bin/true<br />
}<br />
<br />
pre_remove() {<br />
/bin/true<br />
}<br />
<br />
op=$1<br />
shift<br />
<br />
$op "$@"<br />
</pre><br />
<br />
Назначения функций:<br />
<br />
* '''post_install''' : этот скрипт будет выполнен сразу после инсталляции файлов, он принимает один аргумент : <br />
** версия пакета<br />
* '''post_upgrade''' : этот скрипт будет выполнен после обновления всех файлов, он получает два параметра :<br />
** новая версия пакета<br />
** старая версия пакета<br />
* '''pre_remove''' : этот скрипт будет выполнен перед удалением файлов (например, остановка демонов), он принимает один аргумент : <br />
** версия пакета<br />
<br />
Три строки в конце файла необходимы для правильной работы.<br />
<br />
==== Функция build====<br />
<br />
Если Вы не знакомы с построением пакетов, Вы должны знать, что большинство пакетов (но не все) могут быть построены следующим образом:<br />
<br />
* распаковка исходных файлов : <br />
<br />
<pre><br />
tar -xzf foo-0.99.tar.gz<br />
tar -xjf foo-0.99.tar.bz2</pre><br />
<br />
<br />
* переход в каталог<br />
<br />
<pre>cd foo-0.99</pre><br />
<br />
* конфигурирование: в общем случае, это небольшой скрипт <code>configure</code> в каталоге исходников, который используется для конфигурирования пакета (добавить или убрать возможности, изменить путь инсталляции и т.п.) и проверки, что в Вашей системе установлены все необходимые программы. Он может быть запущен так:<br />
<br />
<pre>./configure [[option]]</pre><br />
<br />
Вы можете сначала почитать подсказку: <br />
<br />
<pre>./configure --help</pre><br />
<br />
* компиляция программы :<br />
<br />
<pre>make</pre><br />
<br />
* инсталляция<br />
<br />
<pre>make install</pre><br />
<br />
Вы должны всегда читать файл <code>INSTALL</code>, чтобы знать, как надо собирать пакет. '''Не все пакеты используют систему <code>configure; make; make install</code>!'''<br />
<br />
Итак, взглянем на стандартное содержимое функции build:<br />
<br />
<pre><br />
build() {<br />
cd $startdir/src/$pkgname-$pkgver<br />
./configure --prefix=/usr<br />
make || return 1<br />
make prefix=$startdir/pkg/usr install<br />
}<br />
</pre><br />
<br />
Что мы делаем:<br />
<br />
* переходим в каталог, куда были распакованы исходники:<br />
<br />
<pre>cd $startdir/src/$pkgname-$pkgver</pre><br />
<br />
Когда Вы попробуете собирать свой пакет, удостоверьтесь, что это правильный каталог, иногда исходники распаковываются в другой каталог:<br />
<br />
<pre>tar -xzf foo-0.99.tar.gz</pre><br />
<br />
и <code>ls</code> может выдать:<br />
<br />
<pre><br />
.<br />
..<br />
foo-0.99.tar.gz<br />
foo/</pre><br />
<br />
а не:<br />
<br />
<pre><br />
.<br />
..<br />
foo-0.99.tar.gz<br />
foo-0.99/</pre><br />
<br />
* конфигурируем пакет и указываем, что он будет установлен в каталог <code>/usr</code> :<br />
<br />
<pre><br />
./configure --prefix=/usr</pre><br />
<br />
* компилируем<br />
<br />
<pre><br />
make || return 1</pre><br />
<br />
* инсталлируем программу, но не в <code>/usr</code>, а в <code>$startdir/pkg/usr</code>, чтобы pacman мог управлять файлами.<br />
<br />
<pre><br />
make prefix=$startdir/pkg/usr install</pre><br />
<br />
Здесь мы заставляем <code>make</code> устанавливать файлы пакета не в указанный при конфигурировании каталог <code>/usr</code>, а в специальный каталог <code>$startdir/pkg/usr</code>. Теперь, <code>makepkg</code> может увидеть все устанавливаемые файлы и собрать их в пакет.<br />
<br />
'''NOTE''': Не всегда <code>prefix</code> используется в <code>Makefile</code>; часто вместо этого используется <code>DESTDIR</code>. Если пакет создавался с помощью autoconf/automake, используйте <code>DESTDIR</code>, это [http://sources.redhat.com/automake/automake.html#Install указано] в документации. Проверьте генерируемый файл <code>filelist</code>. Если он пуст, попробуйте <code>make DESTDIR=$startdir/pkg install</code>. Если это не работает, то надо смотреть, как работает "<code>make <...> install=</code>".<br />
<br />
==== Дерево ABS====<br />
<br />
Когда Вы запускаете '''abs''' впервые<br />
<br />
<pre><br />
# abs</pre><br />
<br />
он синхронизирует то, что может быть названо "Дерево ABS", с arch сервером используя систему cvs. <br />
<br />
Что же такое дерево ABS? Оно находится в каталоге <code>/var/abs</code> и выглядит примерно так:<br />
<br />
<pre><br />
|-<br />
| -- base/<br />
|-<br />
| ||-- autoconf/<br />
|-<br />
| ||-- automake/<br />
|-<br />
| ||-- ...<br />
|-<br />
| -- devel/<br />
|-<br />
| -- ...<br />
|-<br />
| -- extra/<br />
|-<br />
| || -- daemons/<br />
|-<br />
| || || -- acpid/<br />
|-<br />
| || || || -- PKGBUILD<br />
... ... ... ...<br />
</pre><br />
<br />
<br />
Дерево ABS имеет ту же структуру, что и база пакетов:<br />
<br />
* Первый уровень каталогов - категории<br />
* Второй уровень каталогов - пакеты<br />
* PKGBUILD содержит всю информацию о пакете <br />
<br />
Исключение — один специальный каталог '''local'''. Это „ваш“ каталог, в нем вы можете делать что угодно. Остальные каталоги изменять нельзя.<br />
<br />
'''Примечание:''' Первая загрузка дерева будет происходить долго, затем будут только обновления. Но не пугайтесь, если у вас только модемное соединение - передается только текст, который сжимается при передаче.<br />
<br />
Теперь, когда мы знаем, что такое дерево ABS, как мы можем использовать его?<br />
<br />
==== Первое использование ABS: изменение пакета====<br />
<br />
Эта ситуация может возникнуть, когда Вы считаете, что официальные пакеты собраны с определенным количеством <code>--enable</code> или <code>--disable</code> опций и это не то, что выбрали бы Вы.<br />
<br />
Для примера возьмем пакет ''foo''. ''foo'' собран без поддержки '''arts'''. Допустим, мы хоти включить '''arts'''.<br />
<br />
Вот что мы будем делать:<br />
<br />
* находим, где расположен пакет ''foo''. Это можно сделать так:<br />
<br />
искать ''foo'' на [https://archlinux.org/packages.php]<br />
использовать find:<br />
<br />
<pre><br />
find /var/abs -name "foo"</pre><br />
<br />
использовать slocate:<br />
<br />
<pre><br />
slocate foo | grep ^/var/abs</pre><br />
<br />
В любом случае, мы должны обнаружить, что ''foo'' находится в <code>extra</code> и <code>multimedia</code><br />
<br />
* копируем ''foo'' файл <code>PKGBUILD</code> в <code>/var/abs/local/foo</code><br />
<br />
<pre><br />
mkdir /var/abs/local/foo<br />
cp /var/abs/extra/multimedia/foo/* /var/abs/local/foo<br />
cd /var/abs/local/foo</pre><br />
<br />
* изменяем <code>PKGBUILD</code>: добавляем поддержку '''arts''':<br />
<br />
<pre><br />
build() {<br />
cd $startdir/src/$pkgname-$pkgver<br />
./configure --prefix=/usr<br />
make || return 1<br />
make prefix=$startdir/pkg/usr install<br />
}</pre><br />
<br />
изменяем на:<br />
<br />
<pre><br />
build() {<br />
cd $startdir/src/$pkgname-$pkgver<br />
./configure --enable-arts --prefix=/usr<br />
make || return 1<br />
make prefix=$startdir/pkg/usr install<br />
}</pre><br />
<br />
* запускаем <code>makepkg</code> :<br />
<br />
<pre><br />
makepkg</pre><br />
<br />
* устанавливаем новый пакет используя одну из следующий команд: (<code>-A</code> для установки нового или <code>-U</code> для обновления уже установленного пакета):<br />
<br />
<pre><br />
pacman -A foo-*.pkg.tar.gz<br />
pacman -U foo-*.pkg.tar.gz</pre><br />
<br />
==== Флаги компиляции и настройка makepkg====<br />
<br />
Настроечный файл для <code>makepkg</code> — <code>/etc/makepkg.conf</code>. Здесь Вы можете установить переменные окружения для <code>gcc</code>, <code>make</code> и непосредственно <code>makepkg</code>. <br />
Это пример файла <code>/etc/makepkg.conf</code>:<br />
<br />
<pre><br />
# Программа, с помощью которой makepkg будет скачивать исходники<br />
export FTPAGENT="/usr/bin/wget --continue --passive-ftp --tries=3 --waitretry=3"<br />
<br />
# Информация для gcc о типе компьютера<br />
export CARCH="i686"<br />
export CHOST="i686-pc-linux-gnu"<br />
<br />
# Флаги компиляции для gcc<br />
export CFLAGS "-march athlon-tbird -O2 -pipe"<br />
export CXXFLAGS "-march athlon-tbird -02 -pipe"<br />
<br />
# Флаги для make<br />
export MAKEFLAGS="-j 2"<br />
<br />
# Расцветка вывода<br />
export USE_COLOR="y"<br />
<br />
# Оставшиеся переменные служат для настройки makepkg<br />
<br />
# Включить fakeroot для сборки пакетов непривилегированным пользователем.<br />
# 'man fakeroot' для информации<br />
export USE_FAKEROOT="y"<br />
<br />
# Каталог, куда будут сваливаться собранные пакеты (default is ./)<br />
export PKGDEST=/home/packages<br />
<br />
# Корень ABS дерева (default is /var/abs)<br />
export ABSROOT=/var/abs<br />
<br />
# Имя, которое будет фигурировать в Ваших пакетах <br />
export PACKAGER="John Doe <nowhere@microsoft.com>"<br />
</pre><br />
<br />
Пара слов предостережения: пользователи должны быть уверены, что изменения переменных <code>CFLAGS</code>, <code>CXXFLAGS</code>, и <code>MAKEFLAGS</code> не приведет к неработоспособности собираемых пакетов. Также, обычный пользователь Arch Linux не нуждается в изменении значений переменных <code>CARCH</code>, <code>CHOST</code> и <code>USE_FAKEROOT</code>.<br />
<br />
Ссылки на флаги gcc и make:<br />
* [[Safe_Cflags]]<br />
* [http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Option-Summary.html#Option-Summary]<br />
* [http://www.gnu.org/software/make/manual/html''chapter/make''9.html#SEC102]<br />
<br />
==== Дополнительно о ABS====<br />
<br />
Пара ссылок на wiki страницы, которые помогут лучше понять ABS:<br />
* [[Creating Packages]]<br />
* [[Custom local repository with ABS and gensync]]</div>
Vadik
https://wiki.archlinux.org/index.php?title=Yaourt_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=210793
Yaourt (Русский)
2012-06-21T08:50:32Z
<p>Vadik: </p>
<hr />
<div>[[Category:Управление пакетами (Русский)]]<br />
[[cs:Yaourt]]<br />
[[de:Yaourt]]<br />
[[en:Yaourt]]<br />
[[es:Yaourt]]<br />
[[fa:Yaourt]]<br />
[[fr:Yaourt]]<br />
[[it:Yaourt]]<br />
[[lt:Yaourt]]<br />
[[pl:Yaourt]]<br />
[[sr:Yaourt]]<br />
[[tr:Yaourt]]<br />
[[zh-CN:Yaourt]]<br />
[[zh-TW:Yaourt]]<br />
{{Warning|Yaourt это неофициальный, неподдерживаемый разработчиками ArchLinux сторонний скрипт.}}<br />
{{Note|Пожалуйста, сообщайте об ошибках в [https://bugs.archlinux.fr// багтрекер archlinux.fr].}}<br />
<br />
'''Y'''et '''A'''n'''O'''ther '''U'''ser '''R'''epository '''T'''ool. Yaourt это поддерживаемая сообществом [http://archlinux.fr/yaourt archlinux.fr] обёртка для pacman, которая, помимо работы с бинарными пакетами, предоставляет прямой доступ к [[AUR]], и позволяет собирать и устанавливать пакеты автоматически. Yaourt использует тот же синтаксис, что и pacman, это избавляет вас от необходимости изучения нового способа поддержки системы, а так же добавляет новые возможности. Yaourt увеличивает мощность и простоту pacman, добавляя еще больше полезных функций и предоставляя приятный, цветной вывод, интерактивный режим поиска, и многое другое. Это наверняка то, что вам нужно.<br />
<br />
<br />
==Установка==<br />
Вы можете установить {{aur|yaourt}} из [[AUR]]<br />
<br />
{{Tip|yaourt также доступен в [[unofficial user repositories|неофициальных пользовательских репозиториях]], в том числе и в '''[archlinuxfr]'''.}}<br />
<br />
==Настройка прокси==<br />
Если доступ в интернет осуществляется через HTTP-прокси, то в файле {{ic|~/.bashrc}} нужно будет установить переменные окружения {{ic|http_proxy}} и {{ic|https_proxy}} (если переменную {{ic|https_proxy}} не установить, то возникнут проблемы при сборке пакетов из AUR).командой:<br />
$ export http_proxy='<nowiki>http://proxy.hostname.com:port</nowiki>'<br />
$ export https_proxy='<nowiki>https://proxy.hostname.com:port</nowiki>'<br />
<br />
Для более подробных сведений вы можете обратится к справочной странице {{ic|curl}}.<br />
<br />
[[sudo]] не поддерживает такие переменные окружение как {{ic|http_proxy}}, поэтому, для использования sudo, добавьте в {{ic|/etc/sudoers}} строки:<br />
Defaults env_keep += "http_proxy"<br />
Defaults env_keep += "https_proxy"<br />
Defaults env_keep += "ftp_proxy"<br />
{{Warning|Файл {{ic|/etc/sudoers}} гораздо безопаснее редактировать не напрямую, а используя {{ic|visudo}}.}}<br />
<br />
==Использование yaourt==<br />
<br />
Установить пакеты (в том числе пакеты расположенные в [[AUR]]) командой:<br />
<br />
{{bc|$ yaourt ''название_пакета''}}<br />
<br />
Обновить систему вместе с пакетами из [[AUR]] командой:<br />
{{bc|$ yaourt -Syua}}<br />
<br />
==Примеры==<br />
Поиск и установка пакета:<br />
{{bc|$ yaourt <название пакета>}}<br />
Синхрониазация базы данных, обновление пакетов, поиск обновлений для пакетов из AUR и dev-версий (все пакеты, основанные на cvs, svn, git, bzr(...)-версиях):<br />
{{bc|$ yaourt -Syu --devel --aur}}<br />
Сборка пакета из исходных кодов:<br />
{{bc|$ yaourt -Sb <пакет>}}<br />
Проверить, редактировать, объединить или удалить *.pac* файлы:<br />
{{bc|$ yaourt -C}}<br />
Получить PKGBUILD:<br />
{{bc|$ yaourt -G <пакет>}}<br />
Собрать пакет и сохранить его в нужной директории:<br />
{{bc|$ yaourt -Sb --export <dir> <package>}}<br />
Создать резервную копию базы данных:<br />
{{bc|$ yaourt -B}}<br />
Восстановить backup файл:<br />
{{bc|$ yaourt -Q --backupfile <file>}}<br />
<br />
показать все пакеты установленные из AUR:<br />
{{bc|$ yaourt -Qm}}<br />
<br />
обновляться можно и так:<br />
{{bc|$ yaourt -Syua}}<br />
<br />
См. также: [[Pacman]] и [[Pacman Tips]].<br />
<br />
==Решение проблем==<br />
<br />
===Проблема с контрольными суммами ("wrong hashes")===<br />
Если возникает ситуация, когда после загрузки исходных кодов yaourt указывает на неправильные контрольные суммы (но вы уверены в правильности сумм и сообщения о подобных проблемах больше ни у кого не встречаются), выполните следующие действия:<br />
<br />
Проверьте, существует ли в {{ic|/tmp/yaourt-tmp-имя_вашего_пользователя/название_пакета/src/}} файл, который является символической ссылкой на {{ic|/var/cache/yaourt/build}}.<br />
Удалите этот файл (так как из-за проблем при сборке, yaourt не может удалить его самостоятельно) или всю дирректорию для сборки {{ic|/tmp/yaourt-tmp-имя_вашего_пользователя}}, теперь пакет должен собираться и/или обновляться нормально!<br />
<br />
Данная проблема может возникнуть после сбоев при обновлении системы и/или из-за ошибки в yaourt.<br />
<br />
===Yaourt дважды запрашивает пароль===<br />
Если в файле {{ic|/etc/sudoers}} для {{ic|sudo}} отключить тайм-аут на введенный пароль, отредактировав:<br />
Defaults timestamp_timeout=0<br />
то yaourt будет запрашивать пароль при каждом действии, требующем привилегий root. Во избежание этого добавьте:<br />
SUDONOVERIF=1<br />
в файлы {{ic|/etc/yaourtrc}} или {{ic|~/.yaourtrc}}<br />
<br />
===Yaourt и обновление pacman 4===<br />
<br />
Если, из-за конфликтов с зависимостями устаревшей версии yaourt, вам не удается обновить pacman до 4 версии, и, при этом, используется репозиторий archlinux.fr, в файле {{ic|/etc/pacman.conf}} измените<br />
SyncFirst = pacman<br />
на<br />
SyncFirst = pacman yaourt package-query<br />
<br />
Это позволит обновить yaourt и package-query одновременно с обновлением pacman к версии pacman 4.<br />
<br />
===Старая проверка обновлений===<br />
yaourt не показывает список пакетов при апдейте из аура как раньше т.е. показывает так "Foreign packages: / x / y", можно вернуть на старый лад, подправив в /etc/yaourtrc , DETAILUPGRADE=2<br />
<br />
<br />
===Yaourt замораживает/замедляет систему===<br />
Наблюается на системах с небольшим объемом RAM или с недостаточным размером swap. Yaourt для сборки пакетов, по умолчанию, использует /tmp. Стандартно это раздел расположен в RAM на tmpfs. Измените каталог сборки, для этого раскоментируйте и укажите нужный путь в переменной "TMPDIR = " файла {{ic|/etc/yaourtrc}} (при этом придется самостоятельно следить за чистотой системы).<br />
<br />
==Внешние ссылки==<br />
* [http://www.archlinux.fr/yaourt-en/ страница yaourt]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=132990 yaourt and "wrong hashes"]</div>
Vadik
https://wiki.archlinux.org/index.php?title=User_talk:Zeroedout&diff=210790
User talk:Zeroedout
2012-06-21T07:34:19Z
<p>Vadik: Created page with "Sorry for my english. Change the location in {{ic|/etc/pacman.conf}} Why {{ic|/etc/pacman.conf}}? Can be replaced in {{ic|/etc/fstab}}: tmpfs /tmp tmpfs nodev,nosuid ..."</p>
<hr />
<div>Sorry for my english.<br />
Change the location in {{ic|/etc/pacman.conf}}<br />
Why {{ic|/etc/pacman.conf}}? Can be replaced in {{ic|/etc/fstab}}:<br />
tmpfs /tmp tmpfs nodev,nosuid 0 0<br />
to<br />
#tmpfs /tmp tmpfs nodev,nosuid 0 0<br />
or in {{ic|/etc/yaourtrc}} - TMPDIR="/tmp?</div>
Vadik
https://wiki.archlinux.org/index.php?title=Yaourt_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=210789
Yaourt (Русский)
2012-06-21T07:24:08Z
<p>Vadik: /* Старая проверка обновлений */</p>
<hr />
<div>[[Category:Управление пакетами (Русский)]]<br />
[[cs:Yaourt]]<br />
[[de:Yaourt]]<br />
[[en:Yaourt]]<br />
[[es:Yaourt]]<br />
[[fa:Yaourt]]<br />
[[fr:Yaourt]]<br />
[[it:Yaourt]]<br />
[[lt:Yaourt]]<br />
[[pl:Yaourt]]<br />
[[sr:Yaourt]]<br />
[[tr:Yaourt]]<br />
[[zh-CN:Yaourt]]<br />
[[zh-TW:Yaourt]]<br />
{{Warning|Yaourt это неофициальный, неподдерживаемый разработчиками ArchLinux сторонний скрипт.}}<br />
{{Note|Пожалуйста, сообщайте об ошибках в [https://bugs.archlinux.fr// багтрекер archlinux.fr].}}<br />
<br />
'''Y'''et '''A'''n'''O'''ther '''U'''ser '''R'''epository '''T'''ool. Yaourt это поддерживаемая сообществом [http://archlinux.fr/yaourt archlinux.fr] обёртка для pacman, которая, помимо работы с бинарными пакетами, предоставляет прямой доступ к [[AUR]], и позволяет собирать и устанавливать пакеты автоматически. Yaourt использует тот же синтаксис, что и pacman, это избавляет вас от необходимости изучения нового способа поддержки системы, а так же добавляет новые возможности. Yaourt увеличивает мощность и простоту pacman, добавляя еще больше полезных функций и предоставляя приятный, цветной вывод, интерактивный режим поиска, и многое другое. Это наверняка то, что вам нужно.<br />
<br />
<br />
==Установка==<br />
Вы можете установить {{aur|yaourt}} из [[AUR]]<br />
<br />
{{Tip|yaourt также доступен в [[unofficial user repositories|неофициальных пользовательских репозиториях]], в том числе и в '''[archlinuxfr]'''.}}<br />
<br />
==Настройка прокси==<br />
Если доступ в интернет осуществляется через HTTP-прокси, то в файле {{ic|~/.bashrc}} нужно будет установить переменные окружения {{ic|http_proxy}} и {{ic|https_proxy}} (если переменную {{ic|https_proxy}} не установить, то возникнут проблемы при сборке пакетов из AUR).командой:<br />
$ export http_proxy='<nowiki>http://proxy.hostname.com:port</nowiki>'<br />
$ export https_proxy='<nowiki>https://proxy.hostname.com:port</nowiki>'<br />
<br />
Для более подробных сведений вы можете обратится к справочной странице {{ic|curl}}.<br />
<br />
[[sudo]] не поддерживает такие переменные окружение как {{ic|http_proxy}}, поэтому, для использования sudo, добавьте в {{ic|/etc/sudoers}} строки:<br />
Defaults env_keep += "http_proxy"<br />
Defaults env_keep += "https_proxy"<br />
Defaults env_keep += "ftp_proxy"<br />
{{Warning|Файл {{ic|/etc/sudoers}} гораздо безопаснее редактировать не напрямую, а используя {{ic|visudo}}.}}<br />
<br />
==Использование yaourt==<br />
<br />
Установить пакеты (в том числе пакеты расположенные в [[AUR]]) командой:<br />
<br />
{{bc|$ yaourt ''название_пакета''}}<br />
<br />
Обновить систему вместе с пакетами из [[AUR]] командой:<br />
{{bc|$ yaourt -Syua}}<br />
<br />
==Примеры==<br />
Поиск и установка пакета:<br />
{{bc|$ yaourt <название пакета>}}<br />
Синхрониазация базы данных, обновление пакетов, поиск обновлений для пакетов из AUR и dev-версий (все пакеты, основанные на cvs, svn, git, bzr(...)-версиях):<br />
{{bc|$ yaourt -Syu --devel --aur}}<br />
Сборка пакета из исходных кодов:<br />
{{bc|$ yaourt -Sb <пакет>}}<br />
Проверить, редактировать, объединить или удалить *.pac* файлы:<br />
{{bc|$ yaourt -C}}<br />
Получить PKGBUILD:<br />
{{bc|$ yaourt -G <пакет>}}<br />
Собрать пакет и сохранить его в нужной директории:<br />
{{bc|$ yaourt -Sb --export <dir> <package>}}<br />
Создать резервную копию базы данных:<br />
{{bc|$ yaourt -B}}<br />
Восстановить backup файл:<br />
{{bc|$ yaourt -Q --backupfile <file>}}<br />
<br />
показать все пакеты установленные из AUR:<br />
{{bc|$ yaourt -Qm}}<br />
<br />
обновляться можно и так:<br />
{{bc|$ yaourt -Syua}}<br />
<br />
См. также: [[Pacman]] и [[Pacman Tips]].<br />
<br />
==Решение проблем==<br />
<br />
===Проблема с контрольными суммами ("wrong hashes")===<br />
Если возникает ситуация, когда после загрузки исходных кодов yaourt указывает на неправильные контрольные суммы (но вы уверены в правильности сумм и сообщения о подобных проблемах больше ни у кого не встречаются), выполните следующие действия:<br />
<br />
Проверьте, существует ли в {{ic|/tmp/yaourt-tmp-имя_вашего_пользователя/название_пакета/src/}} файл, который является символической ссылкой на {{ic|/var/cache/yaourt/build}}.<br />
Удалите этот файл (так как из-за проблем при сборке, yaourt не может удалить его самостоятельно) или всю дирректорию для сборки {{ic|/tmp/yaourt-tmp-имя_вашего_пользователя}}, теперь пакет должен собираться и/или обновляться нормально!<br />
<br />
Данная проблема может возникнуть после сбоев при обновлении системы и/или из-за ошибки в yaourt.<br />
<br />
===Yaourt дважды запрашивает пароль===<br />
Если в файле {{ic|/etc/sudoers}} для {{ic|sudo}} отключить тайм-аут на введенный пароль, отредактировав:<br />
Defaults timestamp_timeout=0<br />
то yaourt будет запрашивать пароль при каждом действии, требующем привилегий root. Во избежание этого добавьте:<br />
SUDONOVERIF=1<br />
в файлы {{ic|/etc/yaourtrc}} или {{ic|~/.yaourtrc}}<br />
<br />
===Yaourt и обновление pacman 4===<br />
<br />
Если, из-за конфликтов с зависимостями устаревшей версии yaourt, вам не удается обновить pacman до 4 версии, и, при этом, используется репозиторий archlinux.fr, в файле {{ic|/etc/pacman.conf}} измените<br />
SyncFirst = pacman<br />
на<br />
SyncFirst = pacman yaourt package-query<br />
<br />
Это позволит обновить yaourt и package-query одновременно с обновлением pacman к версии pacman 4.<br />
<br />
==Старая проверка обновлений==<br />
yaourt не показывает список пакетов при апдейте из аура как раньше т.е. показывает так "Foreign packages: / x / y", можно вернуть на старый лад, подправив в /etc/yaourtrc , DETAILUPGRADE=2<br />
<br />
<br />
===Yaourt замораживает/замедляет систему===<br />
Наблюается на системах с небольшим объемом RAM или с недостаточным размером swap. Yaourt для сборки пакетов, по умолчанию, использует /tmp. Стандартно это раздел расположен в RAM на tmpfs. Измените либо место расположения /tmp, либо компилируйте пакеты в другом каталоге (при этом придется самостоятельно следить за чистотой системы).<br />
<br />
==Внешние ссылки==<br />
* [http://www.archlinux.fr/yaourt-en/ страница yaourt]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=132990 yaourt and "wrong hashes"]</div>
Vadik
https://wiki.archlinux.org/index.php?title=Gaming_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=210788
Gaming (Русский)
2012-06-21T07:09:22Z
<p>Vadik: /* HRTF filters with OpenAL */</p>
<hr />
<div>[[Category:Игры (Русский)]]<br />
[[Category:Русский]]<br />
[[da:Games]]<br />
[[en:Gaming]]<br />
[[it:Games]]<br />
[[lt:Games]]<br />
{{Article summary start|Описание}}<br />
{{Article summary text|Содержатся сведения по запуску игр и соответствующим настройкам системы.}}<br />
{{Article summary heading|Дополнительно}}<br />
{{Article summary wiki|Common Applications/Games}}<br />
{{Article summary wiki|Netbook Games}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary wiki|NVIDIA#Gaming using Twinview}}<br />
{{Article summary end}}<br />
<br />
Эта статья содержит только советы по запуску игр и соответствующие советы по настройке системы. Список популярных игр для GNU/Linux можно найти на [[Common Applications/Games]] и [[Netbook Games]].<br />
<br />
== Игровые Среды ==<br />
<br />
Для игр в Linux существует множество окружений:<br />
<br />
* Родное &ndash; игры написанные под Linux (как правило бесплатные и с открытым исходным кодом).<br />
* Браузер &ndash; таким играм требуется браузер и подключение к интернету.<br />
** Plugin-based &ndash; для игры понадобится установка дополнительного плагина.<br />
*** [[Java]] Webstart &ndash; для легкой установки кросс-платформенных игр.<br />
*** [[Flash]] &ndash; часто встречающиеся в интернете игры.<br />
*** Unity &ndash; специализированное дополнение для браузера, в настоящее время корректно работает только в Google Chrome. Большинство игр &ndash; коммерческие.<br />
** '''HTML 5''' &ndash; игры использующие технологии canvas и WebGL и работающие во всех современных браузерах, однако на слабых компьютерах будут '''очень''' медленными.<br />
* Специализированные окружения (програмные эмуляторы) &ndash; сначала требуется установка эмулятора, затем можно будет искать игры (большинство из них защищены авторским правом!)<br />
** [[Wine]] &ndash; позволяет запускать множество игр под Windows.<br />
** [http://www.codeweavers.com/ Crossover Games] - участники команды Codeweavers являются основными разработчиками Wine. Использование Crossover Games, в сравнении с другими способами, в некоторых случаях позволяет проще и быстрее устанавливать и использовать игры. Crossover это коммерческий продукт, у которого имеется [http://www.codeweavers.com/support/forums/ форум] и, активно учавствующие в жизни сообщества, разработчики. <br />
** [[Cedega]] &ndash; ориентированная на игры производная Wine. Пакеты, в отличии от версии CVS, не бесплатны.<br />
** [[DosBox]] &ndash; для игр под DOS<br />
** {{Pkg|scummvm}} &ndash; для множества устаревших приключенческих игр<br />
* Аппаратные эмуляторы &ndash; эмулируют не програмную среду, а устройство в целом. Относительно авторских прав &ndash; тоже самое.<br />
<br />
== Получение игр ==<br />
=== Родные ===<br />
Большое колличество доступно в [[Official repositories|Оффициальных репозиториях]] или в [[AUR]]. Инсталяторы некоторых игр можно найти у [[Loki]]. Хорошим источником игр можно считать [[Desura]] (если заботитесь о безопасности или имеется множество багов).<br />
<br />
=== Wine ===<br />
* [http://appdb.winehq.org/ Wine AppDB] это централизованный источних данных о работающих в Wine играх.<br />
* Смотрите также [[:Category:Wine]].<br />
<br />
=== Flash ===<br />
Существует несколько больших порталов для flash-игр, среди них:<br />
* https://armorgames.com/<br />
* https://www.kongregate.com/<br />
* https://www.newgrounds.com/<br />
<br />
=== Java ===<br />
* Множество маленьких игр, некоторые менее 4kb (дизайн некоторых игр &ndash; настоящий шедевр) можно найти перейдя по адресу http://www.java4k.com.<br />
* https://www.pogo.com/ &ndash; крупнейший портал казуальных Java-игр<br />
* [http://www.javagametome.com/ The Java Game Tome] - огромная база данных, в основном по казуальным играм.<br />
<br />
== Запуск игр в Arch ==<br />
Некоторым играм, или типам игр, может потребоваться специальная настройка для запуска.<br />
В основном в Arch Linux игры будут работать прямо из коробки, а возможно, и с более высокой производительностью чем в других дистрибутивах (благодаря оптимизациям при компиляции). Тем не менее могут потребоваться некоторые настройки или скрипты для достижения желаемого эффекта.<br />
<br />
=== Мульти-экранные настройки ===<br />
Использование мульти-экранных настроек может вызвать проблемы с полноэкранными играми. В таких случаях, одно из решений - [[#Starting_games_in_a_seperate_X_server|запускать другой Х-сервер]]. В качестве другого решения можно воспользоваться советами из [[NVIDIA#Gaming_using_Twinview|статьи об NVIDIA]] (может быть полезна и не только пользователям NVIDIA).<br />
<br />
=== Захват клавиатуры ===<br />
Некоторые игры захватывают клавиатуру и не позволяют переключаться между окнами (комбинация alt-tab). Для того, чтоб можно было пользоваться сочитаниями клавиш совместно с SDL играми, загрузите {{AUR|sdl-nokeyboardgrab}}. Так же можно предотвратить захват клавиатуры на уровне X11, для этого воспользуйтесь {{AUR|libx11-nokeyboardgrab}}.<br />
<br />
{{Note | Как извествно, SDL не всегда могут перехватывать системный ввод. В этом случае возможно прийдется подождать несколько секунд.}}<br />
<br />
=== Запуск игр в отдельном X сервере ===<br />
Как упоминалось ранее, иногда может возникнуть необходимость запуска отдельного Х сервера. Отдельный X сервер дает некоторые преимущества, например более высокую производительность, возможность перехода в игру по клавишам CTRL-ALT-F7 / CTRL-ALT-F8, не требуется завершать основную сессию X-ов (она продолжает работать) в случае конфликта игры с видеодрайвером. Для запуска отдельного X сервера (для примера возьмем [http://alientrap.org/nexuiz/ Nexuiz]) достаточно выполнить следующее: <br />
xinit /usr/bin/nexuiz-glx -- :1<br />
Можно дополнительно создать конфигурациооный файл для X-ов:<br />
xinit /usr/bin/nexuiz-glx -- :1 -xf86config xorg-game.conf <br />
Если ваша основная конфигурация поддерживает технологию NVIDIA Twinview, то для ЗD игр, аналогичных Nexuiz, будет доступна возможность использования нескольких мониторов. Отдельный Х-сервер нежелательно использовать в конфигурациях, в которых рекомендуется отключать второй экран.<br />
<br />
Скрипт запуска игры в Openbox, из вашего домашнего каталога или из /usr/local/bin, будет выглядеть следующим образом:<br />
$ cat ~/game.sh<br />
if [ $# -ge 1 ]; then<br />
game="`which $1`"<br />
openbox="`which openbox`"<br />
tmpgame="/tmp/tmpgame.sh"<br />
DISPLAY=:1.0<br />
echo -e "${openbox} &\n${game}" > ${tmpgame}<br />
echo "starting ${game}"<br />
xinit ${tmpgame} -- :1 -xf86config xorg-game.conf || exit 1<br />
else<br />
echo "not a valid argument"<br />
fi<br />
<br />
После выполнения chmod +x запустить скрипт можно следующей командой:<br />
$ ~/game.sh nexuiz-glx<br />
<br />
=== Настройка мыши ===<br />
Для игр, требующих точность при перемещении мыши, можно настроить скорость ее реакции. Для получения дополнительной информации обратитесь [[Mouse_Polling_Rate|сюда]].<br />
<br />
=== Фильтры HRTF с OpenAL ===<br />
Можно подключить фильтры HRTF в играх поддерживающих OpenAL. Для включения отредактируйте файл {{ic|/etc/openal/alsoft.conf}} (или, если файл отсутствует, скопируйте файл примера) и замените:<br />
#hrtf = false<br />
на<br />
hrtf = true<br />
<br />
== Смотрите также ==<br />
* [http://www.linuxgames.com/ LinuxGames] - Новости об играх для linux<br />
* [http://freegamer.blogspot.com/ Free Gamer] - Блог об играх с открытым исходным котод<br />
* [http://forum.freegamedev.net/ FreeGameDev] - Сообщество разработчиков свободных/открытых игр<br />
* [http://libregamewiki.org/ Libregamewiki] - wiki свободных игр<br />
* [https://fedoraproject.org/wiki/SIGs/Games#Gaming_News_sites SIG/Games] - Новостной сайт об играх в OS/Linux и списки в Fedora wiki<br />
* [http://live.linux-gamers.net live.linux-gamers] - Основанный на Arch игровой live-дистрибутив<br />
* [http://www.gamesonlinux.com Games on Linux] - Коммерческие игры для Linux</div>
Vadik
https://wiki.archlinux.org/index.php?title=Localization_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=204433
Localization (Русский)
2012-06-11T11:23:48Z
<p>Vadik: /* Настройка консоли */</p>
<hr />
<div>[[Category:Русский]]<br />
{{i18n|Internationalization}}<br />
<br />
= Об этой статье =<br />
Эта статья рассказывает о том, как настроить отображение и ввод русского языка в Arch Linux.<br />
<br />
= Настройка локали =<br />
<br />
В файле /etc/locale.gen раскомментируйте следующую строку:<br />
<br />
<pre><br />
ru_RU.UTF-8 UTF-8<br />
</pre><br />
<br />
<br />
Создайте выбранную вами локаль командой:<br />
<pre><br />
/usr/sbin/locale-gen<br />
</pre><br />
<br />
<br />
Проверьте, что все заявленные локали были созданы:<br />
<pre><br />
locale -a<br />
</pre><br />
<br />
= Настройка консоли = <br />
Несколько слов о том как работает консоль. <br />
<br />
Любой вывод программы перенаправляется консольному драйверу в ядре. Ядро работает только в кодировке unicode. Если программа не использует utf-8 для вывода текста, необходима таблица ACM (Application Character Map), которая будет выполнять соответствующее преобразование из 8-битной кодироки в unicode. Если используется пакет kbd (в arch он устанавливается по умолчанию), то эту таблицу можно найти по адресу /usr/share/kbd/consoletrans. <br />
<br />
Далее ядро должно отобразить символ на экране. Таблица соответствия знаков шрифта кодам unicode называется SFM (Screen Font Map). Она либо находится внутри шрифта (в большинстве случаев), либо подгружается дополнительно (из /usr/share/kbd/unimaps). Сами шрифты располагаются в /usr/share/kbd/consolefonts. <br />
<br />
Кроме этого, нужна ещё клавиатурная раскладка - таблица по переводу скан-кодов клавиатуры в нужный код символа (соответственно может быть либо старая 8-битная либо новая unicode).<br />
<br />
Таким образом, работа по настройке консоли разбивается на пункты (рассмотрен utf вариант):<br />
<br />
#Найти нормальную клавиатурную раскладку, поддерживающую unicode и ваши любимые способы переключения языков и указать её как KEYMAP="..." в файле rc.conf.<br />
#Установить экранный шрифт, имеющий встроенную таблицу SFM и приличное начертание: CONSOLEFONT="...".<br />
#Убедиться что необходимость в ACM пропадает (CONSOLEMAP="" - остаётся пустым).<br />
<br />
Вся остальная работа по настройке kbd (типа использования утилит loadkeys и setfont) уже сделана известными людьми, написавшими стартовые файлы системы.<br />
<br />
Пакет kbd поддерживает русские раскладки в utf8. Дополнительные раскладки клавиатуры можно получить, установив пакет kbd-ru-keymaps командой<br />
<br />
<pre>pacman -S kbd-ru-keymaps</pre><br />
<br />
или cкачав одну из раскладкок вручную:<br />
<br />
*[http://mlclm.narod.ru/ru-utf.map.gz Русская UTF-8 раскладка клавиатуры с переключением по правой клавише Alt]<br />
*[http://moose.ylsoftware.com/gentoo.ru/ru-mab.map.gz Русская UTF-8 раскладка клавиатуры с переключением по Ctrl-Shift]<br />
<br />
и поместив их в каталог '''/usr/share/kbd/keymaps/i386/qwerty'''<br />
<br />
<br />
Установите шрифт Terminus из репозитория '''community''':<br />
<pre> pacman -S terminus-font</pre><br />
<br />
<br />
Отредактируйте файл /etc/rc.conf:<br />
<br />
<pre>LOCALE="ru_RU.UTF-8"<br />
KEYMAP="ru" # Или ru-mab для раскладки с переключением по Ctrl-Shift<br />
CONSOLEFONT="ter-v16v" # Можно поэкспериментировать с другими шрифтами ter-v* из /usr/share/kbd/consolefonts<br />
CONSOLEMAP=""<br />
</pre><br />
<br />
Обратите внимание, что поиск шрифта происходит в /usr/share/kbd/consolefont. При этом после установки многих шрифтов, например, terminus, файлы шрифтов хоть и попадают туда автоматически, но имеют неподдерживаемое расширение psf.gz. Чтобы определенный в переменной CONSOLEFONT шрифт был найден, необходимо переименовать файл шрифта, чтобы его расширение было psfu.gz. Например:<br />
<pre> cp /usr/share/kbd/consolefonts/ter-v16v.psf.gz /usr/share/kbd/consolefonts/ter-v16v.psfu.gz</pre><br />
<br />
Можно обойтись и без terminus, установив:<br />
CONSOLEFONT="cyr-sun16"<br />
<br />
{{Note|Обратите внимание, что значение ''<nowiki>LOCALE=</nowiki>'' может быть как ''"ru_RU.UTF-8"'', так и ''"ru_RU.utf-8"'' или ''"ru_RU.utf8"''. Но, с целью уменьшения путаницы, все же лучше использовать вариант ''<nowiki>LOCALE=</nowiki>"ru_RU.UTF-8"''.}}<br />
<br />
Можно обойтись без установки пакета kbd-ru-keymaps, вариант с переключением по Ctrl+Shift:<br />
<pre>LOCALE="ru_RU.UTF-8"<br />
HARDWARECLOCK="UTC"<br />
TIMEZONE="Europe/Moscow"<br />
KEYMAP="ru"<br />
CONSOLEFONT="cyr-sun16"<br />
CONSOLEMAP=""<br />
USECOLOR="yes"</pre><br />
{{Note|Текущая версия initscripts не требует наличия в rc.conf переменной ''LOCALE''. Тем не менее необходимо внести в файл /etc/locale.conf следующие строки:}}<br />
<pre>LANG=ru_RU.UTF-8<br />
LC_MESSAGES=ru_RU.UTF-8</pre><br />
<br />
= Настройка X.org =<br />
Установите шрифты ttf-dejavu и ttf-liberation из репозитория '''community''':<br />
<pre>pacman -S ttf-dejavu ttf-liberation</pre><br />
== Настройки клавиатуры ==<br />
<br />
{{Note|Начиная с версии Xorg 1.8, [[HAL]] не используется для настройки}}<br />
<br />
Создайте файл /etc/hal/fdi/policy/10-keymap.fdi такого содержания:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="utf-8"?><br />
<deviceinfo version="0.2"><br />
<device><br />
<match key="info.capabilities" contains="input.keypad"><br />
<merge key="input.xkb.rules" type="string">base</merge><br />
<merge key="input.xkb.model" type="string">pc105</merge><br />
<merge key="input.x11_driver" type="string">evdev</merge><br />
<merge key="input.xkb.layout" type="string">us,ru</merge><br />
<merge key="input.xkb.variant" type="string">,winkeys</merge><br />
<merge key="input.xkb.options" type="string">grp:rctrl_toggle</merge><br />
</match><br />
</device><br />
</deviceinfo><br />
</pre><br />
<br />
Это простой пример, подходящий для владельцев стандартных устройств ввода. Для владельцев ноутбуков, подключающих, допустим, выносную клавиатуру, правила будут сложнее.<br />
<br />
=== Модель клавиатуры ===<br />
<br />
Модель Вашей клавиатуры указана в ключе input.xkb.model. Различные значения для этого ключа можно увидеть в ''/usr/share/X11/xkb/rules/evdev.lst''. В данном примере модель pc105 - стандартная клавиатура.<br />
Например, для клавиатуры Logitech Generic Keyboard строка примет вид:<br />
<merge key="input.xkb.model" type="string">logitech_base</merge><br />
<br />
=== Опции раскладок ===<br />
<br />
Параметры ''xkb.layout'' и ''xkb.variant'' указывают соответственно на варианты раскладки. В примере раскладки ''us,ru'' дополнены опцией ''winkeys'' которая расставляет знаки препинания и некоторые символы в соответствии с раскладкой win.<br />
<br />
=== Переключение раскладок ===<br />
<br />
Для настройки переключения между двумя раскладками, используйте опцию значение ключа input.xkb.options. В примере переключение осуществляется по правому Ctrl.<br />
Другой пример: раскладки переключаются комбинацией Ctrl-Shift, при использовании русской раскладки горит лампочка Scroll Lock, строка опций должна выглядеть следующим образом:<br />
<br />
<merge key="input.xkb.options" type="string">grp:ctrl_shift_toggle,grp_led:scroll</merge><br />
<br />
Возможно будет удобно использовать <Menu> для переключения раскладок и поменять CapsLock и левый Ctrl. Тогда нужно написать так: <br />
<br />
<merge key="input.xkb.options" type="string">grp:menu_toggle,grp_led:scroll,ctrl:swapcaps</merge><br />
<br />
=== Переключение раскладок средствами X.org ===<br />
<br />
Описано на странице [[Xorg_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B8_.D0.BA.D0.BB.D0.B0.D0.B2.D0.B8.D0.B0.D1.82.D1.83.D1.80.D1.8B|Xorg (Русский)]]<br />
<br />
==Compose-последовательности==<br />
С помощью клавиши «Compose» можно вводить практически все варианты символов с акцентами, а также разные специальные символы, например кавычки или тире «—», которых нет в стандартных раскладках.<br />
Для этого<br />
* Добавьте в xorg.conf опцию<br />
<pre>Option "XkbOptions" "compose:menu"</pre><br />
* Присвойте переменным окружения GTK_IM_MODULE и QT_IM_MODULE значение xim. Если этот шаг пропустить, все последующие настройки на GTK приложения распространяться не будут (они будут использовать свой метод ввода).<br />
* После этого можно создать в домашнем каталоге файл ~/.XCompose. Первой его строчкой можно включить все стандартные комбинации клавиш:<br />
<pre>include "/usr/share/X11/locale/en_US.UTF-8/Compose"</pre><br />
:а затем можно и задать любые дополнительные последовательности (по образцу как в /usr/share/X11/locale/en_US.UTF-8/Compose). Например,<br />
<pre><br />
<Multi_key> <period> <space> : "…" U2026 # HORIZONTAL ELLIPSIS, многоточие<br />
<Multi_key> <apostrophe> <apostrophe> : "́" U0301 # ударение<br />
</pre><br />
<br />
После этого стало возможным набирать много интересных символов, нажимая вначале клавишу Compose, а потом набирая ту или короткую иную последовательность. Например,<br />
:Compose + O + C даёт © (символ авторского права),<br />
:Compose + O + R даёт ®<br />
[http://webcvs.freedesktop.org/xorg/xc/nls/Compose/en_US.UTF-8?view=co Полный список последовательностей.]<br />
Пример .XCompose:<br />
<pre><br />
# -*- coding: utf-8 -*-<br />
#<br />
# .XCompose<br />
#<br />
# $Id: .XCompose,v 1.31 2008/09/18 17:57:14 deskpot Exp $<br />
<br />
#<br />
# Quotation marks<br />
#<br />
<Multi_key> <Cyrillic_be> : "«" guillemotleft # LEFT DOUBLE ANGLE QUOTATION<br />
<Multi_key> <comma> : "«" guillemotleft # LEFT DOUBLE ANGLE QUOTATION<br />
<Multi_key> <Cyrillic_yu> : "»" guillemotright # RIGHT DOUBLE ANGLE QUOTATION<br />
<Multi_key> <period> : "»" guillemotright # RIGHT DOUBLE ANGLE QUOTATION<br />
<Multi_key> <Cyrillic_BE> : "„" U201e # DOUBLE LOW-9 QUOTATION MARK<br />
<Multi_key> <less> : "„" U201e # DOUBLE LOW-9 QUOTATION MARK<br />
<Multi_key> <Cyrillic_YU> : "“" U201c # LEFT DOUBLE QUOTATION MARK<br />
<Multi_key> <greater> : "“" U201c # LEFT DOUBLE QUOTATION MARK<br />
#<br />
<Multi_key> <Cyrillic_zhe> : "‘" U2018 # LEFT SINGLE QUOTATION MARK<br />
<Multi_key> <semicolon> : "‘" U2018 # LEFT SINGLE QUOTATION MARK<br />
<Multi_key> <Cyrillic_e> : "’" U2019 # RIGHT SINGLE QUOTATION MARK<br />
<Multi_key> <apostrophe> : "’" U2019 # RIGHT SINGLE QUOTATION MARK<br />
<Multi_key> <Cyrillic_ZHE> : "“" U201c # LEFT DOUBLE QUOTATION MARK<br />
<Multi_key> <colon> : "“" U201c # LEFT DOUBLE QUOTATION MARK<br />
<Multi_key> <Cyrillic_E> : "”" U201d # RIGHT DOUBLE QUOTATION MARK<br />
<Multi_key> <quotedbl> : "”" U201d # RIGHT DOUBLE QUOTATION MARK<br />
<br />
#<br />
# Dashes<br />
#<br />
<Multi_key> <minus> : "—" emdash # EM DASH<br />
<Multi_key> <underscore> : "–" endash # EN DASH<br />
<br />
#<br />
# Currencies<br />
#<br />
<Multi_key> <Cyrillic_u> : "€" EuroSign # EURO SIGN<br />
<Multi_key> <e> : "€" EuroSign # EURO SIGN<br />
<Multi_key> <Cyrillic_a> : "£" sterling # POUND SIGN<br />
<Multi_key> <f> : "£" sterling # POUND SIGN<br />
<br />
#<br />
# Trademarks<br />
#<br />
<Multi_key> <Cyrillic_es> : "©" copyright # COPYRIGHT SIGN<br />
<Multi_key> <c> : "©" copyright # COPYRIGHT SIGN<br />
<Multi_key> <Cyrillic_ka> : "®" registered # REGISTERED SIGN<br />
<Multi_key> <r> : "®" registered # REGISTERED SIGN<br />
<Multi_key> <Cyrillic_ie> : "™" U2122 # TRADE MARK SIGN<br />
<Multi_key> <t> : "™" U2122 # TRADE MARK SIGN<br />
<br />
#<br />
# Math<br />
#<br />
<Multi_key> <Cyrillic_ef> : "≈" approximate # ALMOST EQUAL TO<br />
<Multi_key> <a> : "≈" approximate # ALMOST EQUAL TO<br />
<Multi_key> <5> : "‰" U2030 # PER MILLE SIGN<br />
<Multi_key> <equal> : "≠" U2260 # NOT EQUAL TO<br />
<Multi_key> <plus> : "±" plusminus # PLUS-MINUS SIGN<br />
<br />
#<br />
# Misc. typographics<br />
#<br />
<Multi_key> <Cyrillic_yeru> : "§" section # SECTION SIG<br />
<Multi_key> <s> : "§" section # SECTION SIGN<br />
<Multi_key> <Cyrillic_shcha> : "°" degree # DEGREE SIGN<br />
<Multi_key> <o> : "°" degree # DEGREE SIGN<br />
<Multi_key> <space> : " " nobreakspace # NO-BREAK SPACE<br />
<Multi_key> <Cyrillic_ve> : "…" ellipsis # HORIZONTAL ELLIPSIS<br />
<Multi_key> <d> : "…" ellipsis # HORIZONTAL ELLIPSIS<br />
<br />
#<br />
# Missing keys in Russian layout<br />
#<br />
<Multi_key> <3> : "#" numbersign # NUMBER SIGN<br />
<Multi_key> <4> : "$" dollar # DOLLAR SIGN<br />
<Multi_key> <Cyrillic_ha> : "[" bracketleft # LEFT SQUARE BRACKET<br />
<Multi_key> <Cyrillic_hardsign> : "]" bracketright # RIGHT SQUARE BRACKET<br />
<br />
#<br />
# Bindings to ease usage with the Russian `typewriter' layout.<br />
# NB: Unable to bind dollar symbol to be Compose+4, it's Compose+Shift+4.<br />
#<br />
<Multi_key> <2> : "—" emdash # EM DASH<br />
<Multi_key> <8> : "–" endash # EN DASH<br />
<Multi_key> <slash> : "#" numbersign # NUMBER SIGN<br />
<Multi_key> <percent> : "‰" U2030 # PER MILLE SIGN<br />
<Multi_key> <bar> : "±" plusminus # PLUS-MINUS SIGN<br />
</pre><br />
<br />
= Настройка GTK1 =<br />
Отредактируйте файл /etc/gtk/gtkrc.ru :<br />
<pre>style "gtk-default-ru" {<br />
fontset = "-*-arial-medium-r-normal--12-*-*-*-*-*-iso10646-1",\<br />
-*-fixed-medium-r-*-*-14-*-*-*-*-*-iso10646-1"<br />
}<br />
class "GtkWidget" style "gtk-default-ru"</pre><br />
<br />
= Настройка ncurses приложений =<br />
== Midnight Commander (mc) ==<br />
Пакет '''mc''' с версией 4.6.1-5 из репозитория '''extra'''<br>При старом срезе - пакет из репозитория '''community''' mc-utf8.<br>Теперь mc собран с поддержкой юникодной локали и имеет приличный вид.<br />
<br />
== nano ==<br />
С версии 2.0 nano поддерживает utf-8.<br />
<br />
== ncmpc ==<br />
В репозитории extra пакет ncmpc 0.11.1 собран с ncurses без поддержки unicode, а также файл руссификации почему-то в кодировке ISO-8859-1. Решение:<br />
*Скачайте из AUR [https://aur.archlinux.org/packages.php?ID=1947 архив]<br />
*Переместите его в '''/var/abs/local/''' (если вы используете ABS) или в любую другую директорию<br />
*Разархивируйте '''tar -xzf ncmpc-svn.tar.gz'''<br />
*Перейдите в получившуюся директорию<br />
*Выполните '''makepkg -i'''<br />
<br />
== dialog ==<br />
Некоторые скрипты (например, alsaconf) используют программу dialog для вывода сообщений. Чтобы включить в ней поддержку юникода, поставьте пакет dialog-w из community или пересобирите с опцией <code>--with-ncursesw</code><br />
<br />
= Настройка русских man-страниц =<br />
<br />
Установите русские страницы командой<br />
pacman -S man-pages-ru<br />
<br />
Также позаботьтесь о том, чтобы переменная окружения ''LESSCHARSET'' имела значение ''UTF-8'', либо просто заккоментируйте строку '''export LESSCHARSET="latin1"''' в файле ''/etc/profile'', тогда less будет автоматически брать кодировку из локали.<br />
<br />
= Сделаем openoffice русским =<br />
Все просто. Поддержка языков в openoffice реализуется отдельными пакетами.<br />
Смотрим список пакетов:<br />
pacman -Ss openoffice<br />
<br />
Ставим поддержку русского языка<br />
pacman -S openoffice-ru<br />
<br />
<br />
<br />
= Перекодировка тегов MP3 =<br />
<br />
Установите пакет mutagen:<br />
pacman -S mutagen<br />
<br />
В каталоге с вашей коллекцией mp3 файлов выполните команду:<br />
find -iname '*.mp3' -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1<br />
<br />
Команда перекодирует старые теги из кодировки CP1251 в UTF8, запишет тег версии id3v2.4 и удалит теги первой версии.<br />
<br />
Минус способа: не все проигрыватели из ОС Windows понимают теги формата 2.4. Поведение при этом различное: от игнорирования тега, до ругани на битый файл.<br />
<br />
Hint: в mpd после этого нужно перечитать список проигрывания, например так:<br />
mpc update (дождитесь завершения, статус можно смотреть запуская mpc без параметров)<br />
mpc clear<br />
mpc listall | mpc add<br />
<br />
Опционально:<br />
mpc rm all<br />
mpc save all<br />
<br />
[[Category:Русский]]</div>
Vadik
https://wiki.archlinux.org/index.php?title=Gaming_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=203540
Gaming (Русский)
2012-06-03T16:27:18Z
<p>Vadik: </p>
<hr />
<div>[[Category:Игры (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|Gaming}}<br />
<br />
{{Article summary start|Описание}}<br />
{{Article summary text|Содержатся сведения по запуску игр и соответствующим настройкам системы.}}<br />
{{Article summary heading|Дополнительно}}<br />
{{Article summary wiki|Common Applications/Games}}<br />
{{Article summary wiki|Netbook Games}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary wiki|NVIDIA#Gaming using Twinview}}<br />
{{Article summary end}}<br />
<br />
Эта статья содержит только советы по запуску игр и соответствующие советы по настройке системы. Список популярных игр для GNU/Linux можно найти на [[Common Applications/Games]] и [[Netbook Games]].<br />
<br />
== Игровые Среды ==<br />
<br />
Для игр в Linux существует множество окружений:<br />
<br />
* Родное &ndash; игры написанные под Linux (как правило бесплатные и с открытым исходным кодом).<br />
* Браузер &ndash; таким играм требуется браузер и подключение к интернету.<br />
** Plugin-based &ndash; для игры понадобится установка дополнительного плагина.<br />
*** [[Java]] Webstart &ndash; для легкой установки кросс-платформенных игр.<br />
*** [[Flash]] &ndash; часто встречающиеся в интернете игры.<br />
*** Unity &ndash; специализированное дополнение для браузера, в настоящее время корректно работает только в Google Chrome. Большинство игр &ndash; коммерческие.<br />
** '''HTML 5''' &ndash; игры использующие технологии canvas и WebGL и работающие во всех современных браузерах, однако на слабых компьютерах будут '''очень''' медленными.<br />
* Специализированные окружения (програмные эмуляторы) &ndash; сначала требуется установка эмулятора, затем можно будет искать игры (большинство из них защищены авторским правом!)<br />
** [[Wine]] &ndash; позволяет запускать множество игр под Windows.<br />
** [http://www.codeweavers.com/ Crossover Games] - участники команды Codeweavers являются основными разработчиками Wine. Использование Crossover Games, в сравнении с другими способами, в некоторых случаях позволяет проще и быстрее устанавливать и использовать игры. Crossover это коммерческий продукт, у которого имеется [http://www.codeweavers.com/support/forums/ форум] и, активно учавствующие в жизни сообщества, разработчики. <br />
** [[Cedega]] &ndash; ориентированная на игры производная Wine. Пакеты, в отличии от версии CVS, не бесплатны.<br />
** [[DosBox]] &ndash; для игр под DOS<br />
** {{Pkg|scummvm}} &ndash; для множества устаревших приключенческих игр<br />
* Аппаратные эмуляторы &ndash; эмулируют не програмную среду, а устройство в целом. Относительно авторских прав &ndash; тоже самое.<br />
<br />
== Получение игр ==<br />
=== Родные ===<br />
Большое колличество доступно в [[Official repositories|Оффициальных репозиториях]] или в [[AUR]]. Инсталяторы некоторых игр можно найти у [[Loki]]. Хорошим источником игр можно считать [[Desura]] (если заботитесь о безопасности или имеется множество багов).<br />
<br />
=== Wine ===<br />
* [http://appdb.winehq.org/ Wine AppDB] это централизованный источних данных о работающих в Wine играх.<br />
* Смотрите также [[:Category:Wine]].<br />
<br />
=== Flash ===<br />
Существует несколько больших порталов для flash-игр, среди них:<br />
* https://armorgames.com/<br />
* https://www.kongregate.com/<br />
* https://www.newgrounds.com/<br />
<br />
=== Java ===<br />
* Множество маленьких игр, некоторые менее 4kb (дизайн некоторых игр &ndash; настоящий шедевр) можно найти перейдя по адресу http://www.java4k.com.<br />
* https://www.pogo.com/ &ndash; крупнейший портал казуальных Java-игр<br />
* [http://www.javagametome.com/ The Java Game Tome] - огромная база данных, в основном по казуальным играм.<br />
<br />
== Запуск игр в Arch ==<br />
Некоторым играм, или типам игр, может потребоваться специальная настройка для запуска.<br />
В основном в Arch Linux игры будут работать прямо из коробки, а возможно, и с более высокой производительностью чем в других дистрибутивах (благодаря оптимизациям при компиляции). Тем не менее могут потребоваться некоторые настройки или скрипты для достижения желаемого эффекта.<br />
<br />
=== Мульти-экранные настройки ===<br />
Использование мульти-экранных настроек может вызвать проблемы с полноэкранными играми. В таких случаях, одно из решений - [[#Starting_games_in_a_seperate_X_server|запускать другой Х-сервер]]. В качестве другого решения можно воспользоваться советами из [[NVIDIA#Gaming_using_Twinview|статьи об NVIDIA]] (может быть полезна и не только пользователям NVIDIA).<br />
<br />
=== Захват клавиатуры ===<br />
Некоторые игры захватывают клавиатуру и не позволяют переключаться между окнами (комбинация alt-tab). Для того, чтоб можно было пользоваться сочитаниями клавиш совместно с SDL играми, загрузите {{AUR|sdl-nokeyboardgrab}}. Так же можно предотвратить захват клавиатуры на уровне X11, для этого воспользуйтесь {{AUR|libx11-nokeyboardgrab}}.<br />
<br />
{{Note | Как извествно, SDL не всегда могут перехватывать системный ввод. В этом случае возможно прийдется подождать несколько секунд.}}<br />
<br />
=== Запуск игр в отдельном X сервере ===<br />
Как упоминалось ранее, иногда может возникнуть необходимость запуска отдельного Х сервера. Отдельный X сервер дает некоторые преимущества, например более высокую производительность, возможность перехода в игру по клавишам CTRL-ALT-F7 / CTRL-ALT-F8, не требуется завершать основную сессию X-ов (она продолжает работать) в случае конфликта игры с видеодрайвером. Для запуска отдельного X сервера (для примера возьмем [http://alientrap.org/nexuiz/ Nexuiz]) достаточно выполнить следующее: <br />
xinit /usr/bin/nexuiz-glx -- :1<br />
Можно дополнительно создать конфигурациооный файл для X-ов:<br />
xinit /usr/bin/nexuiz-glx -- :1 -xf86config xorg-game.conf <br />
Если ваша основная конфигурация поддерживает технологию NVIDIA Twinview, то для ЗD игр, аналогичных Nexuiz, будет доступна возможность использования нескольких мониторов. Отдельный Х-сервер нежелательно использовать в конфигурациях, в которых рекомендуется отключать второй экран.<br />
<br />
Скрипт запуска игры в Openbox, из вашего домашнего каталога или из /usr/local/bin, будет выглядеть следующим образом:<br />
$ cat ~/game.sh<br />
if [ $# -ge 1 ]; then<br />
game="`which $1`"<br />
openbox="`which openbox`"<br />
tmpgame="/tmp/tmpgame.sh"<br />
DISPLAY=:1.0<br />
echo -e "${openbox} &\n${game}" > ${tmpgame}<br />
echo "starting ${game}"<br />
xinit ${tmpgame} -- :1 -xf86config xorg-game.conf || exit 1<br />
else<br />
echo "not a valid argument"<br />
fi<br />
<br />
После выполнения chmod +x запустить скрипт можно следующей командой:<br />
$ ~/game.sh nexuiz-glx<br />
<br />
=== Настройка мыши ===<br />
Для игр, требующих точность при перемещении мыши, можно настроить скорость ее реакции. Для получения дополнительной информации обратитесь [[Mouse_Polling_Rate|сюда]].<br />
<br />
== Смотрите также ==<br />
* [http://www.linuxgames.com/ LinuxGames] - Новости об играх для linux<br />
* [http://freegamer.blogspot.com/ Free Gamer] - Блог об играх с открытым исходным котод<br />
* [http://forum.freegamedev.net/ FreeGameDev] - Сообщество разработчиков свободных/открытых игр<br />
* [http://libregamewiki.org/ Libregamewiki] - wiki свободных игр<br />
* [https://fedoraproject.org/wiki/SIGs/Games#Gaming_News_sites SIG/Games] - Новостной сайт об играх в OS/Linux и списки в Fedora wiki<br />
* [http://live.linux-gamers.net live.linux-gamers] - Основанный на Arch игровой live-дистрибутив<br />
* [http://www.gamesonlinux.com Games on Linux] - Коммерческие игры для Linux</div>
Vadik
https://wiki.archlinux.org/index.php?title=CUPS_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=202948
CUPS (Русский)
2012-05-27T05:50:57Z
<p>Vadik: /* Драйвера принтеров */</p>
<hr />
<div>[[Category:Принтеры (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|CUPS}}<br />
{{Article summary start|Описание}}<br />
{{Article summary text|Установка и настройка CUPS}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary wiki|CUPS printer sharing}}<br />
{{Article summary wiki|CUPS printer-specific problems}}<br />
{{Article summary wiki|Samba}}<br />
{{Article summary end}}<br />
<br />
:"''Common UNIX Printing System ([[Wikipedia:CUPS|CUPS]], общая UNIX система печати) - это кроссплатформенное решение для печати для всех UNIX систем. Оно основано на "Internet Printing Protocol" (IPP, интернет-протокол печати) и предоставляет полный спектр возможностей для печати для большинства Postscript и растровых принтеров. CUPS распространяется под GNU GPL....''"<br />
Хотя существуют другие пакеты печати, такие как LPRNG, CUPS более популярен и довольно прост в использовании. Это система печати по умолчанию как в Arch Linux, так и во многих других Linux-дистрибутивах.<br />
<br />
<br />
= Установка =<br />
<br />
Вам скорее всего потребуются пакеты {{Pkg|cups}}, {{Pkg|ghostscript}} и {{Pkg|gsfonts}}. [[pacman|Установить]] их можно из [[Official repositories|официального репозитория]].<br />
<br />
Если стандартный cups не работает, то можно попробовать установить пакет {{AUR|cups-usblp}}, находящийся в [[AUR]].<br />
<br />
* '''cups''' - собственно пакет CUPS<br />
* '''ghostscript''' - интерпретатор для языка Postscript<br />
* '''gsfonts''' - стандартные Type1 шрифты GhostScript<br />
* '''hpoj''' - при использовании HP Officejet, во избежание проблем, установите этот пакет согласно инструкциям. Почитайте [http://answers.launchpad.net/hplip/+question/133425 обсуждение на launchpad/hplip] для получения дополнительной информации.<br />
<br />
<br />
Если ваша система подключена к сетевому принтеру с использованием протокола samba, или система является сервером печати для Windows клиентов - установите {{Pkg|samba}}.<br />
<br />
===Драйвера принтеров===<br />
Некоторые из пакетов с драйверами для принтеров, зависит от используемого вами принтера. Если не уверены, установите gutenprint.<br />
<br />
* '''{{Pkg|gutenprint}}''' - Набор высококачественных драйверов для принтеров Canon, Epson, Lexmark, Sony, Olympus и PCL использующихся с GhostSscript, CUPS, Foomatic и [[GIMP]].<br />
* '''{{Pkg|foomatic-db}}, {{Pkg|foomatic-db-engine}}, {{Pkg|foomatic-db-nonfree}} и {{Pkg|foomatic-filters}}''' - Foomatic - это система под управлением базы данных для интеграции открытых драйверов для принтера с обычными спулерами под Unix. Установка foomatic-filters должна разрешить ваши проблемы, если в error.log от CUPS будут записи: "stopped with status 22!"<br />
* '''{{AUR|foo2zjs}}''' - драйвер для принтеров использующих протокол ZjStream, например таких как HP Laserjet 1018. Дополнительная информация [http://foo2zjs.rkkda.com здесь]. Для использования Foo2zsj - установите {{AUR|foo2zjs}}.<br />
* '''{{Pkg|hplip}}''' - HP GNU/Linux драйвер. Обеспечивает поддержку DeskJet, OfficeJet, Photosmart, Business Inkjet и других принтеров моделей LaserJet, a также ряд принтеров Brother.<br />
* '''{{Pkg|splix}}''' - драйвера Samsung для принтеров SPL (Samsung Printer Language). (для USB принтеров возможно понадобится пакет {{AUR|cups-usblp}} доступный в [[AUR]])<br />
* '''{{AUR|ufr2}}''' или '''{{AUR|cndrvcups-lb}}''' - Canon UFR2 драйвер, обеспечивающий поддержку принтеров серии LBP, iR и MF. Пакет доступен в [[AUR]]. <br />
* '''{{Pkg|cups-pdf}}''' - пакет, позволяющий настроить виртуальный PDF принтер, который будет создавать PDF из всего, что будет отправлено на принтер.<br />
<br />
Если вы не уверены в работоспособности драйвера для вашего принтера или он не работает - то, возможно, стоит установить все доступные драйверы, поскольку для вашей модели принтера может подойти драйвер от другого производителя. Например, для Brother HL-2140 необходимо установить драйвер hplip.<br />
<br />
====Загрузка PPD для принтера====<br />
<br />
Так как CUPS в стандартной установке уже содержит множество PPD (Postscript Printer Description) файлов, и в зависимости от вашего принтера, этот пункт является необязательным и может быть пропущен. Более того, в пакетах <i>foomatic-filters</i>, <i>gimp-print</i> и <i>hplip</i> уже имеется большое количество PPD файлов, которые будут автоматически определены CUPS.<br />
<br />
Вот объяснение с сайта Linux Printing того, что такое PPD файл:<br />
:"''Для каждого PostScript принтера производитель предоставляет PPD файл, содержащий всю уникальную информацию об этой модели принтера: основные возможности принтера (цветной он или нет, шрифты, уровень PostScript и т. д.) и особенно настройки, которые может изменять пользователь, такие как размер бумаги, разрешение печати и т. д.''"<br />
<br />
Если в CUPS для вашего принтера отсутствует нужный PPD файл, то:<br />
*Поищите пакеты для вашего принтера/производителя в [[AUR]].<br />
*Посетите [http://www.openprinting.org/printers базу данных OpenPrinting] и выберите своего производителя и модель принтера.<br />
*Поищите драйверы под GNU/Linux на сайте производителя.<br />
<br />
<br />
{{Note|Поместите PPD файлы в {{ic|/usr/share/cups/model/}}}}<br />
<br />
= Настройка CUPS =<br />
Итак, после установки CUPS, у вас есть множество способов его настройки. Вы всегда можете использовать старую добрую командную строку. Некоторые DE, такие как Gnome и KDE, предоставляют удобные программы, которые могут вам помочь в управлении принтерами. Однако, для того чтобы сделать этот процесс максимально доступным обыкновенному пользователю, мы будем использовать web-интерфейс, предоставляемый CUPS.<br />
<br />
Если планируется подключение не к локальному, а к сетевому принтеру, то, возможно, вначале стоит почитать о настройке [[CUPS printer sharing|общего доступа к принтерам в CUPS]]. Настройка общего доступа к принтерам внутри GNU/Linux довольно проста и имеет малое количество опций, а вот организация общего доступа к принтерам между Windows и GNU/Linux является немного более сложной.<br />
<br />
=== Модули ядра ===<br />
<br />
Перед использованием веб-интерфейса CUPS, вам понадобится загрузить соответствующие модули ядра. Далее описаны шаги, взятые из руководства по установке принтера в Gentoo.<br />
<br />
Данный раздел может понадобиться в зависимости от используемого ядра. После подключения принтера нужный модуль ядра может быть загружен автоматически. Воспользуйтесь командой {{ic|tail}} (описана далее) для того, чтобы определить обнаружен ли принтер. Для просмотра загруженных модулей ядра также можно воспользоваться утилитой {{ic|lsmod}}.<br />
<br />
==== USB-принтеры ====<br />
Для использования USB-принтера может потребоваться внести в черный список модуль {{ic|usblp}}. Учтите, что насчет добавления {{ic|usblp}} в черный список имеется некоторая [http://bbs.archlinux.org/viewtopic.php?pid=660601 неопределенность], так как некоторые USB-принтеры, в частности некоторые серии принтеров Canon и Epson, не определяются без этого модуля. Несколько пользователей принтеров Samsung, после добавления в черный список модуля {{ic|usblp}}, сообщили о проблемах с {{ic|cups}}, в качестве решения предлагается повторное включение модуля {{ic|usblp}} и установка из [[AUR]] пакета {{ic|cups-usblp}} вместо стандартного пакета {{ic|cups}} (https://bbs.archlinux.org/viewtopic.php?pid=778104). С февраля 2012, ранее работавший с cups-usblp USB-принтер Samsung ML2010, работает с cups и внесением в черный список usblp.<br />
<br />
Добавление модуля в черный список:<br />
<br />
{{hc|/etc/modprobe.d/blacklist.conf|blacklist usblp}}<br />
<br />
либо создав в {{ic|/etc/modprobe.d/}} свой файл, например {{ic|usblp_blacklist.conf}}, со следующим содержимым:<br />
<br />
{{hc|/etc/modprobe.d/usblp_blacklist.conf|blacklist usblp}}<br />
<br />
При использовании ядра собранного самостоятельно, возможно придется вручную загрузить модуль {{ic|usbcore}}:<br />
# modprobe usbcore<br />
<br />
После загрузки всех необходимых модулей - включите принтер и проверьте обнаружен ли он ядром, для этого выполните следующее:<br />
# tail /var/log/messages.log<br />
или<br />
# dmesg<br />
<br />
При использовании {{ic|usblp}}, сообщение об обнаружении принтера будет выглядеть примерно так:<br />
Feb 19 20:17:11 kernel: printer.c: usblp0: USB Bidirectional<br />
printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E<br />
Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920<br />
Feb 19 20:17:11 kernel: printer.c: v0.13: USB Printer Device Class driver<br />
<br />
Если {{ic|usblp}} находится в черном списке, то будет выведено примерно следующее:<br />
usb 3-2: new full speed USB device using uhci_hcd and address 3<br />
usb 3-2: configuration #1 chosen from 1 choice<br />
<br />
==== Принтеры с параллельным портом ====<br />
Если вы желаете использовать принтер с параллельным портом, настройка в общем-то такая же, за исключением модулей:<br />
<br />
# modprobe lp<br />
# modprobe parport<br />
# modprobe parport_pc<br />
<br />
Еще раз проверьте настройки выполнив команду:<br />
# tail /var/log/messages.log<br />
Должно быть показано что-то вроде этого:<br />
lp0: using parport0 (polling)<br />
<br />
При использовании адаптера с USB на параллельный порт, CUPS не сможет обнаружить принтер. В качестве обходного пути - добавьте принтер используя другие типы соединений, а затем измените DeviceID в файле {{ic|/etc/cups/printers.conf}}:<br />
DeviceID = parallel:/dev/usb/lp0<br />
<br />
==== Автозагрузка ====<br />
Возможно, вам будет удобнее если соответствующий модуль будет загружен при старте системы. Для этого откройте в текстовом редакторе файл {{ic|/etc/[[rc.conf]]}}, и добавьте нужный модуль в строку {{ic|1=MODULES=()}}. Например, так:<br />
MODULES=(!usbserial scsi_mod sd_mod snd-ymfpci snd-pcm-oss '''lp parport parport_pc''' ide-scsi)<br />
<br />
===Демон CUPS===<br />
<br />
После установки соответствующих модулей ядра, можно приступать к [[Daemon#Performing daemon actions manually|запуску демона CUPS]]. Для автоматического запуска демона при старте системы следует добавить cupsd в [[daemons#Starting on Boot|строку DAEMONS]].<br />
<br />
=== Web-интерфейс и средства управления ===<br />
<br />
После запуска демона откройте браузер и зайдите на: http://localhost:631 (''Строку '''localhost''', возможно, придется заменить на имя хоста из'' {{ic|/etc/hosts}}).<br />
<br />
Теперь для добавления принтера можно использовать различные мастера. Для запуска обыкновенной процедуры установки кликните ''Добавление принтеров и групп'', затем ''Добавить принтер''. При запросе имени пользователя и пароля нужно будет войти в качестве root. Далее будет представлен список устройств для выбора. Фактическое имя принтера отображается рядом с меткой ( например, USB-принтеры напротив ''USB Printer #1''). Принтеру можно присваивать любое имя, аналогично для пунктов 'Расположение' и 'Описание'. После выбора соответствующего драйвера настройки будут окончены.<br />
<br />
<br />
Убедитесь в правильности настроек, нажав на кнопку ''Print Test Page'' (''Печать тестовой страницы'') в выпадающем меню ''Maintenance'' (''Обслуживание''). Если принтер не печатает, но вы уверены в правильности всех настроек, попытайтесь сменить драйвер принтера на другой.<br />
<br />
{{Tip|Ознакомьтесь с другими программами в разделе [[#Альтернативные интерфейсы CUPS]].}}<br />
{{Note|При установке USB-принтер должен отображаться в списке устройств на странице ''Добавить принтер''. Если будет доступен только вариант "SCSI printer", то это означает, что CUPS не смог распознать ваш принтер.}}<br />
<br />
==== Администрирование CUPS ====<br />
<br />
При администрировании принтера через веб-интерфейс (например для: добавления или удаления принтеров, остановки заданий печати, и т.д) понадобятся имя пользователя и пароль. Пользователем по-умолчанию может быть пользователь из группы ''sys'' или root (для изменения измените значение в строке ''SystemGroup'' файла {{ic|/etc/cups/cupsd.conf}}). <br />
<br />
При заблокированной учетной записи root (т.е. используя sudo) будет невозможно войти в веб-интерфейс управления CUPS с именем пользователя по умолчанию и его паролем. В этом случае придерживайтесь [http://www.cups.org/articles.php?L237+T+Qprintadmin инструкций] из CUPS FAQ. Дополнительно прочтите [http://bbs.archlinux.org/viewtopic.php?id=35567 это сообщение].<br />
<br />
====Удаленный доступ к веб-интерфейсу====<br />
По умолчанию, доступ к веб-интерфейсу CUPS разрешен только ''localhost''; т.е. компьютеру на котором он установлен. Для разрешения удаленного доступа нужно внести следующие изменения в файл {{ic|/etc/cups/cupsd.conf}}. Замените строку:<br />
Listen localhost:631<br />
на строку<br />
Port 631<br />
для того, чтобы CUPS мог слушать входящие запросы.<br />
<br />
Можно предоставить три уровня доступа:<br />
<Location /> #доступ к серверу<br />
<Location /admin> #доступ к странице администрирования<br />
<Location /admin/conf> #доступ к конфигурационным файлам<br />
<br />
Для разрешения удаленного доступа к одному из уровней, добавьте параметр {{ic|Allow}} в секцию соответствующую выбранному уровню. Параметр {{ic|Allow}} может принимать одно или несколько из перечисленных ниже значений:<br />
Allow all<br />
Allow host.domain.com<br />
Allow *.domain.com<br />
Allow ip-address<br />
Allow ip-address/netmask<br />
<br />
Параметр также может быть использован для запрета. Например, если нужно дать полный доступ всем хостам подсети 192.168.1.0/255.255.255.0, файл {{ic|/etc/cups/cupsd.conf}} должен содержать следующее:<br />
# Ограничение доступа к серверу...<br />
# По умолчанию возможны только локальные подключения<br />
<Location /><br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
# Ограничение доступа к странице администрирования...<br />
<Location /admin><br />
# Encryption disabled by default<br />
#Encryption Required<br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
# Ограничение доступа к конфигурационным файлам...<br />
<Location /admin/conf><br />
AuthType Basic<br />
Require user @SYSTEM<br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
Также вам потребуется добавить:<br />
<br />
DefaultEncryption Never<br />
<br />
Для того, чтоб избежать получения ошибки: 426 - Upgrade Required when using the CUPS web interface from a remote machine.<br />
<br />
= Устранение проблем =<br />
<br />
Наилучший способ борьбы с неисправностями - это выставить 'LogLevel' в файле {{ic|/etc/cups/cupsd.conf}} в:<br />
LogLevel debug<br />
<br />
А потом посмотреть вывод из файла {{ic|/var/log/cups/error_log}} например так:<br />
# tail -n 100 -f /var/log/cups/error_log<br />
<br />
Символы слева от вывода означают следующее:<br />
*D=Debug (отладка)<br />
*E=Error (ошибка)<br />
*I=Information (информация)<br />
*И так далее<br />
<br />
Следующие файлы также могут быть полезны:<br />
*{{ic|/var/log/cups/page_log}} - каждый раз при успешной печати, пишет новую запись<br />
*{{ic|/var/log/cups/access_log}} - записывает всю активность на cupsd http1.1 сервере<br />
<br />
Также, если вы хотите решить свои проблемы, важно понимать, как вообще работает CUPS. Вот краткая информация об этом:<br />
# Когда вы жмёте 'печать' приложение отправляет .ps-файл (PostScript, язык-скрипт, который описывает, как выглядит страница) в систему CUPS (так происходит в большинстве программ).<br />
# CUPS смотрит на PPD-файл (файл описания принтера) и находит, фильтры которые ему нужно использовать для преобразования .ps-файла в файл, который понимает ваш принтер (например, PJL,PCL). Обычно для этого ему требуется ghostscript.<br />
# GhostScript принимает ввод и решает, какие фильтры ему использовать, потом применяет их и преобразовывает .ps-файл в формат, который понимает принтер.<br />
# Затем файл передается бэкенду. Например, если у вас принтер подключен к usb порту, то используется usb бэкенд<br />
<br />
===Проблемы в результате обновления===<br />
''Проблемы возникшие после обновления CUPS и сопутствующего ему набора программ''<br />
<br />
====CUPS останавливается====<br />
Существует вероятность, что для правильной работы в обновленной версии понадобится новый файл конфигурации. Например, получение сообщения "404 - page not found" при попытке входа в панель управления CUPS через localhost:631.<br />
<br />
Для того, чтобы воспользоваться новым конфигом, скопируйте {{ic|/etc/cups/cupsd.conf.default}} в {{ic|/etc/cups/cupsd.conf}} (при необходимости сделайте резервную копию старого конфига):<br />
# cp /etc/cups/cupsd.conf.default /etc/cups/cupsd.conf<br />
и, чтобы новые настройки вступили в силу, перезапустите CUPS.<br />
<br />
====Для всех заданий - "остановлено" ("stopped")====<br />
Если для всех отправленных на печать заданий установился статус "остановлено" ("stopped"), - удалите принтер и установите его заново.<br />
Для этого войдите в [http://localhost:631 веб-интерфейс CUPS], перейдите Принтеры > Удалить Принтер.<br />
<br />
Для проверки настроек принтера перейдите во вкладку ''Принтеры'', затем ''Администрирование''. В выпадающем списке кликните 'Изменить принтер', перейдите к следующей странице (ам), и так далее.<br />
<br />
====Для всех заданий - "Принтер не отвечает" ("The printer is not responding")====<br />
Для сетевых принтеров, поскольку CUPS подключается через URI, необходимо убедиться, что в DNS настроен доступ к принтерам по IP. Например, если принтер подключен следующим образом:<br />
lpd://BRN_020554/BINARY_P1<br />
то имени хоста 'BRN_020554' должны соответствовать IP принтеров, управляемых сервером CUPS.<br />
<br />
====Версия PPD не совместима с gutenprint====<br />
Запустите:<br />
# /usr/sbin/cups-genppdupdate<br />
<br />
И перезагрузите CUPS (будет выведено соответствующее сообщение после установки gutenprint).<br />
<br />
===USB-принтеры под CUPS 1.4.x===<br />
Новый CUPS 1.4.x принес множество изменений:<br />
<br />
====Занесение в черный список usblp====<br />
Теперь CUPS, вместо генерирования устройств /dev/usb/lpX с помощью usblp, использует устройства libusb и USB-принтеры (из /dev/bus/usb/). Для того, чтобы заработали USB-принтеры - необходимо выключить модуль usblp.<br />
Выключить можно либо добавив в {{ic|/etc/modprobe.d/modprobe.conf}}:<br />
<br />
{{hc|/etc/modprobe.d/modprobe.conf|blacklist usblp}}<br />
<br />
либо создав в {{ic|/etc/modprobe.d/}} свой файл, например {{ic|usblp_blacklist.conf}}, со следующим содержимым:<br />
<br />
{{hc|/etc/modprobe.d/usblp_blacklist.conf|blacklist usblp}}<br />
<br />
Некоторым пользователям, возможно, прийдется переустановить принтер.<br />
<br />
====Определение устройства====<br />
В дополнение к отключению загрузки usblp, CUPS могут понадобится права на файл устройства USB-принтера - root:lp, и должны быть 660. Например.<br />
$ ls -l /dev/bus/usb/003/002<br />
crw-rw---- 1 root lp 189, 257 20. Okt 10:32 /dev/bus/usb/003/002<br />
<br />
Этого можно добиться добавлением двумя правилами udev в {{ic|/lib/udev/rules.d/50-udev-default.rules}}:<br />
# hplip and cups 1.4+ use raw USB devices, so permissions should be similar to<br />
# the ones from the old usblp kernel module<br />
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="", IMPORT{program}="usb_id --export %p"<br />
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}==":0701*:", GROUP="lp", MODE="660"<br />
<br />
Тем не менее, для некоторых устройств, например, многофункциональных устройств принтер/сканер, эти правила либо не используются, либо перекрываются правилами пакета 'sane'. В этом случае нужно будет добавлять пользовательские правила udev. Смотри далее.<br />
<br />
=====Устранение неполадок при определении устройств=====<br />
Узнаем файл устройства принтера и права доступа к нему: <br />
$ lsusb<br />
...<br />
Bus 003 Device 002: ID 04b8:0841 Seiko Epson Corp.<br />
$ ls -l /dev/bus/usb/003/002<br />
crw-rw---- 1 root lp 189, 257 20. Okt 10:32 /dev/bus/usb/003/002<br />
<br />
Если права доступа не root:lp 660, придется создать пользовательское правило [[udev]] для этого устройства, пример<br />
{{hc|cat /etc/udev/rules.d/10-usbprinter.rules|<nowiki>ATTR{idVendor}=="04b8", ATTR{idProduct}=="0841", MODE:="0660", GROUP:="lp"</nowiki>}}<br />
<br />
Для многофункциональных устройств (принтер+сканер), для того, чтоб [[sane]] определил его корректно:<br />
{{hc|cat /etc/udev/rules.d/10-usbprinter.rules|<nowiki>ATTR{idVendor}=="04b8", ATTR{idProduct}=="0841", MODE:="0660", GROUP:="lp", ENV{libsane_matched}:="yes"</nowiki>}}<br />
<br />
Обратите внимание:<br />
* {{ic|idVendor}} и {{ic|idProduct}} взяты из вывода команды {{ic|lsusb}} показанного выше.<br />
* некоторым принтерам понадобятся права доступа {{ic|666}}.<br />
<br />
=====Загрузка прошивки (firmware)=====<br />
<br />
Для некоторых принтеров и драйверов понадобится загрузка прошивки принтера (таким как, использующие foo2zjs, принтеры HP LaserJet 10xx) и сделать это будет нужно путем записи прямо на устройство lp, такие функциональные возможности предоставляет usblp. Для обхода этого ограничения нужно будет загрузить модуль usblp при загрузке прошивки, а затем, для нормальной работы CUPS, удалить модуль. Для ручной загрузки модуля выполните<br />
$ modprobe usblp<br />
загрузка прошивки, затем:<br />
$ rmmod usblp<br />
Также можно обойтись без добавления usblp в черный список, добавьте "rmmod usblp" в {{ic|/etc/rc.local}}, при этом прошивка будет загружена при старте системы, а затем, при чтении {{ic|rc.local}}, модуль usblp будет выгружен.<br />
<br />
В случае если принтер окажется подключенным или на нем будет включено питание уже на работающей системе - файл {{ic|/etc/rc.local}} не будет использован и модуль usblp останется подгруженным. Обойти это можно изменив {{ic|/etc/udev/rules.d/11-hpj10xx.rules}}, созданный для foo2zjs, таким образом чтоб при добавлении устройства выполнялось нужное событие, например: 15 секунд для загрузки прошивки и автоматического удаления usblp. Следующий пример для HP LaserJet 1018. Для других моделей значения ATTRS{idProduct} должны быть изменены, соответственно модели принтера.<br />
<br />
Найдите в {{ic|/etc/udev/rules.d/11-hpj10xx.rules}} строку соответствующую вашему принтеру:<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/sbin/foo2zjs-loadfw 1018 $tempnode"<br />
Добавьте после нее следующие строки, при этом убедитесь, что соответствуют IDs продукта и производителя:<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/usr/bin/sleep 15"<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/usr/bin/rmmod usblp"<br />
<br />
===Остальное===<br />
<br />
=====Устранение ошибок CUPS=====<br />
*Пользователям, регулярно получающим ошибки вида 'NT_STATUS_ACCESS_DENIED' (Windows-клиенты), следует слегка изменить синтаксис:<br />
smb://workgroup/username:password@hostname/printer_name<br />
<br />
*Иногда, блочные устройства могут иметь не правильные права:<br />
# ls /dev/usb/<br />
lp0<br />
# chgrp lp /dev/usb/lp0<br />
<br />
====Принтер HPLIP выдает ошибку "/usr/lib/cups/backend/hp failed"====<br />
Убедитесь, что dbus установлен и запущен, для этого или проверьте секцию DAEMONS в {{ic|/etc/rc.conf}}, или выполните {{ic|ls /var/run/daemons}}.<br />
<br />
Если демон dbus запущен, но ошибка все равно повторяется - нужен avahi-daemon.<br />
<br />
{{Note|возможно понадобиться решить вопрос с правами. Более подробно можно прочесть здесь: [https://wiki.archlinux.org/index.php/CUPS_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29#.D0.9E.D0.BF.D1.80.D0.B5.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D1.83.D1.81.D1.82.D1.80.D0.BE.D0.B9.D1.81.D1.82.D0.B2.D0.B0 Определение устройства].}}<br />
<br />
====Настройка HPLIP выполнена, но принтер не работает====<br />
Данная проблема возникает при использовании драйвера hpijs (устарел) (напр. для серии Deskjet D1600). Вместо него, при добавлении принтера, выбирайте драйвер hpcups.<br />
<br />
====hp-toolbox выдает ошибку "Unable to communicate with device" ("Невозможно соединиться с устройством")====<br />
Если в результате запуска hp-toolbox от обычного пользователя получаете сообщение:<br />
# hp-toolbox<br />
# error: Unable to communicate with device (code=12): hp:/usb/<printer id><br />
или, "{{ic|Unable to communicate with device"}}", значит следует добавить пользователя в группу lp, для этого выполните следующую команду:<br />
# gpasswd -a <username> lp<br />
<br />
====CUPS с принтером HP возвращает '"foomatic-rip" not available/stopped with status 3' ('"foomatic-rip" не используется/остановлен со статусом 3')====<br />
Если, во время использования принтера HP, задания появляются в очереди, но все завершаются со статусом 'stopped', а в {{ic|/var/log/cups/error_log}} возникает одно из следующих сообщений об ошибках:<br />
Filter "foomatic-rip" for printer "<printer_name>" not available: No such file or director<br />
или:<br />
PID 5771 (/usr/lib/cups/filter/foomatic-rip) stopped with status 3!<br />
Убедитесь, что установлен '''hplip''', также может понадобится пакет '''net-snmp'''. Прочитайте [http://bbs.archlinux.org/viewtopic.php?id=65615 эти сообщения на форуме].<br />
# pacman -S hplip<br />
<br />
====Завершение печати из-за ошибок авторизации====<br />
Если пользователь уже добавлен в группу lp, и ему разрешена печать (настраивается в {{ic|cupsd.conf}}), то проблему следует искать в файле {{ic|/etc/cups/printers.conf}}. Проблема может заключаться в следующей строке:<br />
AuthInfoRequired negotiate<br />
<br />
Закомментируйте ее и перезапустите CUPS.<br />
<br />
====Неактивна кнопка Печать в диалогах приложений GNOME====<br />
:''<small>Источник: [http://bbs.archlinux.org/viewtopic.php?id=70418 I can't print from gnome applications. - Arch Forums]</small>''<br />
<br />
Убедитесь, что установлен пакет: '''libgnomeprint'''<br />
<br />
Отредактируйте {{ic|/etc/cups/cupsd.conf}} добавив в него<br />
# HostNameLookups Double<br />
<br />
Перезапустите CUPS:<br />
# /etc/rc.d/cupsd restart<br />
<br />
====Не найдена поддержка формата: application/postscript====<br />
Закомментируйте строки:<br />
application/octet-stream application/vnd.cups-raw 0 -<br />
в {{ic|/etc/cups/mime.convs}}, и:<br />
application/octet-stream<br />
в {{ic|/etc/cups/mime.types}}.<br />
<br />
====Определение URIs для Windows Print Servers====<br />
<br />
Иногда Windows предоставляет не полную информацию об URI (расположение устройств). Если в CUPS возникли проблемы с указанием местоположения устройств - необходимо выполнить команду получения списка всех ресурсов, которые доступны данному windows-пользователю:<br />
$ smbtree -U ''windowsusername''<br />
Если [[Samba]] работает и настроена правильно, то будут отображены все, доступные выбранному Windows-пользователю, ресурсы локальной сети. Команда должна отобразить что-то, типа этого:<br />
{{bc| WORKGROUP<br />
\\REGULATOR-PC <br />
\\REGULATOR-PC\Z <br />
\\REGULATOR-PC\Public <br />
\\REGULATOR-PC\print$ Printer Drivers<br />
\\REGULATOR-PC\G <br />
\\REGULATOR-PC\EPSON Stylus CX8400 Series EPSON Stylus CX8400 Series}}<br />
Нам понадобится первая часть последней строки -ресурс соответствующий описанию принтера. Таким образом, для получения возможности печатать на принтере EPSON Stylus, в качестве URI в CUPS следует ввести:<br />
smb://username.password@REGULATOR-PC/EPSON Stylus CX8400 Series<br />
Обратите внимание на то, что в URI допускаются пробелы, а знаки "\\" следует заменять на "//".<br />
<br />
====Ошибка задания для печати client-error-document-format-not-supported====<br />
Нужно установить пакет foomatic и использовать драйвер foomatic.<br />
<br />
====Не работает /usr/lib/cups/backend/hp====<br />
В {{ic|/etc/cups/cupsd.conf}} замените:<br />
<br />
SystemGroup sys root<br />
на<br />
SystemGroup lp root<br />
<br />
====Принтер Samsung не печатает некоторые документы====<br />
<br />
Бывает, что принтер Samsung прекрасно работает с {{ic|cups}}, но не печатает некоторые документы (файлы Inkscape с текстом) и даже сбоит. В качестве решения можно посоветовать использовать пакет {{AUR|cups-usblp}} с добавлением модуля {{ic|usblp}} в черный список (как было описано ранее).<br />
<br />
====Не отображается локальный USB-принтер====<br />
<br />
Если ваш usb-принтер не отображается - попробуйте заменить {{pkg|cups}} на {{AUR|cups-usblp}} (пакет можно найти в [[AUR]]). Затем проверьте работоспособность сначала с загруженным модулем {{ic|usblp}}, а затем, если не поможет, - с добавленным в черный список.<br />
<br />
===="Не удается получить список драйверов для принтеров"====<br />
Попробуйте удалить драйверы Foomatic.<br />
<br />
=Приложение=<br />
<br />
===Альтернативные интерфейсы CUPS===<br />
<br />
В среде [[GNOME]], вы можете конфингурировать ваш принтер с помощью system-config-printer-gnome. С помощью pacman можно установить этот пакет:<br />
# pacman -S system-config-printer-gnome<br />
<br />
Для нормальной работы system-config-printer понадобиться или запуск с правами администратора, или, если от обычного пользователя, то такому пользователю должно быть разрешено администрировать CUPS (если это так - '''выполните шаги 1-3''')<br />
<br />
* 1. Создайте группу и внесите в нее нужного пользователя:<br />
# groupadd lpadmin<br />
# usermod -aG lpadmin <username><br />
<br />
* 2. Добавьте "lpadmin" (без кавычек) в следующую строку файла {{ic|/etc/cups/cupsd.conf}}<br />
SystemGroup sys root <insert here><br />
<br />
* 3. Перезапустите cups, выйдите и снова войдите в систему (или перезагрузите компьютер)<br />
{{bc|# rc.d restart cupsd}}<br />
<br />
Пользователи [[KDE]] могут изменять настройки из "Control Center" (kcontrol). Для получения дополнительной информации, обратитесь к документации вашего рабочего окружения (DE).<br />
<br />
Также в [[AUR]] можно найти пакет [https://aur.archlinux.org/packages.php?ID=43505 gtklp]<br />
<br />
===Виртуальный PDF-принтер===<br />
<br />
Существует прекрасный пакет - CUPS-PDF. Этот пакет позволяет настроить виртуальный принтер, генерирующий PDF-файлы из того, что отправлено на печать на этот принтер. Возможно этот пакет вам и не понадобиться, но иногда он может быть очень полезен.<br />
<br />
Созданные PDF-документы можно найти в {{ic|var/spool/cups-pdf}}. Обычно, более удобно такие документы добавлять в домашнюю директорию пользователя. Настроить такое поведение не сложно. В файле /etc/cups/cups-pdf.conf найдите и строку:<br />
#Out /var/spool/cups-pdf/${USER}<br />
<br />
и приведите ее к такому виду:<br />
<br />
Out /home/${USER}<br />
<br />
<br />
Установить этот пакет можно командой:<br />
# pacman -S cups-pdf<br />
<br />
После установки пакета, настройте PDF-принтер аналогично обычному принтеру, например с помощью веб-интерфейса. В Device (Оборудование) выберите - '''CUPS-PDF (Virtual PDF Printer)'''; Make/Manufacturer (Марка/Производитель) выберите - '''Generic'''; Model/Driver (Модель/Драйвер) выберите - '''Generic postscript color printer''' или '''Generic Cups-PDF Printer'''. В качестве альтернативы, [http://www.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/cups-pdf-CURRENT/extra/CUPS-PDF.ppd по этой ссылке] можно найти другой PPD-файл.<br />
<br />
==== Печать в postscript: тонкости использования виртуального CUPS-PDF-принтера ====<br />
<br />
Для большинства приложений, таких как OpenOffice, печать в PDF не является проблемой; достаточно просто нажать кнопку. Для печати в postscript, потребуется выполнить небольшой дополнительный объем работ. CUPS-PDF (Виртуальный PDF-принтер) на самом деле создает postscript-файл, а затем уже с помощью утилиты ps2pdf, преобразовывает его в PDF. Для печати в postscript, необходимо сначала передать созданные CUPS-PDF postscript-файлы. Для этого в диалоге печати нужно выбрать вариант "print to file" ("печатать в файл"). (выберите расширение для файла или .ps, или .eps). После того, как будет отмечен флажок "print to file" ("печатать в файл"), введите имя файла и нажмите "print" ("печать").<br />
<br />
=====Настройка виртуального CUPS-PDF-принтера=====<br />
#Прочтите инструкция по настройке демона cups.<br />
#Установите {{Pkg|cups-pdf}} из [extra].<br />
#Запустите менеджер печати cups: http://localhost:631 и выберите:<br />
Administration -> Add Printer<br />
Select CUPS-PDF (Virtual PDF), выберите марку и модель:<br />
Make: Generic<br />
Driver: Generic CUPS-PDF Printer<br />
<br />
Теперь, для печати в postscript, в диалоговом окне печати установите "CUPS-PDF" в качестве принтера, установите флажок на "print to file" ("печатать в файл"), нажмите печать, введите имя_файла.ps и кликните сохранить. Метод удобен при обработке факсов и т.д...<br />
<br />
===Другие источники драйверов для принтеров===<br />
<br />
[http://www.turboprint.de/english.html Turboprint] - проприетарный драйвер для многих моделей принтеров, которые до сих пор не поддерживаются в GNU/Linux (например Canon i*). Единственная проблема в том, что высококачественная печать будет либо с водяным знаком, либо за отдельную плату...<br />
<br />
=Дополнение=<br />
<br />
Список вебсайтов, которые могут быть вам полезны:<br />
<br />
* <b>Official CUPS documentation on your computer</b> http://localhost:631/documentation.html<br />
* <b>Official CUPS Website</b> - http://www.cups.org/<br />
* <b>Linux Printing</b> - http://www.linuxprinting.org/<br />
* <b>Tips and Suggestions on common CUPS problems</b> - http://home.nyc.rr.com/computertaijutsu/cups.html<br />
* <b>Gentoo's Printing Guide</b> - http://www.gentoo.org/doc/en/printing-howto.xml<br />
* <b>Arch Linux User Forums</b> - http://bbs.archlinux.org/<br />
<br />
==Особые случаи==<br />
<br />
Дальнейшее описание посвящено специфическим проблемам и их решениям. Если вы сталкивались с какой-либо ''необычной'' работой принтера, пожалуйста, поместите решение проблемы здесь.<br />
<br />
=== Принтеры с параллельным портом HP (hplip) ===<br />
{{Note|Действия проводились для настройки HP LaserJet 6L}}<br />
Если HP принтер подключен через параллельный порт, то потребуется пересобрать пакет '''hplip''' с опцией '''--enable-pp-build'''.<br />
Для этого устанавливаем и обновляем ABS:<br />
<pre><br />
# pacman -S abs<br />
# abs<br />
</pre><br />
Копируем необходимые файлы для сборки<br />
<pre><br />
# cp -r /var/abs/extra/hplip /tmp<br />
</pre><br />
Правим файл {{ic|/tmp/hplip/PKGBUILD}} и добавляем опцию '''--enable-pp-build''' для '''./configure''':<br />
<pre><br />
[...]<br />
./configure --prefix=/usr \<br />
--enable-qt4 \<br />
--enable-pp-build \<br />
--enable-foomatic-rip-hplip-install \<br />
--enable-foomatic-ppd-install \<br />
--enable-hpcups-install \<br />
--enable-cups-drv-install \<br />
--enable-hpijs-install \<br />
--enable-foomatic-drv-install \<br />
--enable-udev-acl-rules<br />
[...]<br />
</pre><br />
Собираем и ставим пакет:<br />
<pre><br />
cd /tmp/hplip<br />
makepkg -s<br />
pacman -U hplip-3.10.6-1-i686.pkg.tar.xz<br />
</pre><br />
Далее принтер настраивается обычным путем через web-интерфейс '''CUPS''' [http://localhost:631 http://localhost:631].<br />
<br />
Если принтер правильно настроен для работы с '''hplip''', то строка подключения в '''CUPS''' будет начинаться с '''hp:'''<br />
<pre><br />
hp:/par/HP_LaserJet_6L?device=/dev/parport0<br />
</pre><br />
<br />
{{Note|Действия проводились для настройки HP LaserJet 5L, x86_64}}<br />
Устанавливаем hplip (пересобирать пакет не надо, он уже собран с --enable-pp-build)<br />
<pre><br />
# pacman -S hplip<br />
</pre><br />
Далее запускаем<br />
<pre><br />
# hp-setup -i -a -x /dev/parport0<br />
</pre><br />
для автоматического добавления принтера в CUPS, либо добавляем "ручками" через веб-интерфейс [http://localhost:631 http://localhost:631].<br />
<br />
===Печать не работает/прерывается на принтерах HP Deskjet 700===<br />
<br />
Проблема решается установкой фильтра pnm2ppa для принтеров HP Deskjet 700 series. Без этого задания на печать будут отменяться системой. [[Arch Build System (Русский)| PKGBUILD]] для pnm2ppa можно найти здесь: [https://aur.archlinux.org/index.php?setlang=ru AUR].<br />
<br />
===Заставить работать HP LaserJet 1010===<br />
Мне для этого пришлось самому собрать ghostscript, потому что gs ESP в репозитории был версии 7.07 и имел некоторые ошибки, исправленные в ESP 8.15.1. Я никогда не пользовался пакетом 'foomatic' из репозитория. Я думаю что этот пакет устарел.<br />
<pre><br />
$ pacman -Qs cups a2ps psutils foo ghost<br />
local/cups 1.1.23-3<br />
The CUPS Printing System<br />
local/a2ps 4.13b-3<br />
a2ps is an Any to PostScript filter<br />
local/psutils p17-3<br />
A set of postscript utilities.<br />
local/foomatic-db 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-db-engine 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-db-ppd 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-filters 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/espgs 8.15.1-1<br />
ESP Ghostscript<br />
</pre><br />
Также я был вынужден выставить LogLevel в /etc/cups/cupsd.conf в debug2 для того чтобы обнаружить отсутствие некоторых шрифтов "Nimbus". Затем я переименовал их и положил туда, куда мне подсказывал лог. Тут нужно привести хитрый способ поиска в google, [http://www.google.com/search?q=n019003l+filetype%3Apfb например] т.к. шрифты являются проприетарными (уверен что в windows это по умолчанию). В любом случае, после скачивания шрифтов (около 7) и помещения их в правильную директорию печать заработала.<br />
<br />
До этого я получал ошибки описанные [http://linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1010 здесь]: 'Unsupport PCL' и т.п...<br />
<br />
Уверен что это работало бы и с gs ESP 7.07 (в репозитории) если бы у меня раньше хватило ума включить DebugLevel2 :-/<br />
<br />
''Обновление:'' да, это работает... может быть эта информация окажется полезной для кого-либо ещё... извините за неудобства.<br />
<br />
===Заставить работать HP LaserJet 1020 (1018 и похожие)===<br />
После множества попыток связанных с hplib и gutenprint я наконец нашёл решение как заставить мой HP Laserjet 1020 печатать. <br />
<br />
Первым делом вам надо уставить cups и ghostscript. Затем пройдите по ссылке <br />
http://www.linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1020 на страницу драйверов печати http://foo2zjs.rkkda.com/ и следуйте интрукциям по установке. Залогиньтесь как root. После скачивания и распаковки архива переместитесь в распакованную директорию foo2zjs. Теперь вы можете делать всё по оригинальной инструкции по установке, лишь с небольшой модификацией для изменения userid пользователя для печати:<br />
<pre><br />
$ make<br />
$ ./getweb 1020<br />
</pre><br />
Откройте ''Makefile''<br />
<pre>$ nano Makefile</pre><br />
найдите там строку<br />
<pre># LPuid=-olp</pre><br />
и модифицируйте её таки образом:<br />
<pre># LPuid=-oroot</pre><br />
дальше выполняйте сборку<br />
<pre><br />
$ make install<br />
$ make install-hotplug<br />
$ make cups<br />
</pre><br />
Сейчас в этих действиях нет необходимости. Теперь строка '''LPuid=-oroot''' стоит по умолчанию.<br />
<br />
Вы также можете взять пакет foo2zjs из [https://aur.archlinux.org/index.php?setlang=ru AUR] и модифицировать [[Arch Build System (Русский)| PKGBUILD]]: измените строку<br />
<pre>./getweb all</pre><br />
на<br />
<pre>./getweb 1020</pre><br />
(или, если устанавливаете другой принтер, измените эту строку на что, что вам нужно).<br />
<br />
Последним шагом является добавление и конфигурирование принтера в CUPS manager. Принтер должен определиться автоматически. Это отлично работает для root'а и всех ползователей. Когда ОС загружается, принтер инициализируется и сигнализирует о том, что он работает.<br />
Так же строку<br />
<pre>./getweb 1020</pre><br />
можно изменять на необходимые 1018 (для работы принтера Hewlett-Packard 1018) и т.д.<br />
<pre>./getweb 1018</pre><br />
Список поддерживаемы моделей тут: http://foo2zjs.rkkda.com/<br />
<br />
====HPLIP====<br />
<br />
Больше нет необходимости устанавливать драйвер foo2zjs для работы принтера HP LJ 1018/1020, поскольку в последних версиях hplip он работает "из коробки". Вам следует установить hplip, gnomesu или gksu, qt и pyqt4, после чего запустить <br />
<pre>sudo hp-setup</pre><br />
CUPS-сервер должен быть запущен. Мастер установки hplip автоматически установит ваш принтер. После следует установить плагин к принтеру. Для этого запустить от пользователя программу hp-toolbox и выберите "install required plugin". Плагин автоматически загрузится с сайта производителя.<br />
Никаких дополнительных действий (вроде внесения usblp и MODULES_BLACKLIST) выполнять не надо.<br />
<br />
===Выполнение сервисных операций на принтерах Epson===<br />
====Escputil====<br />
<br />
Здесь объясняется как выполнить некоторые вспомогательные операции, такие как очистка и проверка сопел на принтерах Epson. Для этого мы будем использовать утилиту escputil, которая входит в состав пакета gutenprint.<br />
<br />
Man-страница этой утилиты ("man escputil") содержит очень полезную информацию, но не включает в себя необходимых сведений о том как идентифицировать ваш принтер. Для этого могут быть использованы два параметра. Первый из них --printer; он принимает имя принтера, которое вы использовали при его конфигурировании. Другой &mdash --raw-device. Эта опция примаетпуть к устройству. Если ваш принтер подключен к последовательному порту, то устройство будет выглядеть примерно как "/dev/lp0". Если же ваш принтер подключен к USB, по устройство будет "/dev/usb/lp0". Если у вас более одного принтера они будут иметь имена файлов устройств "lp1", "lp2" и т.д.<br />
<br />
* очистка печатающей головки:<br />
<pre>escputil -u --clean-head</pre><br />
<br />
* проверка сопел:<br />
<pre>escputil -u --nozzle-check</pre><br />
<br />
Если вам необходимо произвести операцию, которая требует двухстороннего общения с принтером вы должны использовать спецификацию "--raw-device", а ваш пользователь должен состоять в группе "lp" или быть root'ом.<br />
<br />
* получение внутреннего имени принтера:<br />
<br />
sudo escputil --raw-device=/dev/usb/lp0 --identify<br />
<br />
* получение уровня чернил:<br />
<br />
sudo escputil --raw-device=/dev/usb/lp0 --ink-level<br />
<br />
====Mtink====<br />
<br />
Это монитор состояния принтера, который позволяет получить количество оставшихся чернил, печатать тестовые страницы, сбрасывать принтер и очищать сопла. Он использует интуитивный графический интерфейс пользователя. Пакет можно скачать [https://aur.archlinux.org/packages.php?ID=476 отсюда].<br />
<br />
= См. также =<br />
* [http://localhost:631/documentation.html Официальная документация CUPS documentation], ''локальная установка''<br />
* [http://www.cups.org/ Официальный Веб-сайт CUPS]<br />
* [http://www.linuxprinting.org/ Linux Printing], ''[http://www.linuxfoundation.org Linux Foundation]''<br />
* [http://www.gentoo.org/doc/en/printing-howto.xml Руководство по печати в Gentoo], ''[http://www.gentoo.org/doc/en Источники Документации Gentoo]''<br />
* [http://bbs.archlinux.org/ Форум пользователей Arch Linux]<br />
<br />
* [http://wiki.gotux.net/config/hp-printer Простая установка принтеров HP]</div>
Vadik
https://wiki.archlinux.org/index.php?title=E4rat_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=201936
E4rat (Русский)
2012-05-17T17:12:35Z
<p>Vadik: /* bootchart 0.9-9 */</p>
<hr />
<div>[[Category:Русский]]<br />
[[Category:Загрузка (Русский)]]<br />
{{i18n|e4rat}}<br />
<br />
{{Article summary start|Описание}}<br />
{{Article summary text|Уменьшение времени загрузки системы и входа в X-ы для файловой системы ext4 с использованием [http://e4rat.sourceforge.net/ утиллит e4rat].}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary wiki|Improve Boot Performance}}<br />
{{Article summary wiki|Preload}}<br />
{{Article summary wiki|Readahead}}<br />
{{Article summary wiki|Ureadahead}}<br />
{{Article summary wiki|Ext4}}<br />
{{Article summary heading|Темы форума}}<br />
{{Article summary link|Main discussion|https://bbs.archlinux.org/viewtopic.php?id&#61;115976}}<br />
{{Article summary link|Improved e4rat-preload|https://bbs.archlinux.org/viewtopic.php?id&#61;117776}}<br />
{{Article summary end}}<br />
<br />
e4rat - проект Andreas Rid и Gundolf Kiefer, расшифровывается как e4 'reduced access time' (сокращение времени доступа), применяется только в файловой системе [[ext4]]. В [http://e4rat.sourceforge.net/ набор утилит e4rat] входит: e4rat-collect, e4rat-realloc и e4rat-preload.<br />
<br />
==Описание==<br />
Если взглянуть на статистику [[bootchart]], то можно заметить, что при загрузке системы ни жесткий диск, ни CPU не используются полностью. e4rat позволяет максимально задействовать жесткий диск и CPU, ускоряя таким образом процесс загрузки. Все проводится в три этапа:<br />
* '''e4rat-collect''' - собирает статистику по используемым файлам в течении определенного времени (по умолчанию 120 секунд, но может быть скорректировано)<br />
* '''e4rat-realloc''' - перераспределяет файлы из списка (помещает их в одну область диска)<br />
* '''e4rat-preload''' - заранее загружает нужные файлы в память<br />
<br />
===Кому это нужно, а кому нет===<br />
e4rat может быть полезной в системах с одним пользователем, использующим автозапуск Х-в, при этом также можно ускорить запуск нужных программ. На серверах или при загрузке в CLI - время загрузки системы может снизиться не на много. Для SSD-дисков вообще нет смысла использовать, поскольку у них отсутствуют движущиеся части и, как следствие, отсутствуют (почти) задержки, однако, пользователям таких дисков, может быть полезно ознакомиться с [[Ureadahead]].<br />
<br />
{{Note|'''Пользователям ureadahead следует обратить внимание:''' в [http://e4rat.sourceforge.net/wiki/index.php/Main_Page#Ubuntu_and_ureadahead оффициальном руководстве e4rat] говориться о том, что ureadahead конфликтует с e4rat. Это может быть верным для Ubuntu, но в Arch Linux эти пакеты возможно будут работать нормально, хотя процесс загрузки, скорее всего, и не ускорится.}}<br />
<br />
Перед использованием e4rat рекомендуется сделать резервные копии изменяемых во избежание потери важных данных.<br />
<br />
==Установка==<br />
Пакет {{Pkg|e4rat}} можно найти в репозитории [community] и установить так:<br />
# pacman -S e4rat<br />
<br />
==Использование==<br />
Далее более подробно:<br />
===e4rat-collect===<br />
Чтоб e4rat смог создать список файлов, необходимо отредактировать файл {{ic|/boot/grub/menu.lst}} ([[grub]] legacy) или {{ic|/boot/grub/grub.cfg}} ([[grub2]]), добавив в строку загрузки ядра linux следующее:<br />
<br />
{{bc|1=init=/sbin/e4rat-collect}}<br />
<br />
Данное действие нужно будет выполнить один раз, поэтому также можно просто отредактировать нужную строку в меню grub на этапе загрузки из командной строки.<br />
<br />
После загрузки, в течении 120 секунд, e4rat-collect будет собирать нужную информацию. Поэтому, в течении 2-х минут после загрузки, запустите X-ы, откройте любимый браузер или почтовую программу и т.д., при этом утилита зарегистрирует все запущенные программы и используемые файлы. При необходимости можно изменить стандартное время сбора статистики, для этого отредактируйте файл {{ic|/etc/e4rat.conf}}. Чтобы вручную завершить работу e4rat-collect, выполните:<br />
<br />
{{bc|e4rat-collect -k}}<br />
или<br />
{{bc|pkill e4rat-collect}}<br />
<br />
После загрузки и успешного завершения работы e4rat-collect должен появиться файл: {{ic|/var/lib/e4rat/startup.log}}<br />
<br />
Теперь не забудьте удалить команду запуска e4rat-collect из своего файла {{ic|menu.lst}} или {{ic|grub.cfg}} (не обязательно, если вы ее добавляли из командной строки [[GRUB]] в процессе загрузки системы).<br />
<br />
===e4rat-realloc===<br />
Для запуска процесса перемещения файлов, согласно созданному в предыдущем шаге списку, необходимо перейти в init 1:<br />
<br />
{{bc|sudo init 1}}<br />
<br />
Авторизоваться в качестве root и выполнить:<br />
<br />
{{bc|e4rat-realloc /var/lib/e4rat/startup.log}}<br />
<br />
В зависимости от того, сколько файлов перечислено в {{ic|startup.log}}, процесс может затянуться на продолжительное время.<br />
{{Warning|Ни в коем случае не прерывайте процесс перемещения файлов, так как это может привести к порче данных и дальнейшей невозможности загрузки системы!}}<br />
<br />
===e4rat-preload===<br />
Отредактируйте файл {{ic|/boot/grub/menu.lst}} ([[grub]] legacy) или {{ic|/boot/grub/grub.cfg}} ([[grub2]]), добавив в параметры загрузки ядра:<br />
<br />
{{bc|1=init=/sbin/e4rat-preload}}<br />
<br />
:{{Note|1=В случае использования grub2, параметры загрузки ядра добавляйте в строку {{Ic|1=GRUB_CMDLINE_LINUX="..."}} файла {{Ic|/etc/default/grub}}.}}<br />
<br />
Перезагружайтесь и наслаждайтесь.<br />
<br />
{{Note|После обновления системы может понадобиться выполнить заново все описанные для [[#e4rat-collect|e4rat-collect]], [[#e4rat-realloc|e4rat-realloc]] и [[#e4rat-preload|e4rat-preload]] действия.}}<br />
<br />
===Альтернатива: e4rat-preload-lite===<br />
[https://bbs.archlinux.org/viewtopic.php?id=117776&p=1 jlindgren], в качестве альтернативы, разработал бинарный preload, позволяющий сэкономить несколько секунд при загрузке.<br />
<br />
Экономия достигается за счет<br />
* использования чистого C, без каких-либо зависимостей от внешних библиотек, что позволяет уменьшить количество связанных файлов .so с 22 до 3, и<br />
* предварительной загрузки первых 100 файлов (таких как дескрипторы и файлы содержимого) перед запуском /sbin/init, и дальнейшая загрузка остальных файлов как параллельно, так и в определенной последовательности.<br />
<br />
{{AUR|e4rat-preload-lite}} можно установить из [[AUR]].<br />
<br />
Отредактируйте файл {{ic|/boot/grub/menu.lst}} ([[grub]] legacy) или {{ic|/boot/grub/grub.cfg}} ([[grub2]]), добавив в параметры загрузки ядра:<br />
<br />
{{bc|1=init=/usr/sbin/e4rat-preload-lite}}<br />
<br />
Перезагружайтесь и наслаждайтесь.<br />
<br />
==e4rat и различные системы инициализации==<br />
По умолчанию e4rat-collect после завершения будет заменена на /sbin/init. Если вам нужно указать другой PID 1, например /bin/[[systemd]], отредактируйте файл {{ic|/etc/e4rat.conf}}, раскомментировав в нем строку с нужным параметром '''init'''<br />
<br />
==Bootchart==<br />
{{Note|Еще находится в разработке и толком не работает - любые предложения приветствуются}}<br />
<br />
Запустите [[Bootchart]] до и после использования e4rat, а затем сравните полученные результаты. Должны появиться видимые изменения.<br />
<br />
===bootchart 0.9-9===<br />
В этой версии журнал ведется только до запуска [[Display Manager]]. Для обхода данного ограничения можно попробовать выполнить следующее (работает не у всех):<br />
<br />
В файле {{ic|/etc/bootchartd.conf}} установите:<br />
<br />
{{bc|1=AUTO_STOP_LOGGER="no"}}<br />
<br />
Когда будет нужно остановить работу сервиса - выполните:<br />
<br />
{{bc|~# bootchartd stop}}<br />
<br />
Для запуска e4rat-preload и bootchart добавив в параметры загрузки ядра:<br />
<br />
{{bc|1=init=/sbin/bootchartd bootchart_init=/sbin/e4rat-preload}}<br />
<br />
===bootchart2===<br />
Для совместного использования bootchart2 с e4rat отредактируйте {{ic|/sbin/bootchartd}} и заменить строку {{ic|<nowiki>init="/sbin/init"</nowiki>}} на {{ic|<nowiki>init="/sbin/e4rat-preload"</nowiki>}}.<br />
<br />
{{ic|/etc/bootchartd.conf}} от bootchart2 устроен иначе, а строка<br />
<br />
EXIT_PROC="kdm_greet xterm konsole gnome-terminal metacity mutter compiz ldm icewm-session enlightenment"<br />
<br />
может быть скорректирована таким образом, что можно будет либо завершать программу вручную (если оставить строку пустой), либо, при запуске указанной в строке программы, bootchart2 будет остановлен автоматически.<br />
<br />
==Устранение неполадок==<br />
Если что-то не работает - можно попробовать следующее.<br />
<br />
===startup.log не создается===<br />
*отключите все проверки в {{ic|rc.conf}}<br />
*изучите все сообщения из<br />
# dmesg | grep e4rat<br />
*в {{ic|e4rat.conf}} увеличите значения verbose и loglevel до 31.<br />
<br />
===e4rat - отчеты об ошибках в файловой системе ext2===<br />
*в файле {{ic|grub.cfg}} или {{ic|menu.lst}} добавьте в параметры загрузки ядра:<br />
rootfstype=ext4<br />
<br />
===/var/lib/e4rat/startup.log не доступен===<br />
*это говорит о том, что /var расположен на отдельном разделе и при загрузке еще не был смонтирован. Вам нужно переместить {{ic|startup.log}} на раздел который доступен (лучше всего в /etc/e4rat/) и, для сохранения изменений, перенастроить {{ic|/etc/e4rat.conf}}:<br />
{{bc|startup_log_file /etc/e4rat/startup.log}}</div>
Vadik
https://wiki.archlinux.org/index.php?title=CUPS_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=201686
CUPS (Русский)
2012-05-16T07:01:57Z
<p>Vadik: </p>
<hr />
<div>[[Category:Принтеры (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|CUPS}}<br />
{{Article summary start|Описание}}<br />
{{Article summary text|Установка и настройка CUPS}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary wiki|CUPS printer sharing}}<br />
{{Article summary wiki|CUPS printer-specific problems}}<br />
{{Article summary wiki|Samba}}<br />
{{Article summary end}}<br />
<br />
:"''Common UNIX Printing System ([[Wikipedia:CUPS|CUPS]], общая UNIX система печати) - это кроссплатформенное решение для печати для всех UNIX систем. Оно основано на "Internet Printing Protocol" (IPP, интернет-протокол печати) и предоставляет полный спектр возможностей для печати для большинства Postscript и растровых принтеров. CUPS распространяется под GNU GPL....''"<br />
Хотя существуют другие пакеты печати, такие как LPRNG, CUPS более популярен и довольно прост в использовании. Это система печати по умолчанию как в Arch Linux, так и во многих других Linux-дистрибутивах.<br />
<br />
<br />
= Установка =<br />
<br />
Вам скорее всего потребуются пакеты {{Pkg|cups}}, {{Pkg|ghostscript}} и {{Pkg|gsfonts}}. [[pacman|Установить]] их можно из [[Official repositories|оффициального репозитория]].<br />
<br />
Если стандартный cups не работает, то можно попробовать установить пакет {{AUR|cups-usblp}}, находящийся в [[AUR]].<br />
<br />
* '''cups''' - собственно пакет CUPS<br />
* '''ghostscript''' - интерпретатор для языка Postscript<br />
* '''gsfonts''' - стандартные Type1 шрифты GhostScript<br />
* '''hpoj''' - при использовании HP Officejet, во избежание проблем, установите этот пакет согласно инструкциям. Почитайте [http://answers.launchpad.net/hplip/+question/133425 обсуждение на launchpad/hplip] для получения дополнительной информации.<br />
<br />
<br />
Если ваша система подключена к сетевому принтеру с использованием протокола samba, или система является сервером печати для Windows клиентов - установите {{Pkg|samba}}.<br />
<br />
===Драйвера принтеров===<br />
Некоторые из пакетов с драйверами для принтеров, зависит от используемого вами принтера. Если не уверены, установите gutenprint.<br />
<br />
* '''{{Pkg|gutenprint}}''' - Набор высококачественных драйверов для принтеров Canon, Epson, Lexmark, Sony, Olympus и PCL использующихся с GhostSscript, CUPS, Foomatic и [[GIMP]].<br />
* '''{{Pkg|foomatic-db}}, {{Pkg|foomatic-db-engine}}, {{Pkg|foomatic-db-nonfree}} и {{Pkg|foomatic-filters}}''' - Foomatic - это система под управлением базы данных для интеграции открытых драйверов для принтера с обычными спулерами под Unix. Установка foomatic-filters должна разрешить ваши проблемы, если в error.log от CUPS будут записи: "stopped with status 22!"<br />
* '''{{AUR|foo2zjs}}''' - драйвер для принтеров использующих протокол ZjStream, например таких как HP Laserjet 1018. Дополнительная информация [http://foo2zjs.rkkda.com здесь]. Для использования Foo2zsj - установите {{AUR|foo2zjs}}.<br />
* '''{{Pkg|hplip}}''' - HP GNU/Linux драйвер. Обеспечивает поддержку DeskJet, OfficeJet, Photosmart, Business Inkjet и других принтеров моделей LaserJet, a также ряд принтеров Brother.<br />
* '''{{Pkg|splix}}''' - драйвера Samsung для принтеров SPL (Samsung Printer Language). (для USB принтеров возможно понадобится пакет {{AUR|cups-usblp}} доступный в [[AUR]])<br />
* '''{{AUR|ufr2}}''' - Canon UFR2 драйвер, обеспечивающий поддержку принтеров серии LBP, iR и MF. Пакет доступен в [[AUR]]. <br />
* '''{{Pkg|cups-pdf}}''' - пакет, позволяющий настроить виртуальный PDF принтер, который будет создавать PDF из всего, что будет отправлено на принтер.<br />
<br />
Если вы не уверены в работоспособности драйвера для вашего принтера или он не работает - то, возможно, стоит установить все доступные драйверы, поскольку для вашей модели принтера может подойти драйвер от другого производителя. Например, для Brother HL-2140 необходимо установить драйвер hplip.<br />
<br />
====Загрузка PPD для принтера====<br />
<br />
Так как CUPS в стандартной установке уже содержит множество PPD (Postscript Printer Description) файлов, и в зависимости от вашего принтера, этот пункт является необязательным и может быть пропущен. Более того, в пакетах <i>foomatic-filters</i>, <i>gimp-print</i> и <i>hplip</i> уже имеется большое количество PPD файлов, которые будут автоматически определены CUPS.<br />
<br />
Вот объяснение с сайта Linux Printing того, что такое PPD файл:<br />
:"''Для каждого PostScript принтера производитель предоставляет PPD файл, содержащий всю уникальную информацию об этой модели принтера: основные возможности принтера (цветной он или нет, шрифты, уровень PostScript и т. д.) и особенно настройки, которые может изменять пользователь, такие как размер бумаги, разрешение печати и т. д.''"<br />
<br />
Если в CUPS для вашего принтера отсутствует нужный PPD файл, то:<br />
*Поищите пакеты для вашего принтера/производителя в [[AUR]].<br />
*Посетите [http://www.openprinting.org/printers базу данных OpenPrinting] и выберите своего производителя и модель принтера.<br />
*Поищите драйверы под GNU/Linux на сайте производителя.<br />
<br />
<br />
{{Note|Поместите PPD файлы в {{ic|/usr/share/cups/model/}}}}<br />
<br />
= Настройка CUPS =<br />
Итак, после установки CUPS, у вас есть множество способов его настройки. Вы всегда можете использовать старую добрую командную строку. Некоторые DE, такие как Gnome и KDE, предоставляют удобные программы, которые могут вам помочь в управлении принтерами. Однако, для того чтобы сделать этот процесс максимально доступным обыкновенному пользователю, мы будем использовать web-интерфейс, предоставляемый CUPS.<br />
<br />
Если планируется подключение не к локальному, а к сетевому принтеру, то, возможно, вначале стоит почитать о настройке [[CUPS printer sharing|общего доступа к принтерам в CUPS]]. Настройка общего доступа к принтерам внутри GNU/Linux довольно проста и имеет малое количество опций, а вот организация общего доступа к принтерам между Windows и GNU/Linux является немного более сложной.<br />
<br />
=== Модули ядра ===<br />
<br />
Перед использованием веб-интерфейса CUPS, вам понадобится загрузить соответствующие модули ядра. Далее описаны шаги, взятые из руководства по установке принтера в Gentoo.<br />
<br />
Данный раздел может понадобиться в зависимости от используемого ядра. После подключения принтера нужный модуль ядра может быть загружен автоматически. Воспользуйтесь командой {{ic|tail}} (описана далее) для того, чтобы определить обнаружен ли принтер. Для просмотра загруженных модулей ядра также можно воспользоваться утилитой {{ic|lsmod}}.<br />
<br />
==== USB-принтеры ====<br />
Для использования USB-принтера может потребоваться внести в черный список модуль {{ic|usblp}}. Учтите, что насчет добавления {{ic|usblp}} в черный список имеется некоторая [http://bbs.archlinux.org/viewtopic.php?pid=660601 неопределенность], так как некоторые USB-принтеры, в частности некоторые серии принтеров Canon и Epson, не определяются без этого модуля. Несколько пользователей принтеров Samsung, после добавления в черный список модуля {{ic|usblp}}, сообщили о проблемах с {{ic|cups}}, в качестве решения предлагается повторное включение модуля {{ic|usblp}} и установка из [[AUR]] пакета {{ic|cups-usblp}} вместо стандартного пакета {{ic|cups}} (https://bbs.archlinux.org/viewtopic.php?pid=778104). С февраля 2012, ранее работавший с cups-usblp USB-принтер Samsung ML2010, работает с cups и внесением в черный список usblp.<br />
<br />
Добавление модуля в черный список:<br />
<br />
{{hc|/etc/modprobe.d/blacklist.conf|blacklist usblp}}<br />
<br />
либо создав в {{ic|/etc/modprobe.d/}} свой файл, например {{ic|usblp_blacklist.conf}}, со следующим содержимым:<br />
<br />
{{hc|/etc/modprobe.d/usblp_blacklist.conf|blacklist usblp}}<br />
<br />
При использовании ядра собранного самостоятельно, возможно придется вручную загрузить модуль {{ic|usbcore}}:<br />
# modprobe usbcore<br />
<br />
После загрузки всех необходимых модулей - включите принтер и проверьте обнаружен ли он ядром, для этого выполните следующее:<br />
# tail /var/log/messages.log<br />
или<br />
# dmesg<br />
<br />
При использовании {{ic|usblp}}, сообщение об обнаружении принтера будет выглядеть примерно так:<br />
Feb 19 20:17:11 kernel: printer.c: usblp0: USB Bidirectional<br />
printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E<br />
Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920<br />
Feb 19 20:17:11 kernel: printer.c: v0.13: USB Printer Device Class driver<br />
<br />
Если {{ic|usblp}} находится в черном списке, то будет выведено примерно следующее:<br />
usb 3-2: new full speed USB device using uhci_hcd and address 3<br />
usb 3-2: configuration #1 chosen from 1 choice<br />
<br />
==== Принтеры с параллельным портом ====<br />
Если вы желаете использовать принтер с параллельным портом, настройка в общем-то такая же, за исключением модулей:<br />
<br />
# modprobe lp<br />
# modprobe parport<br />
# modprobe parport_pc<br />
<br />
Еще раз проверьте настройки выполнив команду:<br />
# tail /var/log/messages.log<br />
Должно быть показано что-то вроде этого:<br />
lp0: using parport0 (polling)<br />
<br />
При использовании адаптера с USB на параллельный порт, CUPS не сможет обнаружить принтер. В качестве обходного пути - добавьте принтер используя другие типы соединений, а затем измените DeviceID в файле {{ic|/etc/cups/printers.conf}}:<br />
DeviceID = parallel:/dev/usb/lp0<br />
<br />
==== Автозагрузка ====<br />
Возможно, вам будет удобнее если соответствующий модуль будет загружен при старте системы. Для этого откройте в текстовом редакторе файл {{ic|/etc/[[rc.conf]]}}, и добавьте нужный модуль в строку {{ic|1=MODULES=()}}. Например, так:<br />
MODULES=(!usbserial scsi_mod sd_mod snd-ymfpci snd-pcm-oss '''lp parport parport_pc''' ide-scsi)<br />
<br />
===Демон CUPS===<br />
<br />
После установки соответствующих модулей ядра, можно приступать к [[Daemon#Performing daemon actions manually|запуску демона CUPS]]. Для автоматического запуска демона при старте системы следует добавить cupsd в [[daemons#Starting on Boot|строку DAEMONS]].<br />
<br />
=== Web-интерфейс и средства управления ===<br />
<br />
После запуска демона откройте браузер и зайдите на: http://localhost:631 (''Строку '''localhost''', возможно, придется заменить на имя хоста из'' {{ic|/etc/hosts}}).<br />
<br />
Теперь для добавления принтера можно использовать различные мастера. Для запуска обыкновенной процедуры установки кликните ''Добавление принтеров и групп'', затем ''Добавить принтер''. При запросе имени пользователя и пароля нужно будет войти в качестве root. Далее будет представлен список устройств для выбора. Фактическое имя принтера отображается рядом с меткой ( например, USB-принтеры напротив ''USB Printer #1''). Принтеру можно присваивать любое имя, аналогично для пунктов 'Расположение' и 'Описание'. После выбора соответствующего драйвера настройки будут окончены.<br />
<br />
<br />
Убедитесь в правильности настроек, нажав на кнопку ''Print Test Page'' (''Печать тестовой страницы'') в выпадающем меню ''Maintenance'' (''Обслуживание''). Если принтер не печатает, но вы уверены в правильности всех настроек, попытайтесь сменить драйвер принтера на другой.<br />
<br />
{{Tip|Ознакомьтесь с другими программами в разделе [[#Альтернативные интерфейсы CUPS]].}}<br />
{{Note|При установке USB-принтер должен отображаться в списке устройств на странице ''Добавить принтер''. Если будет доступен только вариант "SCSI printer", то это означает, что CUPS не смог распознать ваш принтер.}}<br />
<br />
==== Администрирование CUPS ====<br />
<br />
При администрировании принтера через веб-интерфейс (например для: добавления или удаления принтеров, остановки заданий печати, и т.д) понадобятся имя пользователя и пароль. Пользователем по-умолчанию может быть пользователь из группы ''sys'' или root (для изменения измените значение в строке ''SystemGroup'' файла {{ic|/etc/cups/cupsd.conf}}). <br />
<br />
При заблокированной учетной записи root (т.е. используя sudo) будет невозможно войти в веб-интерфейс управления CUPS с именем пользователя по умолчанию и его паролем. В этом случае придерживайтесь [http://www.cups.org/articles.php?L237+T+Qprintadmin инструкций] из CUPS FAQ. Дополнительно прочтите [http://bbs.archlinux.org/viewtopic.php?id=35567 это сообщение].<br />
<br />
====Удаленный доступ к веб-интерфейсу====<br />
По умолчанию, доступ к веб-интерфейсу CUPS разрешен только ''localhost''; т.е. компьютеру на котором он установлен. Для разрешения удаленного доступа нужно внести следующие изменения в файл {{ic|/etc/cups/cupsd.conf}}. Замените строку:<br />
Listen localhost:631<br />
на строку<br />
Port 631<br />
для того, чтобы CUPS мог слушать входящие запросы.<br />
<br />
Можно предоставить три уровня доступа:<br />
<Location /> #доступ к серверу<br />
<Location /admin> #доступ к странице администрирования<br />
<Location /admin/conf> #доступ к конфигурационным файлам<br />
<br />
Для разрешения удаленного доступа к одному из уровней, добавьте параметр {{ic|Allow}} в секцию соответствующую выбранному уровню. Параметр {{ic|Allow}} может принимать одно или несколько из перечисленных ниже значений:<br />
Allow all<br />
Allow host.domain.com<br />
Allow *.domain.com<br />
Allow ip-address<br />
Allow ip-address/netmask<br />
<br />
Параметр также может быть использован для запрета. Например, если нужно дать полный доступ всем хостам подсети 192.168.1.0/255.255.255.0, файл {{ic|/etc/cups/cupsd.conf}} должен содержать следующее:<br />
# Ограничение доступа к серверу...<br />
# По умолчанию возможны только локальные подключения<br />
<Location /><br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
# Ограничение доступа к странице администрирования...<br />
<Location /admin><br />
# Encryption disabled by default<br />
#Encryption Required<br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
# Ограничение доступа к конфигурационным файлам...<br />
<Location /admin/conf><br />
AuthType Basic<br />
Require user @SYSTEM<br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
Также вам потребуется добавить:<br />
<br />
DefaultEncryption Never<br />
<br />
Для того, чтоб избежать получения ошибки: 426 - Upgrade Required when using the CUPS web interface from a remote machine.<br />
<br />
= Устранение проблем =<br />
<br />
Наилучший способ борьбы с неисправностями - это выставить 'LogLevel' в файле {{ic|/etc/cups/cupsd.conf}} в:<br />
LogLevel debug<br />
<br />
А потом посмотреть вывод из файла {{ic|/var/log/cups/error_log}} например так:<br />
# tail -n 100 -f /var/log/cups/error_log<br />
<br />
Символы слева от вывода означают следующее:<br />
*D=Debug (отладка)<br />
*E=Error (ошибка)<br />
*I=Information (информация)<br />
*И так далее<br />
<br />
Следующие файлы также могут быть полезны:<br />
*{{ic|/var/log/cups/page_log}} - каждый раз при успешной печати, пишет новую запись<br />
*{{ic|/var/log/cups/access_log}} - записывает всю активность на cupsd http1.1 сервере<br />
<br />
Также, если вы хотите решить свои проблемы, важно понимать, как вообще работает CUPS. Вот краткая информация об этом:<br />
# Когда вы жмёте 'печать' приложение отправляет .ps-файл (PostScript, язык-скрипт, который описывает, как выглядит страница) в систему CUPS (так происходит в большинстве программ).<br />
# CUPS смотрит на PPD-файл (файл описания принтера) и находит, фильтры которые ему нужно использовать для преобразования .ps-файла в файл, который понимает ваш принтер (например, PJL,PCL). Обычно для этого ему требуется ghostscript.<br />
# GhostScript принимает ввод и решает, какие фильтры ему использовать, потом применяет их и преобразовывает .ps-файл в формат, который понимает принтер.<br />
# Затем файл передается бэкенду. Например, если у вас принтер подключен к usb порту, то используется usb бэкенд<br />
<br />
===Проблемы в результате обновления===<br />
''Проблемы возникшие после обновления CUPS и сопутствующего ему набора программ''<br />
<br />
====CUPS останавливается====<br />
Существует вероятность, что для правильной работы в обновленной версии понадобится новый файл конфигурации. Например, получение сообщения "404 - page not found" при попытке входа в панель управления CUPS через localhost:631.<br />
<br />
Для того, чтобы воспользоваться новым конфигом, скопируйте {{ic|/etc/cups/cupsd.conf.default}} в {{ic|/etc/cups/cupsd.conf}} (при необходимости сделайте резервную копию старого конфига):<br />
# cp /etc/cups/cupsd.conf.default /etc/cups/cupsd.conf<br />
и, чтобы новые настройки вступили в силу, перезапустите CUPS.<br />
<br />
====Для всех заданий - "остановлено" ("stopped")====<br />
Если для всех отправленных на печать заданий установился статус "остановлено" ("stopped"), - удалите принтер и установите его заново.<br />
Для этого войдите в [http://localhost:631 веб-интерфейс CUPS], перейдите Принтеры > Удалить Принтер.<br />
<br />
Для проверки настроек принтера перейдите во вкладку ''Принтеры'', затем ''Администрирование''. В выпадающем списке кликните 'Изменить принтер', перейдите к следующей странице (ам), и так далее.<br />
<br />
====Для всех заданий - "Принтер не отвечает" ("The printer is not responding")====<br />
Для сетевых принтеров, поскольку CUPS подключается через URI, необходимо убедиться, что в DNS настроен доступ к принтерам по IP. Например, если принтер подключен следующим образом:<br />
lpd://BRN_020554/BINARY_P1<br />
то имени хоста 'BRN_020554' должны соответствовать IP принтеров, управляемых сервером CUPS.<br />
<br />
====Версия PPD не совместима с gutenprint====<br />
Запустите:<br />
# /usr/sbin/cups-genppdupdate<br />
<br />
И перезагрузите CUPS (будет выведено соответствующее сообщение после установки gutenprint).<br />
<br />
===USB-принтеры под CUPS 1.4.x===<br />
Новый CUPS 1.4.x принес множество изменений:<br />
<br />
====Занесение в черный список usblp====<br />
Теперь CUPS, вместо генерирования устройств /dev/usb/lpX с помощью usblp, использует устройства libusb и USB-принтеры (из /dev/bus/usb/). Для того, чтобы заработали USB-принтеры - необходимо выключить модуль usblp.<br />
Выключить можно либо добавив в {{ic|/etc/modprobe.d/modprobe.conf}}:<br />
<br />
{{hc|/etc/modprobe.d/modprobe.conf|blacklist usblp}}<br />
<br />
либо создав в {{ic|/etc/modprobe.d/}} свой файл, например {{ic|usblp_blacklist.conf}}, со следующим содержимым:<br />
<br />
{{hc|/etc/modprobe.d/usblp_blacklist.conf|blacklist usblp}}<br />
<br />
Некоторым пользователям, возможно, прийдется переустановить принтер.<br />
<br />
====Определение устройства====<br />
В дополнение к отключению загрузки usblp, CUPS могут понадобится права на файл устройства USB-принтера - root:lp, и должны быть 660. Например.<br />
$ ls -l /dev/bus/usb/003/002<br />
crw-rw---- 1 root lp 189, 257 20. Okt 10:32 /dev/bus/usb/003/002<br />
<br />
Этого можно добиться добавлением двумя правилами udev в {{ic|/lib/udev/rules.d/50-udev-default.rules}}:<br />
# hplip and cups 1.4+ use raw USB devices, so permissions should be similar to<br />
# the ones from the old usblp kernel module<br />
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="", IMPORT{program}="usb_id --export %p"<br />
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}==":0701*:", GROUP="lp", MODE="660"<br />
<br />
Тем не менее, для некоторых устройств, например, многофункциональных устройств принтер/сканер, эти правила либо не используются, либо перекрываются правилами пакета 'sane'. В этом случае нужно будет добавлять пользовательские правила udev. Смотри далее.<br />
<br />
=====Устранение неполадок при определении устройств=====<br />
Узнаем файл устройства принтера и права доступа к нему: <br />
$ lsusb<br />
...<br />
Bus 003 Device 002: ID 04b8:0841 Seiko Epson Corp.<br />
$ ls -l /dev/bus/usb/003/002<br />
crw-rw---- 1 root lp 189, 257 20. Okt 10:32 /dev/bus/usb/003/002<br />
<br />
Если права доступа не root:lp 660, придется создать пользовательское правило [[udev]] для этого устройства, пример<br />
{{hc|cat /etc/udev/rules.d/10-usbprinter.rules|<nowiki>ATTR{idVendor}=="04b8", ATTR{idProduct}=="0841", MODE:="0660", GROUP:="lp"</nowiki>}}<br />
<br />
Для многофункциональных устройств (принтер+сканер), для того, чтоб [[sane]] определил его корректно:<br />
{{hc|cat /etc/udev/rules.d/10-usbprinter.rules|<nowiki>ATTR{idVendor}=="04b8", ATTR{idProduct}=="0841", MODE:="0660", GROUP:="lp", ENV{libsane_matched}:="yes"</nowiki>}}<br />
<br />
Обратите внимание:<br />
* {{ic|idVendor}} и {{ic|idProduct}} взяты из вывода команды {{ic|lsusb}} показанного выше.<br />
* некоторым принтерам понадобятся права доступа {{ic|666}}.<br />
<br />
=====Загрузка прошивки (firmware)=====<br />
<br />
Для некоторых принтеров и драйверов понадобится загрузка прошивки принтера (таким как, использующие foo2zjs, принтеры HP LaserJet 10xx) и сделать это будет нужно путем записи прямо на устройство lp, такие функциональные возможности предоставляет usblp. Для обхода этого ограничения нужно будет загрузить модуль usblp при загрузке прошивки, а затем, для нормальной работы CUPS, удалить модуль. Для ручной загрузки модуля выполните<br />
$ modprobe usblp<br />
загрузка прошивки, затем:<br />
$ rmmod usblp<br />
Также можно обойтись без добавления usblp в черный список, добавьте "rmmod usblp" в {{ic|/etc/rc.local}}, при этом прошивка будет загружена при старте системы, а затем, при чтении {{ic|rc.local}}, модуль usblp будет выгружен.<br />
<br />
В случае если принтер окажется подключенным или на нем будет включено питание уже на работающей системе - файл {{ic|/etc/rc.local}} не будет использован и модуль usblp останется подгруженным. Обойти это можно изменив {{ic|/etc/udev/rules.d/11-hpj10xx.rules}}, созданный для foo2zjs, таким образом чтоб при добавлении устройства выполнялось нужное событие, например: 15 секунд для загрузки прошивки и автоматического удаления usblp. Следующий пример для HP LaserJet 1018. Для других моделей значения ATTRS{idProduct} должны быть изменены, соответственно модели принтера.<br />
<br />
Найдите в {{ic|/etc/udev/rules.d/11-hpj10xx.rules}} строку соответствующую вашему принтеру:<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/sbin/foo2zjs-loadfw 1018 $tempnode"<br />
Добавьте после нее следующие строки, при этом убедитесь, что соответствуют IDs продукта и производителя:<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/usr/bin/sleep 15"<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/usr/bin/rmmod usblp"<br />
<br />
===Остальное===<br />
<br />
=====Устранение ошибок CUPS=====<br />
*Пользователям, регулярно получающим ошибки вида 'NT_STATUS_ACCESS_DENIED' (Windows-клиенты), следует слегка изменить синтаксис:<br />
smb://workgroup/username:password@hostname/printer_name<br />
<br />
*Иногда, блочные устройства могут иметь не правильные права:<br />
# ls /dev/usb/<br />
lp0<br />
# chgrp lp /dev/usb/lp0<br />
<br />
====Принтер HPLIP выдает ошибку "/usr/lib/cups/backend/hp failed"====<br />
Убедитесь, что dbus установлен и запущен, для этого или проверьте секцию DAEMONS в {{ic|/etc/rc.conf}}, или выполните {{ic|ls /var/run/daemons}}.<br />
<br />
Если демон dbus запущен, но ошибка все равно повторяется - нужен avahi-daemon.<br />
<br />
{{Note|возможно понадобиться решить вопрос с правами. Более подробно можно прочесть здесь: [https://wiki.archlinux.org/index.php/CUPS_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29#.D0.9E.D0.BF.D1.80.D0.B5.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D1.83.D1.81.D1.82.D1.80.D0.BE.D0.B9.D1.81.D1.82.D0.B2.D0.B0 Определение устройства].}}<br />
<br />
====Настройка HPLIP выполнена, но принтер не работает====<br />
Данная проблема возникает при использовании драйвера hpijs (устарел) (напр. для серии Deskjet D1600). Вместо него, при добавлении принтера, выбирайте драйвер hpcups.<br />
<br />
====hp-toolbox выдает ошибку "Unable to communicate with device" ("Невозможно соединиться с устройством")====<br />
Если в результате запуска hp-toolbox от обычного пользователя получаете сообщение:<br />
# hp-toolbox<br />
# error: Unable to communicate with device (code=12): hp:/usb/<printer id><br />
или, "{{ic|Unable to communicate with device"}}", значит следует добавить пользователя в группу lp, для этого выполните следующую команду:<br />
# gpasswd -a <username> lp<br />
<br />
====CUPS с принтером HP возвращает '"foomatic-rip" not available/stopped with status 3' ('"foomatic-rip" не используется/остановлен со статусом 3')====<br />
Если, во время использования принтера HP, задания появляются в очереди, но все завершаются со статусом 'stopped', а в {{ic|/var/log/cups/error_log}} возникает одно из следующих сообщений об ошибках:<br />
Filter "foomatic-rip" for printer "<printer_name>" not available: No such file or director<br />
или:<br />
PID 5771 (/usr/lib/cups/filter/foomatic-rip) stopped with status 3!<br />
Убедитесь, что установлен '''hplip''', также может понадобится пакет '''net-snmp'''. Прочитайте [http://bbs.archlinux.org/viewtopic.php?id=65615 эти сообщения на форуме].<br />
# pacman -S hplip<br />
<br />
====Завершение печати из-за ошибок авторизации====<br />
Если пользователь уже добавлен в группу lp, и ему разрешена печать (настраивается в {{ic|cupsd.conf}}), то проблему следует искать в файле {{ic|/etc/cups/printers.conf}}. Проблема может заключаться в следующей строке:<br />
AuthInfoRequired negotiate<br />
<br />
Закомментируйте ее и перезапустите CUPS.<br />
<br />
====Неактивна кнопка Печать в диалогах приложений GNOME====<br />
:''<small>Источник: [http://bbs.archlinux.org/viewtopic.php?id=70418 I can't print from gnome applications. - Arch Forums]</small>''<br />
<br />
Убедитесь, что установлен пакет: '''libgnomeprint'''<br />
<br />
Отредактируйте {{ic|/etc/cups/cupsd.conf}} добавив в него<br />
# HostNameLookups Double<br />
<br />
Перезапустите CUPS:<br />
# /etc/rc.d/cupsd restart<br />
<br />
====Не найдена поддержка формата: application/postscript====<br />
Закомментируйте строки:<br />
application/octet-stream application/vnd.cups-raw 0 -<br />
в {{ic|/etc/cups/mime.convs}}, и:<br />
application/octet-stream<br />
в {{ic|/etc/cups/mime.types}}.<br />
<br />
====Определение URIs для Windows Print Servers====<br />
<br />
Иногда Windows предоставляет не полную информацию об URI (расположение устройств). Если в CUPS возникли проблемы с указанием местоположения устройств - необходимо выполнить команду получения списка всех ресурсов, которые доступны данному windows-пользователю:<br />
$ smbtree -U ''windowsusername''<br />
Если [[Samba]] работает и настроена правильно, то будут отображены все, доступные выбранному Windows-пользователю, ресурсы локальной сети. Команда должна отобразить что-то, типа этого:<br />
{{bc| WORKGROUP<br />
\\REGULATOR-PC <br />
\\REGULATOR-PC\Z <br />
\\REGULATOR-PC\Public <br />
\\REGULATOR-PC\print$ Printer Drivers<br />
\\REGULATOR-PC\G <br />
\\REGULATOR-PC\EPSON Stylus CX8400 Series EPSON Stylus CX8400 Series}}<br />
Нам понадобится первая часть последней строки -ресурс соответствующий описанию принтера. Таким образом, для получения возможности печатать на принтере EPSON Stylus, в качестве URI в CUPS следует ввести:<br />
smb://username.password@REGULATOR-PC/EPSON Stylus CX8400 Series<br />
Обратите внимание на то, что в URI допускаются пробелы, а знаки "\\" следует заменять на "//".<br />
<br />
====Ошибка задания для печати client-error-document-format-not-supported====<br />
Нужно установить пакет foomatic и использовать драйвер foomatic.<br />
<br />
====Не работает /usr/lib/cups/backend/hp====<br />
В {{ic|/etc/cups/cupsd.conf}} замените:<br />
<br />
SystemGroup sys root<br />
на<br />
SystemGroup lp root<br />
<br />
====Принтер Samsung не печатает некоторые документы====<br />
<br />
Бывает, что принтер Samsung прекрасно работает с {{ic|cups}}, но не печатает некоторые документы (файлы Inkscape с текстом) и даже сбоит. В качестве решения можно посоветовать использовать пакет {{AUR|cups-usblp}} с добавлением модуля {{ic|usblp}} в черный список (как было описано ранее).<br />
<br />
====Не отображается локальный USB-принтер====<br />
<br />
Если ваш usb-принтер не отображается - попробуйте заменить {{pkg|cups}} на {{AUR|cups-usblp}} (пакет можно найти в [[AUR]]). Затем проверьте работоспособность сначала с загруженным модулем {{ic|usblp}}, а затем, если не поможет, - с добавленным в черный список.<br />
<br />
===="Не удается получить список драйверов для принтеров"====<br />
Попробуйте удалить драйверы Foomatic.<br />
<br />
=Приложение=<br />
<br />
===Альтернативные интерфейсы CUPS===<br />
<br />
В среде [[GNOME]], вы можете конфингурировать ваш принтер с помощью system-config-printer-gnome. С помощью pacman можно установить этот пакет:<br />
# pacman -S system-config-printer-gnome<br />
<br />
Для нормальной работы system-config-printer понадобиться или запуск с правами администратора, или, если от обычного пользователя, то такому пользователю должно быть разрешено администрировать CUPS (если это так - '''выполните шаги 1-3''')<br />
<br />
* 1. Создайте группу и внесите в нее нужного пользователя:<br />
# groupadd lpadmin<br />
# usermod -aG lpadmin <username><br />
<br />
* 2. Добавьте "lpadmin" (без кавычек) в следующую строку файла {{ic|/etc/cups/cupsd.conf}}<br />
SystemGroup sys root <insert here><br />
<br />
* 3. Перезапустите cups, выйдите и снова войдите в систему (или перезагрузите компьютер)<br />
{{bc|# rc.d restart cupsd}}<br />
<br />
Пользователи [[KDE]] могут изменять настройки из "Control Center" (kcontrol). Для получения дополнительной информации, обратитесь к документации вашего рабочего окружения (DE).<br />
<br />
Также в [[AUR]] можно найти пакет [https://aur.archlinux.org/packages.php?ID=43505 gtklp]<br />
<br />
===Виртуальный PDF-принтер===<br />
<br />
Существует прекрасный пакет - CUPS-PDF. Этот пакет позволяет настроить виртуальный принтер, генерирующий PDF-файлы из того, что отправлено на печать на этот принтер. Возможно этот пакет вам и не понадобиться, но иногда он может быть очень полезен.<br />
<br />
Созданные PDF-документы можно найти в {{ic|var/spool/cups-pdf}}. Обычно, более удобно такие документы добавлять в домашнюю директорию пользователя. Настроить такое поведение не сложно. В файле /etc/cups/cups-pdf.conf найдите и строку:<br />
#Out /var/spool/cups-pdf/${USER}<br />
<br />
и приведите ее к такому виду:<br />
<br />
Out /home/${USER}<br />
<br />
<br />
Установить этот пакет можно командой:<br />
# pacman -S cups-pdf<br />
<br />
После установки пакета, настройте PDF-принтер аналогично обычному принтеру, например с помощью веб-интерфейса. В Device (Оборудование) выберите - '''CUPS-PDF (Virtual PDF Printer)'''; Make/Manufacturer (Марка/Производитель) выберите - '''Generic'''; Model/Driver (Модель/Драйвер) выберите - '''Generic postscript color printer''' или '''Generic Cups-PDF Printer'''. В качестве альтернативы, [http://www.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/cups-pdf-CURRENT/extra/CUPS-PDF.ppd по этой ссылке] можно найти другой PPD-файл.<br />
<br />
==== Печать в postscript: тонкости использования виртуального CUPS-PDF-принтера ====<br />
<br />
Для большинства приложений, таких как OpenOffice, печать в PDF не является проблемой; достаточно просто нажать кнопку. Для печати в postscript, потребуется выполнить небольшой дополнительный объем работ. CUPS-PDF (Виртуальный PDF-принтер) на самом деле создает postscript-файл, а затем уже с помощью утилиты ps2pdf, преобразовывает его в PDF. Для печати в postscript, необходимо сначала передать созданные CUPS-PDF postscript-файлы. Для этого в диалоге печати нужно выбрать вариант "print to file" ("печатать в файл"). (выберите расширение для файла или .ps, или .eps). После того, как будет отмечен флажок "print to file" ("печатать в файл"), введите имя файла и нажмите "print" ("печать").<br />
<br />
=====Настройка виртуального CUPS-PDF-принтера=====<br />
#Прочтите инструкция по настройке демона cups.<br />
#Установите {{Pkg|cups-pdf}} из [extra].<br />
#Запустите менеджер печати cups: http://localhost:631 и выберите:<br />
Administration -> Add Printer<br />
Select CUPS-PDF (Virtual PDF), выберите марку и модель:<br />
Make: Generic<br />
Driver: Generic CUPS-PDF Printer<br />
<br />
Теперь, для печати в postscript, в диалоговом окне печати установите "CUPS-PDF" в качестве принтера, установите флажок на "print to file" ("печатать в файл"), нажмите печать, введите имя_файла.ps и кликните сохранить. Метод удобен при обработке факсов и т.д...<br />
<br />
===Другие источники драйверов для принтеров===<br />
<br />
[http://www.turboprint.de/english.html Turboprint] - проприетарный драйвер для многих моделей принтеров, которые до сих пор не поддерживаются в GNU/Linux (например Canon i*). Единственная проблема в том, что высококачественная печать будет либо с водяным знаком, либо за отдельную плату...<br />
<br />
=Дополнение=<br />
<br />
Список вебсайтов, которые могут быть вам полезны:<br />
<br />
* <b>Official CUPS documentation on your computer</b> http://localhost:631/documentation.html<br />
* <b>Official CUPS Website</b> - http://www.cups.org/<br />
* <b>Linux Printing</b> - http://www.linuxprinting.org/<br />
* <b>Tips and Suggestions on common CUPS problems</b> - http://home.nyc.rr.com/computertaijutsu/cups.html<br />
* <b>Gentoo's Printing Guide</b> - http://www.gentoo.org/doc/en/printing-howto.xml<br />
* <b>Arch Linux User Forums</b> - http://bbs.archlinux.org/<br />
<br />
==Особые случаи==<br />
<br />
Дальнейшее описание посвящено специфическим проблемам и их решениям. Если вы сталкивались с какой-либо ''необычной'' работой принтера, пожалуйста, поместите решение проблемы здесь.<br />
<br />
=== Принтеры с параллельным портом HP (hplip) ===<br />
{{Note|Действия проводились для настройки HP LaserJet 6L}}<br />
Если HP принтер подключен через параллельный порт, то потребуется пересобрать пакет '''hplip''' с опцией '''--enable-pp-build'''.<br />
Для этого устанавливаем и обновляем ABS:<br />
<pre><br />
# pacman -S abs<br />
# abs<br />
</pre><br />
Копируем необходимые файлы для сборки<br />
<pre><br />
# cp -r /var/abs/extra/hplip /tmp<br />
</pre><br />
Правим файл {{ic|/tmp/hplip/PKGBUILD}} и добавляем опцию '''--enable-pp-build''' для '''./configure''':<br />
<pre><br />
[...]<br />
./configure --prefix=/usr \<br />
--enable-qt4 \<br />
--enable-pp-build \<br />
--enable-foomatic-rip-hplip-install \<br />
--enable-foomatic-ppd-install \<br />
--enable-hpcups-install \<br />
--enable-cups-drv-install \<br />
--enable-hpijs-install \<br />
--enable-foomatic-drv-install \<br />
--enable-udev-acl-rules<br />
[...]<br />
</pre><br />
Собираем и ставим пакет:<br />
<pre><br />
cd /tmp/hplip<br />
makepkg -s<br />
pacman -U hplip-3.10.6-1-i686.pkg.tar.xz<br />
</pre><br />
Далее принтер настраивается обычным путем через web-интерфейс '''CUPS''' [http://localhost:631 http://localhost:631].<br />
<br />
Если принтер правильно настроен для работы с '''hplip''', то строка подключения в '''CUPS''' будет начинаться с '''hp:'''<br />
<pre><br />
hp:/par/HP_LaserJet_6L?device=/dev/parport0<br />
</pre><br />
<br />
{{Note|Действия проводились для настройки HP LaserJet 5L, x86_64}}<br />
Устанавливаем hplip (пересобирать пакет не надо, он уже собран с --enable-pp-build)<br />
<pre><br />
# pacman -S hplip<br />
</pre><br />
Далее запускаем<br />
<pre><br />
# hp-setup -i -a -x /dev/parport0<br />
</pre><br />
для автоматического добавления принтера в CUPS, либо добавляем "ручками" через веб-интерфейс [http://localhost:631 http://localhost:631].<br />
<br />
===Печать не работает/прерывается на принтерах HP Deskjet 700===<br />
<br />
Проблема решается установкой фильтра pnm2ppa для принтеров HP Deskjet 700 series. Без этого задания на печать будут отменяться системой. [[Arch Build System (Русский)| PKGBUILD]] для pnm2ppa можно найти здесь: [https://aur.archlinux.org/index.php?setlang=ru AUR].<br />
<br />
===Заставить работать HP LaserJet 1010===<br />
Мне для этого пришлось самому собрать ghostscript, потому что gs ESP в репозитории был версии 7.07 и имел некоторые ошибки, исправленные в ESP 8.15.1. Я никогда не пользовался пакетом 'foomatic' из репозитория. Я думаю что этот пакет устарел.<br />
<pre><br />
$ pacman -Qs cups a2ps psutils foo ghost<br />
local/cups 1.1.23-3<br />
The CUPS Printing System<br />
local/a2ps 4.13b-3<br />
a2ps is an Any to PostScript filter<br />
local/psutils p17-3<br />
A set of postscript utilities.<br />
local/foomatic-db 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-db-engine 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-db-ppd 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-filters 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/espgs 8.15.1-1<br />
ESP Ghostscript<br />
</pre><br />
Также я был вынужден выставить LogLevel в /etc/cups/cupsd.conf в debug2 для того чтобы обнаружить отсутствие некоторых шрифтов "Nimbus". Затем я переименовал их и положил туда, куда мне подсказывал лог. Тут нужно привести хитрый способ поиска в google, [http://www.google.com/search?q=n019003l+filetype%3Apfb например] т.к. шрифты являются проприетарными (уверен что в windows это по умолчанию). В любом случае, после скачивания шрифтов (около 7) и помещения их в правильную директорию печать заработала.<br />
<br />
До этого я получал ошибки описанные [http://linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1010 здесь]: 'Unsupport PCL' и т.п...<br />
<br />
Уверен что это работало бы и с gs ESP 7.07 (в репозитории) если бы у меня раньше хватило ума включить DebugLevel2 :-/<br />
<br />
''Обновление:'' да, это работает... может быть эта информация окажется полезной для кого-либо ещё... извините за неудобства.<br />
<br />
===Заставить работать HP LaserJet 1020 (1018 и похожие)===<br />
После множества попыток связанных с hplib и gutenprint я наконец нашёл решение как заставить мой HP Laserjet 1020 печатать. <br />
<br />
Первым делом вам надо уставить cups и ghostscript. Затем пройдите по ссылке <br />
http://www.linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1020 на страницу драйверов печати http://foo2zjs.rkkda.com/ и следуйте интрукциям по установке. Залогиньтесь как root. После скачивания и распаковки архива переместитесь в распакованную директорию foo2zjs. Теперь вы можете делать всё по оригинальной инструкции по установке, лишь с небольшой модификацией для изменения userid пользователя для печати:<br />
<pre><br />
$ make<br />
$ ./getweb 1020<br />
</pre><br />
Откройте ''Makefile''<br />
<pre>$ nano Makefile</pre><br />
найдите там строку<br />
<pre># LPuid=-olp</pre><br />
и модифицируйте её таки образом:<br />
<pre># LPuid=-oroot</pre><br />
дальше выполняйте сборку<br />
<pre><br />
$ make install<br />
$ make install-hotplug<br />
$ make cups<br />
</pre><br />
Сейчас в этих действиях нет необходимости. Теперь строка '''LPuid=-oroot''' стоит по умолчанию.<br />
<br />
Вы также можете взять пакет foo2zjs из [https://aur.archlinux.org/index.php?setlang=ru AUR] и модифицировать [[Arch Build System (Русский)| PKGBUILD]]: измените строку<br />
<pre>./getweb all</pre><br />
на<br />
<pre>./getweb 1020</pre><br />
(или, если устанавливаете другой принтер, измените эту строку на что, что вам нужно).<br />
<br />
Последним шагом является добавление и конфигурирование принтера в CUPS manager. Принтер должен определиться автоматически. Это отлично работает для root'а и всех ползователей. Когда ОС загружается, принтер инициализируется и сигнализирует о том, что он работает.<br />
Так же строку<br />
<pre>./getweb 1020</pre><br />
можно изменять на необходимые 1018 (для работы принтера Hewlett-Packard 1018) и т.д.<br />
<pre>./getweb 1018</pre><br />
Список поддерживаемы моделей тут: http://foo2zjs.rkkda.com/<br />
<br />
====HPLIP====<br />
<br />
Больше нет необходимости устанавливать драйвер foo2zjs для работы принтера HP LJ 1018/1020, поскольку в последних версиях hplip он работает "из коробки". Вам следует установить hplip, gnomesu или gksu, qt и pyqt4, после чего запустить <br />
<pre>sudo hp-setup</pre><br />
CUPS-сервер должен быть запущен. Мастер установки hplip автоматически установит ваш принтер. После следует установить плагин к принтеру. Для этого запустить от пользователя программу hp-toolbox и выберите "install required plugin". Плагин автоматически загрузится с сайта производителя.<br />
Никаких дополнительных действий (вроде внесения usblp и MODULES_BLACKLIST) выполнять не надо.<br />
<br />
===Выполнение сервисных операций на принтерах Epson===<br />
====Escputil====<br />
<br />
Здесь объясняется как выполнить некоторые вспомогательные операции, такие как очистка и проверка сопел на принтерах Epson. Для этого мы будем использовать утилиту escputil, которая входит в состав пакета gutenprint.<br />
<br />
Man-страница этой утилиты ("man escputil") содержит очень полезную информацию, но не включает в себя необходимых сведений о том как идентифицировать ваш принтер. Для этого могут быть использованы два параметра. Первый из них --printer; он принимает имя принтера, которое вы использовали при его конфигурировании. Другой &mdash --raw-device. Эта опция примаетпуть к устройству. Если ваш принтер подключен к последовательному порту, то устройство будет выглядеть примерно как "/dev/lp0". Если же ваш принтер подключен к USB, по устройство будет "/dev/usb/lp0". Если у вас более одного принтера они будут иметь имена файлов устройств "lp1", "lp2" и т.д.<br />
<br />
* очистка печатающей головки:<br />
<pre>escputil -u --clean-head</pre><br />
<br />
* проверка сопел:<br />
<pre>escputil -u --nozzle-check</pre><br />
<br />
Если вам необходимо произвести операцию, которая требует двухстороннего общения с принтером вы должны использовать спецификацию "--raw-device", а ваш пользователь должен состоять в группе "lp" или быть root'ом.<br />
<br />
* получение внутреннего имени принтера:<br />
<br />
sudo escputil --raw-device=/dev/usb/lp0 --identify<br />
<br />
* получение уровня чернил:<br />
<br />
sudo escputil --raw-device=/dev/usb/lp0 --ink-level<br />
<br />
====Mtink====<br />
<br />
Это монитор состояния принтера, который позволяет получить количество оставшихся чернил, печатать тестовые страницы, сбрасывать принтер и очищать сопла. Он использует интуитивный графический интерфейс пользователя. Пакет можно скачать [https://aur.archlinux.org/packages.php?ID=476 отсюда].<br />
<br />
= См. также =<br />
* [http://localhost:631/documentation.html Официальная документация CUPS documentation], ''локальная установка''<br />
* [http://www.cups.org/ Официальный Веб-сайт CUPS]<br />
* [http://www.linuxprinting.org/ Linux Printing], ''[http://www.linuxfoundation.org Linux Foundation]''<br />
* [http://www.gentoo.org/doc/en/printing-howto.xml Руководство по печати в Gentoo], ''[http://www.gentoo.org/doc/en Источники Документации Gentoo]''<br />
* [http://bbs.archlinux.org/ Форум пользователей Arch Linux]<br />
<br />
* [http://wiki.gotux.net/config/hp-printer Простая установка принтеров HP]</div>
Vadik
https://wiki.archlinux.org/index.php?title=Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=201476
Pacman (Русский)
2012-05-14T17:56:40Z
<p>Vadik: </p>
<hr />
<div>[[Category:Управление пакетами (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|pacman}} {{Lowercase title}}<br />
<br />
{{Article summary start|Описание}}<br />
{{Article summary text|pacman - [[Wikipedia:Package management system|пакетный менеджер]] Arch Linux. Менеджеры пакетов используются для установки, обновления и удаления программного обеспечения. В данной статье рассматриваются основные приемы и советы по устранению неполадок.}}<br />
{{Article summary heading|Обзор}}<br />
{{Article summary text|{{Package management overview}}}}<br />
{{Article summary heading|Дополнительно}}<br />
{{Article summary wiki|Downgrading Packages (Русский)}}<br />
{{Article summary wiki|Improve Pacman Performance (Русский)}}<br />
{{Article summary wiki|pacman GUI Frontends (Русский)}}<br />
{{Article summary wiki|pacman Rosetta}}<br />
{{Article summary wiki|pacman Tips}}<br />
{{Article summary wiki|Pacman package signing}}<br />
{{Article summary wiki|FAQ_(Русский)#Управление_пакетами}}<br />
{{Article summary wiki|pacman-key (Русский)}}<br />
{{Article summary wiki|Pacnew and Pacsave Files}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary link|libalpm(3) Manual Page|https://www.archlinux.org/pacman/libalpm.3.html}}<br />
{{Article summary link|pacman(8) Manual Page|https://www.archlinux.org/pacman/pacman.8.html}}<br />
{{Article summary link|pacman.conf(5) Manual Page|https://www.archlinux.org/pacman/pacman.conf.5.html}}<br />
{{Article summary link|repo-add(8) Manual Page|https://www.archlinux.org/pacman/repo-add.8.html}}<br />
{{Article summary end}}<br />
<br />
<br />
[[Wikipedia:Package management system|Менеджер пакетов]] '''[https://archlinux.org/pacman/ pacman]''' &mdash; является одной из основных особенностей Arch Linux. Он сочетает в себе простой формат бинарных пакетов и легкую в использовании систему сборки (смотрите [[Arch Build System]] и [[makepkg]]). '''Pacman''' позволяет пользователям с легкостью управлять и настраивать под себя пакеты, вне зависимости от того, из официального ли они репозитария Arch или собранные самостоятельно.<br />
<br />
'''Pacman''', синхронизируя пакеты с главным сервером, поддерживает систему в актуальном состоянии. Такая клиент-серверная модель, позволяет скачивать/устанавливать пакеты со всеми требуемыми зависимостями всего одной командой.<br />
<br />
'''Pacman''' написан на языке C и использует формат пакетов {{ic|.pkg.tar.xz}}.<br />
<br />
{{Tip|Официальный пакет {{Pkg|pacman}} включает в себя много дополнительных полезных инсрументов, таких как '''makepkg''', '''pactree''', '''vercmp''' и другие. Весь перечень можно получить с помощью {{ic|pacman -Ql pacman <nowiki>|</nowiki> grep bin}} }}<br />
<br />
== Конфигурация ==<br />
<br />
Основные настройки pacman находятся в {{ic|/etc/pacman.conf}}. В этом файле, пользователь может указать все нужные ему настройки программы. Подробнее о конфигурировании можно прочесть в [https://archlinux.org/pacman/pacman.conf.5.html man pacman.conf].<br />
<br />
=== Основные Параметры ===<br />
<br />
Основные параметры находятся в секции {{ic|[options]}}. Для получения дополнительной информации о параметрах - прочтите страницу man или изучите установленный по умолчанию файл {{ic|pacman.conf}}.<br />
<br />
==== Пропуск обновления пакетов ====<br />
<br />
Для пропуска обновления какого-либо пакета, добавьте его название в строку:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета</nowiki>}}<br />
<br />
В случае, если необходимо в строке {{ic|IgnorePkg}} перечислить несколько пакетов - разделяйте имена пакетов пробелами:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета1 имя_пакета2 имя_пакета3</nowiki>}}<br />
<br />
==== Пропуск обновления группы пакетов ====<br />
<br />
Как и в случае с пакетом, вы также можете запретить обновления группы пакетов, например так:<br />
<br />
{{bc|<nowiki>IgnoreGroup=имя_группы</nowiki>}}<br />
<br />
==== Игнорирование установки файлов в систему ====<br />
<br />
Для пропуска каталогов, в которые должны будут устанавливаться файлы, перечислите эти каталоги в {{Ic|NoExtract}}. Например, для игнорирования установки юнитов [[systemd]]:<br />
<br />
{{bc|<nowiki>NoExtract=usr/lib/systemd/system/*</nowiki>}}<br />
<br />
=== Репозитории ===<br />
<br />
В этом разделе файла {{ic|pacman.conf}} указываются репозитории, которые будут использоваться. Их можно указать прямо здесь или подключить из другого файла.<br />
<br />
Все официальные репозитории перечислены в одном файле - {{ic|/etc/pacman.d/mirrorlist}}, для доступа к ним используется переменная {{ic|$repo}}, таким образом достаточно поддерживать в актуальном состоянии только один список.<br />
<br />
Далее приведен пример использования [[mirrors|зеркал]] [[Official Repositories|официальных репозиториев]], которые перечислены в {{ic|/etc/pacman.d/mirrorlist}}.<br />
<br />
{{bc|<nowiki><br />
<br />
#[testing]<br />
#SigLevel = PackageRequired <br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
#SigLevel = PackageRequired<br />
Include=/etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#[community-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#Если в вашей x86_64 системе необходимо запускать 32-битные программы,<br />
#раскоментируйте нужные multilib репозитории.<br />
<br />
#[multilib-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[multilib]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# Использование собственного репозитория. Обратитесь к справочной странице pacman для<br />
# получения дополнительной информации по созданию собственных репозиториев.<br />
<br />
#[custom]<br />
#SigLevel = Optional TrustAll<br />
#Server = file:///home/custompkgs<br />
</nowiki>}}<br />
<br />
{{Note|Будьте осторожны при использовании репозитория [testing]. Пакеты в нём активно разрабатываются и обновляются, это может сказаться на стабильности и работоспособности других пакетов или системы в целом. Людям, использующим репозиторий [testing], для своевременного получения информации рекомендуется подписаться на [https://mailman.archlinux.org/mailman/listinfo/arch-dev-public список рассылки arch-dev-public].}}<br />
<br />
=== Безопасность пакетов ===<br />
<br />
В Pacman 4 реализован дополнительный уровень безопасности устанавливаемых пакетов - подписи пакетов. Для включения проверки подписей перейдите [[pacman-key|сюда]].<br />
<br />
== Использование ==<br />
<br />
Чтобы узнать обо всех возможностях pacman - изучите [https://archlinux.org/pacman/pacman.8.html man pacman]. Примеры ниже - это только небольшая подборка доступных операций.<br />
<br />
===Установка Пакетов===<br />
<br />
====Установка определенных пакетов====<br />
Для установки одного пакета или группы пакетов (включая зависимости), используйте следующую команду:<br />
<br />
# pacman -S имя_пакета1 имя_пакета2 ...<br />
<br />
Если пакет имеет несколько версий в разных репозиториях (например в [extra] и [testing]). Можно указать, откуда именно следует установить пакет:<br />
<br />
# pacman -S extra/имя_пакета<br />
<br />
====Установка группы пакетов====<br />
Некоторые пакеты принадлежат к группе пакетов, которые могут быть установлены одновременно. Например, при выполнении команды:<br />
<br />
# pacman -S gnome<br />
будут установлены все пакеты входящие в группу {{ic|gnome}}. Чтобы увидеть список пакетов принадлежащих к группе gnome, выполните:<br />
<br />
# pacman -Sg gnome<br />
<br />
Перечень доступных групп пакетов можно изучить посетив https://www.archlinux.org/groups/.<br />
<br />
{{Note|Если не будет использована опция {{ic|--needed}}, то при установке группы будут переустановлены все ранее установленные в систему и принадлежащие этой группе пакеты (даже если установленные в системе пакеты будут иметь последнюю доступную версию).}}<br />
<br />
{{Warning|1=При установке не достаточно одного обновления списка пакетов (например {{ic|pacman -Sy имя_пакета}}) - могут возникнуть проблемы с зависимостями, смотрите разделы [https://bbs.archlinux.org/viewtopic.php?id=89328] и [[#Частичные обновления официально не поддерживаются|Частичные обновления не поддерживаются]]. В первую очередь, перед установкой новых пакетов, выполняйте полное [[#Обновление Системы|обновление системы]].}}<br />
<br />
=== Удаление Пакетов ===<br />
<br />
Для удаления пакета, без удаления установленных зависимостей:<br />
<br />
# pacman -R имя_пакета<br />
<br />
Для удаления пакета со всеми зависимостями, не используемыми другими установленными пакетами:<br />
<br />
# pacman -Rs имя_пакета<br />
<br />
Для удаления пакета, его зависимостей, и всех пакетов зависящих от целевого пакета:<br />
<br />
{{Warning|Эта операция рекурсивна и должна использоваться с осторожностью, так как появляется риск удалить много потенциально необходимых пакетов.}}<br />
<br />
# pacman -Rsc имя_пакета<br />
<br />
По умолчанию pacman создает резервные копии конфигурационных файлов удаляемых приложений с помощью добавления к ним расширения: {{ic|.pacsave}}. Если вы хотите удалить и эти файлы - используйте ключ {{ic|-n}}:<br />
<br />
# pacman -Rn имя_пакета<br />
<br />
{{Note|pacman не удаляет конфигурационных файлов, созданных самими приложениями (например "dot-файлы" в вашей домашней папке).}}<br />
<br />
===Обновление Системы===<br />
<br />
pacman может обновить все пакеты системы одной командой. Количество пакетов зависит от того, насколько свежие пакеты стоят в вашей системе. Лучший вариант - синхронизация базы данных репозиториев '''И''' обновление вашей системы одной командой (не будут обновлены пакеты из 'локальных' и не настроенных репозиториев):<br />
<br />
# pacman -Syu<br />
<br />
{{Warning|В связи с тем, что Arch является постоянно-обновляемым дистрибутивом, пользователям следует помнить, что после или в процессе обновления могут возникнуть непредвиденные трудности. Поэтому обновляться следует с осторожностью. Это означает, что если, например, ожидаются большие изменения или нововведения в обновляемых пакетах, то обновлять систему лучше тогда, когда у пользователя будет достаточно свободного времени и он будет готов к решению возможных проблем.}}<br />
<br />
pacman является мощным инструментом по управлению пакетами, но он не сможет обработать все возможные ситуации. Если вас это смущает - прочтите [[The Arch Way|Путь Arch Linux]]. Пользователь должен быть внимателен и сам заниматься обеспечением работоспособности своей системы. '''При выполнении обновления системы, крайне важно, читать и осмысливать всю информацию которую выводит pacman.''' Если вы изменяли конфигурационный файл, то при обновлении, во избежание перезаписи, будет создан новый конфигурационный файл {{ic|.pacnew}}. pacman предложит объединить его с вашим конфигурационным файлом. Выполнять объединение файлов придется вручную и, лучше всего, сразу после обновления. Для получения дополнительной информации обратитесь к руководству [[Pacnew and Pacsave Files]].<br />
<br />
{{Tip|Не забывайте, что вывод pacman заносится в {{ic|/var/log/pacman.log}}.}}<br />
<br />
Перед обновлением желательно посетить [https://www.archlinux.org/ главную страницу Arch Linux], [https://www.archlinux.org.ru/ главную страницу русскоязычного сообщества Arch Linux] и проверить там последние новости (или подписаться на канал RSS): для обновлений требующих дополнительного вмешательства (если выполнения указанных pacman-ом действий не достаточно) будут добавлены соответствующие новости.<br />
<br />
Если решить проблемы согласно инструкциям не удаётся - поищите подобные сообщения на форуме. Вполне возможно, что другие пользователи столкнувшиеся с подобными проблемами уже предоставили варианты по её решению.<br />
<br />
=== Запросы к Базе Данных Пакетов ===<br />
<br />
pacman, с помощью флага {{ic|-Q}}, может искать пакеты в локальной базе данных; см.:<br />
<br />
$ pacman -Q --help<br />
<br />
и, с помощью флага {{ic|-S}}, в базе данных (репозитариях); см.:<br />
<br />
$ pacman -S --help<br />
<br />
pacman умеет искать пакеты в базе данных, как по названиям, так и по описаниям:<br />
<br />
$ pacman -Ss условие1 условие2 ...<br />
<br />
Поиск пакета по имени в базе данных (вывод без дополнительной информации):<br />
<br />
$ pacman -Sqs условие1 условие2 ...<br />
<br />
Для поиска среди установленных пакетов:<br />
<br />
$ pacman -Qs условие1 условие2 ...<br />
<br />
Для отображения обширной информации о данном пакете:<br />
<br />
$ pacman -Si имя_пакета<br />
<br />
для установленных пакетов:<br />
<br />
$ pacman -Qi имя_пакета<br />
<br />
Использование сдвоенного флага {{ic|-i}} позволит просмотреть список резервных копий файлов и список измененных файлов:<br />
<br />
$ pacman -Qii имя_пакета<br />
<br />
Для получения списка файлов установленного пакета:<br />
<br />
$ pacman -Ql имя_пакета<br />
<br />
Для получения списка файлов неустановленного пакета можно использовать утилиту {{ic|pkgfile}}, из состава пакета [[pkgtools]], или {{ic|nosr}}, входящую в пакет {{aur|nosr-git}}, который расположен в [[AUR]].<br />
<br />
Чтобы узнать какому пакету принадлежит нужный файл:<br />
<br />
$ pacman -Qo /путь/к/файлу/имя_файла<br />
<br />
Для получения списка пакетов, которые больше не требуются как зависимости (пакеты, которые могут быть безопасно удалены или сироты):<br />
<br />
$ pacman -Qdt<br />
<br />
Для отображения зависимостей в виде дерева:<br />
<br />
$ pactree имя_пакета<br />
<br />
Для получения списка пакетов, которые зависят от вашего пакета - можно воспользоваться утилитой {{ic|whoneeds}} из состава пакета [[pkgtools]]:<br />
<br />
$ whoneeds имя_пакета<br />
<br />
=== Получение Списка Установленных Пакетов для Быстрого Восстановления Системы ===<br />
<br />
Хорошей практикой явлется сохранение списка всех установленых пакетов. Если ваша система "упала" и её сложно восстановить, pacman может легко переустановить эти пакеты.<br />
<br />
Сначала, сохраните в список пакетов (доступных в репозитории):<br />
<br />
pacman -Qqe | grep -v "$(pacman -Qmq)" > pkglist<br />
<br />
# безопасная, но и более сложная альтернатива (во избежание удаления частичных совпадений)<br />
comm -13 <(pacman -Qmq | sort) <(pacman -Qqe | sort) > pkglist<br />
<br />
Сохраните этот файл на флешке или на другом носителе.<br />
<br />
Скопируйте файл pkglist в новую систему, перейдите в эту папку.<br />
<br />
Для восстановления используйте команду:<br />
pacman -S $(cat pkglist)<br />
<br />
=== Получение Списка Файлов не Принадлежащих Любому Пакету ===<br />
<br />
Если вы всегда хотите держать свою систему в чистоте и уважаете [[Путь Arch]], вы должны иногда проверять файлы отсутствующие в базе данных pacman. Эти файлы, зачастую установлены сторонними приложениями с использованием '''./configure; make; make install''' и т.п. Вы можете найти все эти установленные файлы (или симлинки) используя этот простой скрипт:<br />
<br />
#!/bin/bash<br />
time /usr/bin/pacman -Ql | cut -d ' ' -f 2- | sort -u > db.txt<br />
time find /arch /bin /boot /etc /lib /opt /sbin /usr 2>/dev/null | while read i; do<br />
if [ ! -d "$i" ]; then<br />
echo "$i"<br />
fi;<br />
done | sort -u > fs.txt<br />
time comm -23 fs.txt db.txt > non-db.txt<br />
<br />
#для проверки:<br />
#cat non-db.txt | while read i; do pacman -Qo "$i" 2>&1; done | tee test.txt<br />
<br />
заметьте - все файлы указанные в non-db.txt НЕ БУДУТ удалены без подтверждения. Здесь могут находиться конфигурационные файлы, журналы и др. Используйте этот список только если знаете, что вы делаете.<br />
<br />
=== Дополнительные команды ===<br />
<br />
Обновление системы и установка списка пакетов (за одну операцию):<br />
<br />
# pacman -Syu имя_пакета1 имя_пакета2 ...<br />
<br />
Скачать пакет, но не устанавливать его:<br />
<br />
# pacman -Sw имя_пакета<br />
<br />
Установить локальный пакет (не из репозитория):<br />
<br />
# pacman -U /путь/к/пакету/имя_пакета-version.pkg.tar.xz<br />
<br />
Установить 'не локальный' пакет (не из репозитория):<br />
<br />
# pacman -U <nowiki>http://www.example.com/repo/example.pkg.tar.xz</nowiki><br />
<br />
Удалить из кэша ({{ic|/var/cache/pacman/pkg}}) неустановленные пакеты:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Поэтому, в случае возникновения проблем после обновлениий - появятся дополнительные трудности, связанные с откатом версий пакетов.}}<br />
<br />
# pacman -Sc<br />
<br />
Полная очистка кэша пакетов:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Выполняйте это только в том случае, если у вас всё нормально работает и вы уверены, что вам не понадобится [[Downgrade_packages| откатывать]] какой-либо пакет.}}<br />
<br />
# pacman -Scc<br />
<br />
В качестве альтернативы ключам {{ic|-Sc}} и {{ic|-Scc}} - можно использовать пакет {{AUR|Cacheclean}}, доступный в [[AUR]]. Это скрипт на python, который позволяет выборочно очищать кэш pacman'а от старых версий пакетов.<br />
<br />
===Частичные обновления официально не поддерживаются===<br />
Arch Linux постоянно обновляемый дистрибутив и это значит, что в репозиториях всегда находятся новые версии [[Wikipedia:Library (computing)|библиотек]]. Разработчики и доверенные пользователи собирают пакеты для репозиториев с использованием этих библиотек. Для пакетов установленных локально (например пакеты из [[Arch User Repository|AUR]]), нужно самостоятельно решать вопрос с зависимостями согласно данным [[Wikipedia:soname|soname]].<br />
<br />
Именно поэтому частичное обновление '''не поддерживается'''. Не используйте {{ic|pacman -Sy package}} или другие эквиваленты {{ic|pacman -Sy}} и {{ic|pacman -S package}}. Всегда перед установкой пакетов синхронизируйте репозитории и обновляйте систему полностью. По той же самой причине нужно быть осторожными при использовании {{ic|IgnorePkg}} и {{ic|IgnoreGroup}}.<br />
<br />
Если после частичного обновления оказалось, что бинарные файлы не могут найти нужных версий библиотек и проблему '''не возможно "решить" созданием символической ссылки''' (библиотеки не имеют '''обратной совместимости''') - выполните {{ic|pacman -Syu}}, как правило этого будет достаточно для устранения проблемы.<br />
<br />
== Устранение проблем ==<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init, но отсутствуют ssh / X или генераторы случайных чисел. Как мне получить энтропию?<br />
|answer=Для решения проблемы нужно перемещать указатель мыши, нажимать на клавиатуре случайные кнопки или запустить дисковую активность, например с помощью {{ic|updatedb}}. Будьте терпиливы, процесс может затянуться на длительное время. При этом переход в другую консоль, по Alt+F2-6, временно работать не будет.}}<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init через ssh. Как мне получить энтропию?<br />
|answer=На целевой машине соберите и установите пакет {{AUR|rng-tools}} из [[AUR]]. Подключитесь через ssh и выполните следующие команды:<br />
{{bc|# sed -i 's/0/10/' /etc/conf.d/rngd<br />
# rngd -f -r /dev/urandom &<br />
# pacman-key --init}}<br />
<br />
После успешного выполнения pacman-key просто остановите rngd и удалите пакет.<br />
<br />
{{bc|# killall rngd<br />
# pacman -Rns rng-tools}}<br />
}}<br />
<br />
{{FAQ<br />
|question=Pacman не находит PGP ключи для импорта и не обновляет пакеты. Как можно это исправить?<br />
|answer=На самом деле проблема не в pacman. Проблема в сервере ключей, используемом по умолчанию. Измените сервер ключей на более надежный таким способом:<br />
<br />
# sed -i '/keyserver/ s,keys.gnupg.net,pgp.mit.edu,' /etc/pacman.d/gnupg/gpg.conf<br />
Pacman4 теперь готов к использованию.}}<br />
<br />
{{FAQ<br />
|question=Обновление пакета XYZ сломало мою систему!<br />
|answer=Arch Linux - передовой, постоянно обновляемый дистрибутив. Обновления для пакетов становятся доступными тогда, когда их посчитают достаточно стабильными для повседневного использования. Тем не менее, обновления иногда требуют вмешательства пользователя: может потребоваться обновление конфигурационных файлов, могут измениться дополнительные зависимости, и т.д.<br />
<br />
Запомните основное правило - не обновляйте систему "вслепую". Всегда внимательно изучайте список обновляемых пакетов. Обращайте внимание на обновление "критически важных" компонентов ({{ic|linux}}, {{ic|xorg-server}}, и т.д.). Если такие пакеты есть - проверьте наличие новостей на https://www.archlinux.org/ и просмотрите последние сообщения на форуме, возможно кто-то уже столкнулся с проблемами при обновлении.<br />
<br />
Если известно/ожидается, что после обновления могут возникнуть проблемы - pacman выведет соответствующее сообщение. Если вы упустили какую-то информацию, которую вывел pacman, то её можно еще раз просмотреть в ({{ic|/var/log/pacman.log}}). <br />
<br />
Теперь, '''если не было никаких предупреждений от pacman, отсутствуют соответствующие новости на https://www.archlinux.org/ и нет сообщений относительно обновлений на форуме''', имеет смысл обратиться за помощью на форум, [[IRC Channel|IRC-канал]], или [[Downgrading Packages|откатить пакет к работающей версии]].<br />
<br />
Перечитайте последний абзац.}}<br />
<br />
{{FAQ<br />
|question=Я знаю что для пакета ABC доступны обновления, но pacman сообщает мне, что система в актуальном состоянии!<br />
|answer=Зеркала pacman синхронизируются не мгновенно. Иногда может пройти более 24 часов, прежде чем обновления станут доступны вам. <br />
<br />
В качестве решения можно посоветовать сменить зеркало. На [https://www.archlinux.org/mirrors/status/ MirrorStatus] можно посмотреть состояние зеркал.}}<br />
<br />
{{FAQ<br />
|question=При обновлении появляется сообщение об ошибке: "file exists in filesystem" ("файл существует в файловой системе")!<br />
|answer=Дополнительно: ''Взято из https://bbs.archlinux.org/viewtopic.php?id=56373 у Misfit138.''<br />
<br />
error: could not prepare transaction<br />
error: failed to commit transaction (conflicting files)<br />
package: /path/to/file exists in filesystem<br />
Errors occurred, no packages were upgraded.<br />
<br />
Почему это происходит: pacman при обнаружении конфликтующих файлов, по умолчанию, не будет их перезаписывать автоматически. Это не ошибка, так сделано специально.<br />
<br />
Вопрос решается тривиально. Сначала проверьте не принадлежит ли файл другому пакету: ({{ic|pacman -Qo /path/to/file}}). Если принадлежит - создайте [[Reporting Bug Guidelines|отчет об ошибке]]. Если проблемный файл не нужен другим пакетам - переименуйте его и перезапустите команду обновления. Если в дальнейшем проблем не возникнет, то старый файл можно удалить.<br />
<br />
Если программа была установлена вручную, без использования pacman или его оболочек, вам нужно будет удалить программу и все ее файлы, а затем выполнить установку при помощи pacman.<br />
<br />
Информация, о каждом установленном файле, храниться в файле с метаданными пакета {{ic|/var/lib/pacman/local/$package-$version/files}}. При повреждении этого файла (может быть пустым или отсутствовать), во время обновления пакета, и будет получена ошибка - "file exists in filesystem" ("файл существует в файловой системе").<br />
<br />
Обычно такие ошибки возникают во время установки или обновления всего лишь одного пакета, поэтому вместо ручного переименования или удаления конфликтующих файлов, принадлежащих данному пакету, выполните {{ic|pacman -S --force $package}}, после этой команды pacman принудительно перезапишет эти файлы.<br />
<br />
Никогда '''не''' запускайте {{ic|pacman -Syu --force}}.<br />
}}<br />
<br />
{{FAQ<br />
|question=При установке пакета я получаю сообщение об ошибке: "not found in sync db"<br />
|answer=Для начала убедитесь, что пакет вообще существует (и вы нигде не опечатались!). Если пакет не существует, то проблема может быть в том, что ваша база пакетов не синхронизирована с репозиториями или репозитории неправильно настроены. Для принудительного обновления списка пакетов попробуйте выполнить {{ic|pacman -Syy}}.}}<br />
<br />
{{FAQ<br />
|question=pacman несколько раз обновляет один и тот же пакет!<br />
|answer=Это может быть связано с дублированием записей в {{ic|/var/lib/pacman/local/}}, к примеру имеется два экземпляра {{ic|linux}}. {{ic|pacman -Qi}} выведет правильную версию, а {{ic|pacman -Qu}} покажет её как устаревшую и, следовательно, требующую обновления.<br />
<br />
Решение: удалить лишнюю запись из {{ic|/var/lib/pacman/local/}}.<br />
<br />
{{Note|pacman версии 3.4, в случае обнаружения повторяющихся записей, должен вывести сообщение об ошибке.}}}}<br />
<br />
{{FAQ<br />
|question=pacman сбоит при обновлении!<br />
|answer=Если при попытке удаления, переустановки или обновления пакетов pacman падает с ошибкой "database write" ("записи в базу данных"):<br />
#Загрузитесь используя Arch live CD<br />
#Смонтируйте корневую файловую систему<br />
#Обновите базу данных pacman с помощью {{ic|pacman -Syy}}<br />
#Переустановите сломанный пакет через {{ic|pacman -r /путь/к/корневому_разделу -S package}}}}<br />
<br />
{{FAQ<br />
|question=Я установил программу используя {{ic|make install}}; теперь эти файлы не принадлежат ни одному из пакетов!<br />
|answer=При обнаружении "конфликтующих файлов", чтобы их не перезаписывать вручную, можно использовать pacman с ключом {{ic|-f}} ({{ic|pacman -Sf}}).<br />
<br />
Почитайте [[pacman Tips#Identify files not owned by any package]], о скрипте, проверяющем файловую систему на наличие ''брошенных'' файлов.}}<br />
<br />
{{FAQ<br />
|question=Мне нужен пакет с определенным файлом. Как узнать какому пакету это файл принадлежит?<br />
|answer=Установите [[pkgtools]], в его состав входит {{ic|pkgfile}}, использующий отдельную базу данных со всеми файлами и связанными с ними пакетами.}}<br />
<br />
{{FAQ<br />
|question=pacman полностью не работоспособен! Как мне его переустановить?<br />
|answer=Если pacman не работает и не получается его восстановить - скачайте вручную пакеты ({{Pkg|openssl}}, {{Pkg|libarchive}} и {{Pkg|pacman}}) и распакуйте их в корневой раздел. Бинарный pacman будет восстановлен вместе с конфигурационным файлом по умолчанию. Затем, для поддержания целостности базы данных пакетов, переустановите скачанные пакеты стандартными средствами pacman. Дополнительную информацию и пример (устарел) скрипта, автоматизирующего этот процесс, можно найти в [https://bbs.archlinux.org/viewtopic.php?id=95007 этом] сообщении форума.}}<br />
<br />
{{FAQ<br />
|question=После обновления системы получаю следующее сообщение об ошибке - "unable to find root device", после перезагрузки система не загружается.<br />
|answer=Вероятно при обновлении ядра "поломалась" initramfs (например при использовании pacman с опцией {{ic|--force}}). Для восстановления работоспособности выполните следующие действия.<br />
<br />
Загрузитесь с Arch live-cd. После загрузки выполните:<br />
<br />
# mkdir /mnt/arch<br />
# mount /dev/sda''X'' /mnt/arch (ваш корневой раздел)<br />
# cd /mnt/arch<br />
# mount -t proc proc proc/<br />
# mount -t sysfs sys sys/<br />
# mount -o bind /dev dev/<br />
# mount /dev/sda''X'' boot/ (ваш раздел /boot)<br />
# chroot .<br />
# pacman -Syu udev mkinitcpio<br />
# mkinitcpio -p linux<br />
<br />
Затем отмонтируйте смонтированные разделы и перезагрузитесь.}}</div>
Vadik
https://wiki.archlinux.org/index.php?title=E4rat_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=201471
E4rat (Русский)
2012-05-14T17:45:05Z
<p>Vadik: </p>
<hr />
<div>[[Category:Русский]]<br />
[[Category:Загрузка (Русский)]]<br />
{{i18n|e4rat}}<br />
<br />
{{Article summary start|Описание}}<br />
{{Article summary text|Уменьшение времени загрузки системы и входа в X-ы для файловой системы ext4 с использованием [http://e4rat.sourceforge.net/ утиллит e4rat].}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary wiki|Improve Boot Performance}}<br />
{{Article summary wiki|Preload}}<br />
{{Article summary wiki|Readahead}}<br />
{{Article summary wiki|Ureadahead}}<br />
{{Article summary wiki|Ext4}}<br />
{{Article summary heading|Темы форума}}<br />
{{Article summary link|Main discussion|https://bbs.archlinux.org/viewtopic.php?id&#61;115976}}<br />
{{Article summary link|Improved e4rat-preload|https://bbs.archlinux.org/viewtopic.php?id&#61;117776}}<br />
{{Article summary end}}<br />
<br />
e4rat - проект Andreas Rid и Gundolf Kiefer, расшифровывается как e4 'reduced access time' (сокращение времени доступа), применяется только в файловой системе [[ext4]]. В [http://e4rat.sourceforge.net/ набор утилит e4rat] входит: e4rat-collect, e4rat-realloc и e4rat-preload.<br />
<br />
==Описание==<br />
Если взглянуть на статистику [[bootchart]], то можно заметить, что при загрузке системы ни жесткий диск, ни CPU не используются полностью. e4rat позволяет максимально задействовать жесткий диск и CPU, ускоряя таким образом процесс загрузки. Все проводится в три этапа:<br />
* '''e4rat-collect''' - собирает статистику по используемым файлам в течении определенного времени (по умолчанию 120 секунд, но может быть скорректировано)<br />
* '''e4rat-realloc''' - перераспределяет файлы из списка (помещает их в одну область диска)<br />
* '''e4rat-preload''' - заранее загружает нужные файлы в память<br />
<br />
===Кому это нужно, а кому нет===<br />
e4rat может быть полезной в системах с одним пользователем, использующим автозапуск Х-в, при этом также можно ускорить запуск нужных программ. На серверах или при загрузке в CLI - время загрузки системы может снизиться не на много. Для SSD-дисков вообще нет смысла использовать, поскольку у них отсутствуют движущиеся части и, как следствие, отсутствуют (почти) задержки, однако, пользователям таких дисков, может быть полезно ознакомиться с [[Ureadahead]].<br />
<br />
{{Note|'''Пользователям ureadahead следует обратить внимание:''' в [http://e4rat.sourceforge.net/wiki/index.php/Main_Page#Ubuntu_and_ureadahead оффициальном руководстве e4rat] говориться о том, что ureadahead конфликтует с e4rat. Это может быть верным для Ubuntu, но в Arch Linux эти пакеты возможно будут работать нормально, хотя процесс загрузки, скорее всего, и не ускорится.}}<br />
<br />
Перед использованием e4rat рекомендуется сделать резервные копии изменяемых во избежание потери важных данных.<br />
<br />
==Установка==<br />
Пакет {{Pkg|e4rat}} можно найти в репозитории [community] и установить так:<br />
# pacman -S e4rat<br />
<br />
==Использование==<br />
Далее более подробно:<br />
===e4rat-collect===<br />
Чтоб e4rat смог создать список файлов, необходимо отредактировать файл {{ic|/boot/grub/menu.lst}} ([[grub]] legacy) или {{ic|/boot/grub/grub.cfg}} ([[grub2]]), добавив в строку загрузки ядра linux следующее:<br />
<br />
{{bc|1=init=/sbin/e4rat-collect}}<br />
<br />
Данное действие нужно будет выполнить один раз, поэтому также можно просто отредактировать нужную строку в меню grub на этапе загрузки из командной строки.<br />
<br />
После загрузки, в течении 120 секунд, e4rat-collect будет собирать нужную информацию. Поэтому, в течении 2-х минут после загрузки, запустите X-ы, откройте любимый браузер или почтовую программу и т.д., при этом утилита зарегистрирует все запущенные программы и используемые файлы. При необходимости можно изменить стандартное время сбора статистики, для этого отредактируйте файл {{ic|/etc/e4rat.conf}}. Чтобы вручную завершить работу e4rat-collect, выполните:<br />
<br />
{{bc|e4rat-collect -k}}<br />
или<br />
{{bc|pkill e4rat-collect}}<br />
<br />
После загрузки и успешного завершения работы e4rat-collect должен появиться файл: {{ic|/var/lib/e4rat/startup.log}}<br />
<br />
Теперь не забудьте удалить команду запуска e4rat-collect из своего файла {{ic|menu.lst}} или {{ic|grub.cfg}} (не обязательно, если вы ее добавляли из командной строки [[GRUB]] в процессе загрузки системы).<br />
<br />
===e4rat-realloc===<br />
Для запуска процесса перемещения файлов, согласно созданному в предыдущем шаге списку, необходимо перейти в init 1:<br />
<br />
{{bc|sudo init 1}}<br />
<br />
Авторизоваться в качестве root и выполнить:<br />
<br />
{{bc|e4rat-realloc /var/lib/e4rat/startup.log}}<br />
<br />
В зависимости от того, сколько файлов перечислено в {{ic|startup.log}}, процесс может затянуться на продолжительное время.<br />
{{Warning|Ни в коем случае не прерывайте процесс перемещения файлов, так как это может привести к порче данных и дальнейшей невозможности загрузки системы!}}<br />
<br />
===e4rat-preload===<br />
Отредактируйте файл {{ic|/boot/grub/menu.lst}} ([[grub]] legacy) или {{ic|/boot/grub/grub.cfg}} ([[grub2]]), добавив в параметры загрузки ядра:<br />
<br />
{{bc|1=init=/sbin/e4rat-preload}}<br />
<br />
:{{Note|1=В случае использования grub2, параметры загрузки ядра добавляйте в строку {{Ic|1=GRUB_CMDLINE_LINUX="..."}} файла {{Ic|/etc/default/grub}}.}}<br />
<br />
Перезагружайтесь и наслаждайтесь.<br />
<br />
{{Note|После обновления системы может понадобиться выполнить заново все описанные для [[#e4rat-collect|e4rat-collect]], [[#e4rat-realloc|e4rat-realloc]] и [[#e4rat-preload|e4rat-preload]] действия.}}<br />
<br />
===Альтернатива: e4rat-preload-lite===<br />
[https://bbs.archlinux.org/viewtopic.php?id=117776&p=1 jlindgren], в качестве альтернативы, разработал бинарный preload, позволяющий сэкономить несколько секунд при загрузке.<br />
<br />
Экономия достигается за счет<br />
* использования чистого C, без каких-либо зависимостей от внешних библиотек, что позволяет уменьшить количество связанных файлов .so с 22 до 3, и<br />
* предварительной загрузки первых 100 файлов (таких как дескрипторы и файлы содержимого) перед запуском /sbin/init, и дальнейшая загрузка остальных файлов как параллельно, так и в определенной последовательности.<br />
<br />
{{AUR|e4rat-preload-lite}} можно установить из [[AUR]].<br />
<br />
Отредактируйте файл {{ic|/boot/grub/menu.lst}} ([[grub]] legacy) или {{ic|/boot/grub/grub.cfg}} ([[grub2]]), добавив в параметры загрузки ядра:<br />
<br />
{{bc|1=init=/usr/sbin/e4rat-preload-lite}}<br />
<br />
Перезагружайтесь и наслаждайтесь.<br />
<br />
==e4rat и различные системы инициализации==<br />
По умолчанию e4rat-collect после завершения будет заменена на /sbin/init. Если вам нужно указать другой PID 1, например /bin/[[systemd]], отредактируйте файл {{ic|/etc/e4rat.conf}}, раскомментировав в нем строку с нужным параметром '''init'''<br />
<br />
==Bootchart==<br />
{{Note|Еще находится в разработке и толком не работает - любые предложения приветствуются}}<br />
<br />
Запустите [[Bootchart]] до и после использования e4rat, а затем сравните полученные результаты. Должны появиться видимые изменения.<br />
<br />
===bootchart 0.9-9===<br />
В этой версии журнал ведется только до запуска *dm. Для обхода данного ограничения можно попробовать выполнить следующее (работает не у всех):<br />
<br />
В файле {{ic|/etc/bootchartd.conf}} установите:<br />
<br />
{{bc|1=AUTO_STOP_LOGGER="no"}}<br />
<br />
Когда будет нужно остановить работу сервиса - выполните:<br />
<br />
{{bc|~# bootchartd stop}}<br />
<br />
Для запуска e4rat-preload и bootchart добавив в параметры загрузки ядра:<br />
<br />
{{bc|1=init=/sbin/bootchartd bootchart_init=/sbin/e4rat-preload}}<br />
<br />
===bootchart2===<br />
Для совместного использования bootchart2 с e4rat отредактируйте {{ic|/sbin/bootchartd}} и заменить строку {{ic|<nowiki>init="/sbin/init"</nowiki>}} на {{ic|<nowiki>init="/sbin/e4rat-preload"</nowiki>}}.<br />
<br />
{{ic|/etc/bootchartd.conf}} от bootchart2 устроен иначе, а строка<br />
<br />
EXIT_PROC="kdm_greet xterm konsole gnome-terminal metacity mutter compiz ldm icewm-session enlightenment"<br />
<br />
может быть скорректирована таким образом, что можно будет либо завершать программу вручную (если оставить строку пустой), либо, при запуске указанной в строке программы, bootchart2 будет остановлен автоматически.<br />
<br />
==Устранение неполадок==<br />
Если что-то не работает - можно попробовать следующее.<br />
<br />
===startup.log не создается===<br />
*отключите все проверки в {{ic|rc.conf}}<br />
*изучите все сообщения из<br />
# dmesg | grep e4rat<br />
*в {{ic|e4rat.conf}} увеличите значения verbose и loglevel до 31.<br />
<br />
===e4rat - отчеты об ошибках в файловой системе ext2===<br />
*в файле {{ic|grub.cfg}} или {{ic|menu.lst}} добавьте в параметры загрузки ядра:<br />
rootfstype=ext4<br />
<br />
===/var/lib/e4rat/startup.log не доступен===<br />
*это говорит о том, что /var расположен на отдельном разделе и при загрузке еще не был смонтирован. Вам нужно переместить {{ic|startup.log}} на раздел который доступен (лучше всего в /etc/e4rat/) и, для сохранения изменений, перенастроить {{ic|/etc/e4rat.conf}}:<br />
{{bc|startup_log_file /etc/e4rat/startup.log}}</div>
Vadik
https://wiki.archlinux.org/index.php?title=CUPS_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=201469
CUPS (Русский)
2012-05-14T17:36:48Z
<p>Vadik: </p>
<hr />
<div>[[Category:Принтеры (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|CUPS}}<br />
{{Article summary start|Описание}}<br />
{{Article summary text|Установка и настройка CUPS}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary wiki|CUPS printer sharing}}<br />
{{Article summary wiki|CUPS printer-specific problems}}<br />
{{Article summary wiki|Samba}}<br />
{{Article summary end}}<br />
<br />
:"''Common UNIX Printing System ([[Wikipedia:CUPS|CUPS]], общая UNIX система печати) - это кроссплатформенное решение для печати для всех UNIX систем. Оно основано на "Internet Printing Protocol" (IPP, интернет-протокол печати) и предоставляет полный спектр возможностей для печати для большинства Postscript и растровых принтеров. CUPS распространяется под GNU GPL....''"<br />
Хотя существуют другие пакеты печати, такие как LPRNG, CUPS более популярен и довольно прост в использовании. Это система печати по умолчанию как в Arch Linux, так и во многих других Linux-дистрибутивах.<br />
<br />
<br />
= Установка =<br />
<br />
Вам скорее всего потребуются пакеты {{Pkg|cups}}, {{Pkg|ghostscript}} и {{Pkg|gsfonts}}. [[pacman|Установить]] их можно из [[Official repositories|оффициального репозитория]].<br />
<br />
Если стандартный cups не работает, то можно попробовать установить пакет {{AUR|cups-usblp}}, находящийся в [[AUR]].<br />
<br />
* '''cups''' - собственно пакет CUPS<br />
* '''ghostscript''' - интерпретатор для языка Postscript<br />
* '''gsfonts''' - стандартные Type1 шрифты GhostScript<br />
* '''hpoj''' - при использовании HP Officejet, во избежание проблем, установите этот пакет согласно инструкциям. Почитайте [http://answers.launchpad.net/hplip/+question/133425 обсуждение на launchpad/hplip] для получения дополнительной информации.<br />
<br />
<br />
Если ваша система подключена к сетевому принтеру с использованием протокола samba, или система является сервером печати для Windows клиентов - установите {{Pkg|samba}}.<br />
<br />
===Драйвера принтеров===<br />
Некоторые из пакетов с драйверами для принтеров, зависит от используемого вами принтера. Если не уверены, установите gutenprint.<br />
<br />
* '''{{Pkg|gutenprint}}''' - Набор высококачественных драйверов для принтеров Canon, Epson, Lexmark, Sony, Olympus и PCL использующихся с GhostSscript, CUPS, Foomatic и [[GIMP]].<br />
* '''{{Pkg|foomatic-db}}, {{Pkg|foomatic-db-engine}}, {{Pkg|foomatic-db-nonfree}} и {{Pkg|foomatic-filters}}''' - Foomatic - это система под управлением базы данных для интеграции открытых драйверов для принтера с обычными спулерами под Unix. Установка foomatic-filters должна разрешить ваши проблемы, если в error.log от CUPS будут записи: "stopped with status 22!"<br />
* '''{{AUR|foo2zjs}}''' - драйвер для принтеров использующих протокол ZjStream, например таких как HP Laserjet 1018. Дополнительная информация [http://foo2zjs.rkkda.com здесь]. Для использования Foo2zsj - установите {{AUR|foo2zjs}}.<br />
* '''{{Pkg|hplip}}''' - HP GNU/Linux драйвер. Обеспечивает поддержку DeskJet, OfficeJet, Photosmart, Business Inkjet и других принтеров моделей LaserJet, a также ряд принтеров Brother.<br />
* '''{{Pkg|splix}}''' - драйвера Samsung для принтеров SPL (Samsung Printer Language). (для USB принтеров возможно понадобится пакет {{AUR|cups-usblp}} доступный в [[AUR]])<br />
* '''{{AUR|ufr2}}''' - Canon UFR2 драйвер, обеспечивающий поддержку принтеров серии LBP, iR и MF. Пакет доступен в [[AUR]]. <br />
* '''{{Pkg|cups-pdf}}''' - пакет, позволяющий настроить виртуальный PDF принтер, который будет создавать PDF из всего, что будет отправлено на принтер.<br />
<br />
Если вы не уверены в работоспособности драйвера для вашего принтера или он не работает - то, возможно, стоит установить все доступные драйверы, поскольку для вашей модели принтера может подойти драйвер от другого производителя. Например, для Brother HL-2140 необходимо установить драйвер hplip.<br />
<br />
====Загрузка PPD для принтера====<br />
<br />
Так как CUPS в стандартной установке уже содержит множество PPD (Postscript Printer Description) файлов, и в зависимости от вашего принтера, этот пункт является необязательным и может быть пропущен. Более того, в пакетах <i>foomatic-filters</i>, <i>gimp-print</i> и <i>hplip</i> уже имеется большое количество PPD файлов, которые будут автоматически определены CUPS.<br />
<br />
Вот объяснение с сайта Linux Printing того, что такое PPD файл:<br />
:"''Для каждого PostScript принтера производитель предоставляет PPD файл, содержащий всю уникальную информацию об этой модели принтера: основные возможности принтера (цветной он или нет, шрифты, уровень PostScript и т. д.) и особенно настройки, которые может изменять пользователь, такие как размер бумаги, разрешение печати и т. д.''"<br />
<br />
Если в CUPS для вашего принтера отсутствует нужный PPD файл, то:<br />
*Поищите пакеты для вашего принтера/производителя в [[AUR]].<br />
*Посетите [http://www.openprinting.org/printers базу данных OpenPrinting] и выберите своего производителя и модель принтера.<br />
*Поищите драйверы под GNU/Linux на сайте производителя.<br />
<br />
<br />
{{Note|Поместите PPD файлы в {{ic|/usr/share/cups/model/}}}}<br />
<br />
= Настройка CUPS =<br />
Итак, после установки CUPS, у вас есть множество способов его настройки. Вы всегда можете использовать старую добрую командную строку. Некоторые DE, такие как Gnome и KDE, предоставляют удобные программы, которые могут вам помочь в управлении принтерами. Однако, для того чтобы сделать этот процесс максимально доступным обыкновенному пользователю, мы будем использовать web-интерфейс, предоставляемый CUPS.<br />
<br />
Если планируется подключение не к локальному, а к сетевому принтеру, то, возможно, вначале стоит почитать о настройке [[CUPS printer sharing|общего доступа к принтерам в CUPS]]. Настройка общего доступа к принтерам внутри GNU/Linux довольно проста и имеет малое количество опций, а вот организация общего доступа к принтерам между Windows и GNU/Linux является немного более сложной.<br />
<br />
=== Модули ядра ===<br />
<br />
Перед использованием веб-интерфейса CUPS, вам понадобится загрузить соответствующие модули ядра. Далее описаны шаги, взятые из руководства по установке принтера в Gentoo.<br />
<br />
Данный раздел может понадобиться в зависимости от используемого ядра. После подключения принтера нужный модуль ядра может быть загружен автоматически. Воспользуйтесь командой {{ic|tail}} (описана далее) для того, чтобы определить обнаружен ли принтер. Для просмотра загруженных модулей ядра также можно воспользоваться утилитой {{ic|lsmod}}.<br />
<br />
==== USB-принтеры ====<br />
Для использования USB-принтера может потребоваться внести в черный список модуль {{ic|usblp}}. Учтите, что насчет добавления {{ic|usblp}} в черный список имеется некоторая [http://bbs.archlinux.org/viewtopic.php?pid=660601 неопределенность], так как некоторые USB-принтеры, в частности некоторые серии принтеров Canon и Epson, не определяются без этого модуля. Несколько пользователей принтеров Samsung, после добавления в черный список модуля {{ic|usblp}}, сообщили о проблемах с {{ic|cups}}, в качестве решения предлагается повторное включение модуля {{ic|usblp}} и установка из [[AUR]] пакета {{ic|cups-usblp}} вместо стандартного пакета {{ic|cups}} (https://bbs.archlinux.org/viewtopic.php?pid=778104). С февраля 2012, ранее работавший с cups-usblp USB-принтер Samsung ML2010, работает с cups и внесением в черный список usblp.<br />
<br />
Добавление модуля в черный список:<br />
<br />
{{hc|/etc/modprobe.d/blacklist.conf|blacklist usblp}}<br />
<br />
либо создав в {{ic|/etc/modprobe.d/}} свой файл, например {{ic|usblp_blacklist.conf}}, со следующим содержимым:<br />
<br />
{{hc|/etc/modprobe.d/usblp_blacklist.conf|blacklist usblp}}<br />
<br />
При использовании ядра собранного самостоятельно, возможно придется вручную загрузить модуль {{ic|usbcore}}:<br />
# modprobe usbcore<br />
<br />
После загрузки всех необходимых модулей - включите принтер и проверьте обнаружен ли он ядром, для этого выполните следующее:<br />
# tail /var/log/messages.log<br />
или<br />
# dmesg<br />
<br />
При использовании {{ic|usblp}}, сообщение об обнаружении принтера будет выглядеть примерно так:<br />
Feb 19 20:17:11 kernel: printer.c: usblp0: USB Bidirectional<br />
printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E<br />
Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920<br />
Feb 19 20:17:11 kernel: printer.c: v0.13: USB Printer Device Class driver<br />
<br />
Если {{ic|usblp}} находится в черном списке, то будет выведено примерно следующее:<br />
usb 3-2: new full speed USB device using uhci_hcd and address 3<br />
usb 3-2: configuration #1 chosen from 1 choice<br />
<br />
==== Принтеры с параллельным портом ====<br />
Если вы желаете использовать принтер с параллельным портом, настройка в общем-то такая же, за исключением модулей:<br />
<br />
# modprobe lp<br />
# modprobe parport<br />
# modprobe parport_pc<br />
<br />
Еще раз проверьте настройки выполнив команду:<br />
# tail /var/log/messages.log<br />
Должно быть показано что-то вроде этого:<br />
lp0: using parport0 (polling)<br />
<br />
При использовании адаптера с USB на параллельный порт, CUPS не сможет обнаружить принтер. В качестве обходного пути - добавьте принтер используя другие типы соединений, а затем измените DeviceID в файле {{ic|/etc/cups/printers.conf}}:<br />
DeviceID = parallel:/dev/usb/lp0<br />
<br />
==== Автозагрузка ====<br />
Возможно, вам будет удобнее если соответствующий модуль будет загружен при старте системы. Для этого откройте в текстовом редакторе файл {{ic|/etc/[[rc.conf]]}}, и добавьте нужный модуль в строку {{ic|1=MODULES=()}}. Например, так:<br />
MODULES=(!usbserial scsi_mod sd_mod snd-ymfpci snd-pcm-oss '''lp parport parport_pc''' ide-scsi)<br />
<br />
===Демон CUPS===<br />
<br />
После установки соответствующих модулей ядра, можно приступать к [[Daemon#Performing daemon actions manually|запуску демона CUPS]]. Для автоматического запуска демона при старте системы следует добавить cupsd в [[daemons#Starting on Boot|строку DAEMONS]].<br />
<br />
=== Web-интерфейс и средства управления ===<br />
<br />
После запуска демона откройте браузер и зайдите на: http://localhost:631 (''Строку '''localhost''', возможно, придется заменить на имя хоста из'' {{ic|/etc/hosts}}).<br />
<br />
Теперь для добавления принтера можно использовать различные мастера. Для запуска обыкновенной процедуры установки кликните ''Добавление принтеров и групп'', затем ''Добавить принтер''. При запросе имени пользователя и пароля нужно будет войти в качестве root. Далее будет представлен список устройств для выбора. Фактическое имя принтера отображается рядом с меткой ( например, USB-принтеры напротив ''USB Printer #1''). Принтеру можно присваивать любое имя, аналогично для пунктов 'Расположение' и 'Описание'. После выбора соответствующего драйвера настройки будут окончены.<br />
<br />
<br />
Убедитесь в правильности настроек, нажав на кнопку ''Print Test Page'' (''Печать тестовой страницы'') в выпадающем меню ''Maintenance'' (''Обслуживание''). Если принтер не печатает, но вы уверены в правильности всех настроек, попытайтесь сменить драйвер принтера на другой.<br />
<br />
{{Tip|Ознакомьтесь с другими программами в разделе [[#Альтернативные интерфейсы CUPS]].}}<br />
{{Note|При установке USB-принтер должен отображаться в списке устройств на странице ''Добавить принтер''. Если будет доступен только вариант "SCSI printer", то это означает, что CUPS не смог распознать ваш принтер.}}<br />
<br />
==== Администрирование CUPS ====<br />
<br />
При администрировании принтера через веб-интерфейс (например для: добавления или удаления принтеров, остановки заданий печати, и т.д) понадобятся имя пользователя и пароль. Пользователем по-умолчанию может быть пользователь из группы ''sys'' или root (для изменения измените значение в строке ''SystemGroup'' файла {{ic|/etc/cups/cupsd.conf}}). <br />
<br />
При заблокированной учетной записи root (т.е. используя sudo) будет невозможно войти в веб-интерфейс управления CUPS с именем пользователя по умолчанию и его паролем. В этом случае придерживайтесь [http://www.cups.org/articles.php?L237+T+Qprintadmin инструкций] из CUPS FAQ. Дополнительно прочтите [http://bbs.archlinux.org/viewtopic.php?id=35567 это сообщение].<br />
<br />
====Удаленный доступ к веб-интерфейсу====<br />
По умолчанию, доступ к веб-интерфейсу CUPS разрешен только ''localhost''; т.е. компьютеру на котором он установлен. Для разрешения удаленного доступа нужно внести следующие изменения в файл {{ic|/etc/cups/cupsd.conf}}. Замените строку:<br />
Listen localhost:631<br />
на строку<br />
Port 631<br />
для того, чтобы CUPS мог слушать входящие запросы.<br />
<br />
Можно предоставить три уровня доступа:<br />
<Location /> #доступ к серверу<br />
<Location /admin> #доступ к странице администрирования<br />
<Location /admin/conf> #доступ к конфигурационным файлам<br />
<br />
Для разрешения удаленного доступа к одному из уровней, добавьте параметр {{ic|Allow}} в секцию соответствующую выбранному уровню. Параметр {{ic|Allow}} может принимать одно или несколько из перечисленных ниже значений:<br />
Allow all<br />
Allow host.domain.com<br />
Allow *.domain.com<br />
Allow ip-address<br />
Allow ip-address/netmask<br />
<br />
Параметр также может быть использован для запрета. Например, если нужно дать полный доступ всем хостам подсети 192.168.1.0/255.255.255.0, файл {{ic|/etc/cups/cupsd.conf}} должен содержать следующее:<br />
# Ограничение доступа к серверу...<br />
# По умолчанию возможны только локальные подключения<br />
<Location /><br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
# Ограничение доступа к странице администрирования...<br />
<Location /admin><br />
# Encryption disabled by default<br />
#Encryption Required<br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
# Ограничение доступа к конфигурационным файлам...<br />
<Location /admin/conf><br />
AuthType Basic<br />
Require user @SYSTEM<br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
Также вам потребуется добавить:<br />
<br />
DefaultEncryption Never<br />
<br />
Для того, чтоб избежать получения ошибки: 426 - Upgrade Required when using the CUPS web interface from a remote machine.<br />
<br />
= Устранение проблем =<br />
<br />
Наилучший способ борьбы с неисправностями - это выставить 'LogLevel' в файле {{ic|/etc/cups/cupsd.conf}} в:<br />
LogLevel debug<br />
<br />
А потом посмотреть вывод из файла {{ic|/var/log/cups/error_log}} например так:<br />
# tail -n 100 -f /var/log/cups/error_log<br />
<br />
Символы слева от вывода означают следующее:<br />
*D=Debug (отладка)<br />
*E=Error (ошибка)<br />
*I=Information (информация)<br />
*И так далее<br />
<br />
Следующие файлы также могут быть полезны:<br />
*{{ic|/var/log/cups/page_log}} - каждый раз при успешной печати, пишет новую запись<br />
*{{ic|/var/log/cups/access_log}} - записывает всю активность на cupsd http1.1 сервере<br />
<br />
Также, если вы хотите решить свои проблемы, важно понимать, как вообще работает CUPS. Вот краткая информация об этом:<br />
# Когда вы жмёте 'печать' приложение отправляет .ps-файл (PostScript, язык-скрипт, который описывает, как выглядит страница) в систему CUPS (так происходит в большинстве программ).<br />
# CUPS смотрит на PPD-файл (файл описания принтера) и находит, фильтры которые ему нужно использовать для преобразования .ps-файла в файл, который понимает ваш принтер (например, PJL,PCL). Обычно для этого ему требуется ghostscript.<br />
# GhostScript принимает ввод и решает, какие фильтры ему использовать, потом применяет их и преобразовывает .ps-файл в формат, который понимает принтер.<br />
# Затем файл передается бэкенду. Например, если у вас принтер подключен к usb порту, то используется usb бэкенд<br />
<br />
===Проблемы в результате обновления===<br />
''Проблемы возникшие после обновления CUPS и сопутствующего ему набора программ''<br />
<br />
====CUPS останавливается====<br />
Существует вероятность, что для правильной работы в обновленной версии понадобится новый файл конфигурации. Например, получение сообщения "404 - page not found" при попытке входа в панель управления CUPS через localhost:631.<br />
<br />
Для того, чтобы воспользоваться новым конфигом, скопируйте {{ic|/etc/cups/cupsd.conf.default}} в {{ic|/etc/cups/cupsd.conf}} (при необходимости сделайте резервную копию старого конфига):<br />
# cp /etc/cups/cupsd.conf.default /etc/cups/cupsd.conf<br />
и, чтобы новые настройки вступили в силу, перезапустите CUPS.<br />
<br />
====Ошибка gnutls====<br />
При получении следующей ошибки:<br />
/usr/sbin/cupsd: error while loading shared libraries: libgnutls.so.13: cannot open shared object file: No such file or directory<br />
следует обновить gnutls:<br />
# pacman -S gnutls<br />
<br />
После обновления в {{ic|/etc/cups}} появится файл {{ic|cupsd.conf.pacnew}}. Это стандартный конфигурационный файл. Сравните его со своим конфигурационным файлом и, при необходимости, добавьте новые опции.<br />
<br />
====Для всех заданий - "остановлено" ("stopped")====<br />
Если для всех отправленных на печать заданий установился статус "остановлено" ("stopped"), - удалите принтер и установите его заново.<br />
Для этого войдите в [http://localhost:631 веб-интерфейс CUPS], перейдите Принтеры > Удалить Принтер.<br />
<br />
Для проверки настроек принтера перейдите во вкладку ''Принтеры'', затем ''Администрирование''. В выпадающем списке кликните 'Изменить принтер', перейдите к следующей странице (ам), и так далее.<br />
<br />
====Для всех заданий - "Принтер не отвечает" ("The printer is not responding")====<br />
Для сетевых принтеров, поскольку CUPS подключается через URI, необходимо убедиться, что в DNS настроен доступ к принтерам по IP. Например, если принтер подключен следующим образом:<br />
lpd://BRN_020554/BINARY_P1<br />
то имени хоста 'BRN_020554' должны соответствовать IP принтеров, управляемых сервером CUPS.<br />
<br />
====Версия PPD не совместима с gutenprint====<br />
Запустите:<br />
# /usr/sbin/cups-genppdupdate<br />
<br />
И перезагрузите CUPS (будет выведено соответствующее сообщение после установки gutenprint).<br />
<br />
===USB-принтеры под CUPS 1.4.x===<br />
Новый CUPS 1.4.x принес множество изменений:<br />
<br />
====Конфигурационный файл====<br />
Изменился синтаксис конфигурационного файла cupsd.conf. Начните с нового конфигурационного фала {{ic|cupsd.conf}}, созданного из {{ic|/etc/cups/cupsd.conf.default}}.<br />
<br />
====Занесение в черный список usblp====<br />
Теперь CUPS, вместо генерирования устройств /dev/usb/lpX с помощью usblp, использует устройства libusb и USB-принтеры (из /dev/bus/usb/). Для того, чтобы заработали USB-принтеры - необходимо выключить модуль usblp.<br />
Выключить можно либо добавив в {{ic|/etc/modprobe.d/modprobe.conf}}:<br />
<br />
{{hc|/etc/modprobe.d/modprobe.conf|blacklist usblp}}<br />
<br />
либо создав в {{ic|/etc/modprobe.d/}} свой файл, например {{ic|usblp_blacklist.conf}}, со следующим содержимым:<br />
<br />
{{hc|/etc/modprobe.d/usblp_blacklist.conf|blacklist usblp}}<br />
<br />
Некоторым пользователям, возможно, прийдется переустановить принтер.<br />
<br />
====Определение устройства====<br />
В дополнение к отключению загрузки usblp, CUPS могут понадобится права на файл устройства USB-принтера - root:lp, и должны быть 660. Например.<br />
$ ls -l /dev/bus/usb/003/002<br />
crw-rw---- 1 root lp 189, 257 20. Okt 10:32 /dev/bus/usb/003/002<br />
<br />
Этого можно добиться добавлением двумя правилами udev в {{ic|/lib/udev/rules.d/50-udev-default.rules}}:<br />
# hplip and cups 1.4+ use raw USB devices, so permissions should be similar to<br />
# the ones from the old usblp kernel module<br />
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="", IMPORT{program}="usb_id --export %p"<br />
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}==":0701*:", GROUP="lp", MODE="660"<br />
<br />
Тем не менее, для некоторых устройств, например, многофункциональных устройств принтер/сканер, эти правила либо не используются, либо перекрываются правилами пакета 'sane'. В этом случае нужно будет добавлять пользовательские правила udev. Смотри далее.<br />
<br />
=====Устранение неполадок при определении устройств=====<br />
Узнаем файл устройства принтера и права доступа к нему: <br />
$ lsusb<br />
...<br />
Bus 003 Device 002: ID 04b8:0841 Seiko Epson Corp.<br />
$ ls -l /dev/bus/usb/003/002<br />
crw-rw---- 1 root lp 189, 257 20. Okt 10:32 /dev/bus/usb/003/002<br />
<br />
Если права доступа не root:lp 660, придется создать пользовательское правило [[udev]] для этого устройства, пример<br />
{{hc|cat /etc/udev/rules.d/10-usbprinter.rules|<nowiki>ATTR{idVendor}=="04b8", ATTR{idProduct}=="0841", MODE:="0660", GROUP:="lp"</nowiki>}}<br />
<br />
Для многофункциональных устройств (принтер+сканер), для того, чтоб [[sane]] определил его корректно:<br />
{{hc|cat /etc/udev/rules.d/10-usbprinter.rules|<nowiki>ATTR{idVendor}=="04b8", ATTR{idProduct}=="0841", MODE:="0660", GROUP:="lp", ENV{libsane_matched}:="yes"</nowiki>}}<br />
<br />
Обратите внимание:<br />
* {{ic|idVendor}} и {{ic|idProduct}} взяты из вывода команды {{ic|lsusb}} показанного выше.<br />
* некоторым принтерам понадобятся права доступа {{ic|666}}.<br />
<br />
=====Загрузка прошивки (firmware)=====<br />
<br />
Для некоторых принтеров и драйверов понадобится загрузка прошивки принтера (таким как, использующие foo2zjs, принтеры HP LaserJet 10xx) и сделать это будет нужно путем записи прямо на устройство lp, такие функциональные возможности предоставляет usblp. Для обхода этого ограничения нужно будет загрузить модуль usblp при загрузке прошивки, а затем, для нормальной работы CUPS, удалить модуль. Для ручной загрузки модуля выполните<br />
$ modprobe usblp<br />
загрузка прошивки, затем:<br />
$ rmmod usblp<br />
Также можно обойтись без добавления usblp в черный список, добавьте "rmmod usblp" в {{ic|/etc/rc.local}}, при этом прошивка будет загружена при старте системы, а затем, при чтении {{ic|rc.local}}, модуль usblp будет выгружен.<br />
<br />
В случае если принтер окажется подключенным или на нем будет включено питание уже на работающей системе - файл {{ic|/etc/rc.local}} не будет использован и модуль usblp останется подгруженным. Обойти это можно изменив {{ic|/etc/udev/rules.d/11-hpj10xx.rules}}, созданный для foo2zjs, таким образом чтоб при добавлении устройства выполнялось нужное событие, например: 15 секунд для загрузки прошивки и автоматического удаления usblp. Следующий пример для HP LaserJet 1018. Для других моделей значения ATTRS{idProduct} должны быть изменены, соответственно модели принтера.<br />
<br />
Найдите в {{ic|/etc/udev/rules.d/11-hpj10xx.rules}} строку соответствующую вашему принтеру:<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/sbin/foo2zjs-loadfw 1018 $tempnode"<br />
Добавьте после нее следующие строки, при этом убедитесь, что соответствуют IDs продукта и производителя:<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/usr/bin/sleep 15"<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/usr/bin/rmmod usblp"<br />
<br />
===Остальное===<br />
<br />
=====Устранение ошибок CUPS=====<br />
*Пользователям, регулярно получающим ошибки вида 'NT_STATUS_ACCESS_DENIED' (Windows-клиенты), следует слегка изменить синтаксис:<br />
smb://workgroup/username:password@hostname/printer_name<br />
<br />
*Иногда, блочные устройства могут иметь не правильные права:<br />
# ls /dev/usb/<br />
lp0<br />
# chgrp lp /dev/usb/lp0<br />
<br />
====Принтер HPLIP выдает ошибку "/usr/lib/cups/backend/hp failed"====<br />
Убедитесь, что dbus установлен и запущен, для этого или проверьте секцию DAEMONS в {{ic|/etc/rc.conf}}, или выполните {{ic|ls /var/run/daemons}}.<br />
<br />
Если демон dbus запущен, но ошибка все равно повторяется - нужен avahi-daemon.<br />
<br />
{{Note|возможно понадобиться решить вопрос с правами. Более подробно можно прочесть здесь: [[CUPS#Device_node_permissions]].}}<br />
<br />
====Настройка HPLIP выполнена, но принтер не работает====<br />
Данная проблема возникает при использовании драйвера hpijs (устарел) (напр. для серии Deskjet D1600). Вместо него, при добавлении принтера, выбирайте драйвер hpcups.<br />
<br />
====hp-toolbox выдает ошибку "Unable to communicate with device" ("Невозможно соединиться с устройством")====<br />
Если в результате запуска hp-toolbox от обычного пользователя получаете сообщение:<br />
# hp-toolbox<br />
# error: Unable to communicate with device (code=12): hp:/usb/<printer id><br />
или, "{{ic|Unable to communicate with device"}}", значит следует добавить пользователя в группу lp, для этого выполните следующую команду:<br />
# gpasswd -a <username> lp<br />
<br />
====CUPS с принтером HP возвращает '"foomatic-rip" not available/stopped with status 3' ('"foomatic-rip" не используется/остановлен со статусом 3')====<br />
Если, во время использования принтера HP, задания появляются в очереди, но все завершаются со статусом 'stopped', а в {{ic|/var/log/cups/error_log}} возникает одно из следующих сообщений об ошибках:<br />
Filter "foomatic-rip" for printer "<printer_name>" not available: No such file or director<br />
или:<br />
PID 5771 (/usr/lib/cups/filter/foomatic-rip) stopped with status 3!<br />
Убедитесь, что установлен '''hplip''', также может понадобится пакет '''net-snmp'''. Прочитайте [http://bbs.archlinux.org/viewtopic.php?id=65615 эти сообщения на форуме].<br />
# pacman -S hplip<br />
<br />
====Завершение печати из-за ошибок авторизации====<br />
Если пользователь уже добавлен в группу lp, и ему разрешена печать (настраивается в {{ic|cupsd.conf}}), то проблему следует искать в файле {{ic|/etc/cups/printers.conf}}. Проблема может заключаться в следующей строке:<br />
AuthInfoRequired negotiate<br />
<br />
Закомментируйте ее и перезапустите CUPS.<br />
<br />
====Неактивна кнопка Печать в диалогах приложений GNOME====<br />
:''<small>Источник: [http://bbs.archlinux.org/viewtopic.php?id=70418 I can't print from gnome applications. - Arch Forums]</small>''<br />
<br />
Убедитесь, что установлен пакет: '''libgnomeprint'''<br />
<br />
Отредактируйте {{ic|/etc/cups/cupsd.conf}} добавив в него<br />
# HostNameLookups Double<br />
<br />
Перезапустите CUPS:<br />
# /etc/rc.d/cupsd restart<br />
<br />
====Не найдена поддержка формата: application/postscript====<br />
Закомментируйте строки:<br />
application/octet-stream application/vnd.cups-raw 0 -<br />
в {{ic|/etc/cups/mime.convs}}, и:<br />
application/octet-stream<br />
в {{ic|/etc/cups/mime.types}}.<br />
<br />
====Определение URIs для Windows Print Servers====<br />
<br />
Иногда Windows предоставляет не полную информацию об URI (расположение устройств). Если в CUPS возникли проблемы с указанием местоположения устройств - необходимо выполнить команду получения списка всех ресурсов, которые доступны данному windows-пользователю:<br />
$ smbtree -U ''windowsusername''<br />
Если [[Samba]] работает и настроена правильно, то будут отображены все, доступные выбранному Windows-пользователю, ресурсы локальной сети. Команда должна отобразить что-то, типа этого:<br />
{{bc| WORKGROUP<br />
\\REGULATOR-PC <br />
\\REGULATOR-PC\Z <br />
\\REGULATOR-PC\Public <br />
\\REGULATOR-PC\print$ Printer Drivers<br />
\\REGULATOR-PC\G <br />
\\REGULATOR-PC\EPSON Stylus CX8400 Series EPSON Stylus CX8400 Series}}<br />
Нам понадобится первая часть последней строки -ресурс соответствующий описанию принтера. Таким образом, для получения возможности печатать на принтере EPSON Stylus, в качестве URI в CUPS следует ввести:<br />
smb://username.password@REGULATOR-PC/EPSON Stylus CX8400 Series<br />
Обратите внимание на то, что в URI допускаются пробелы, а знаки "\\" следует заменять на "//".<br />
<br />
====Ошибка задания для печати client-error-document-format-not-supported====<br />
Нужно установить пакет foomatic и использовать драйвер foomatic.<br />
<br />
====Не работает /usr/lib/cups/backend/hp====<br />
В {{ic|/etc/cups/cupsd.conf}} замените:<br />
<br />
SystemGroup sys root<br />
на<br />
SystemGroup lp root<br />
<br />
====Принтер Samsung не печатает некоторые документы====<br />
<br />
Бывает, что принтер Samsung прекрасно работает с {{ic|cups}}, но не печатает некоторые документы (файлы Inkscape с текстом) и даже сбоит. В качестве решения можно посоветовать использовать пакет {{AUR|cups-usblp}} с добавлением модуля {{ic|usblp}} в черный список (как было описано ранее).<br />
<br />
====Не отображается локальный USB-принтер====<br />
<br />
Если ваш usb-принтер не отображается - попробуйте заменить {{pkg|cups}} на {{AUR|cups-usblp}} (пакет можно найти в [[AUR]]). Затем проверьте работоспособность сначала с загруженным модулем {{ic|usblp}}, а затем, если не поможет, - с добавленным в черный список.<br />
<br />
===="Не удается получить список драйверов для принтеров"====<br />
Попробуйте удалить драйверы Foomatic.<br />
<br />
=Приложение=<br />
<br />
===Альтернативные интерфейсы CUPS===<br />
<br />
В среде [[GNOME]], вы можете конфингурировать ваш принтер с помощью system-config-printer-gnome. С помощью pacman можно установить этот пакет:<br />
# pacman -S system-config-printer-gnome<br />
<br />
Для нормальной работы system-config-printer понадобиться или запуск с правами администратора, или, если от обычного пользователя, то такому пользователю должно быть разрешено администрировать CUPS (если это так - '''выполните шаги 1-3''')<br />
<br />
* 1. Создайте группу и внесите в нее нужного пользователя:<br />
# groupadd lpadmin<br />
# usermod -aG lpadmin <username><br />
<br />
* 2. Добавьте "lpadmin" (без кавычек) в следующую строку файла {{ic|/etc/cups/cupsd.conf}}<br />
SystemGroup sys root <insert here><br />
<br />
* 3. Перезапустите cups, выйдите и снова войдите в систему (или перезагрузите компьютер)<br />
{{bc|# rc.d restart cupsd}}<br />
<br />
Пользователи [[KDE]] могут изменять настройки из "Control Center" (kcontrol). Для получения дополнительной информации, обратитесь к документации вашего рабочего окружения (DE).<br />
<br />
Также в [[AUR]] можно найти пакет [https://aur.archlinux.org/packages.php?ID=43505 gtklp]<br />
<br />
===Виртуальный PDF-принтер===<br />
<br />
Существует прекрасный пакет - CUPS-PDF. Этот пакет позволяет настроить виртуальный принтер, генерирующий PDF-файлы из того, что отправлено на печать на этот принтер. Возможно этот пакет вам и не понадобиться, но иногда он может быть очень полезен.<br />
<br />
Созданные PDF-документы можно найти в {{ic|var/spool/cups-pdf}}. Обычно, более удобно такие документы добавлять в домашнюю директорию пользователя. Настроить такое поведение не сложно. В файле /etc/cups/cups-pdf.conf найдите и строку:<br />
#Out /var/spool/cups-pdf/${USER}<br />
<br />
и приведите ее к такому виду:<br />
<br />
Out /home/${USER}<br />
<br />
<br />
Установить этот пакет можно командой:<br />
# pacman -S cups-pdf<br />
<br />
После установки пакета, настройте PDF-принтер аналогично обычному принтеру, например с помощью веб-интерфейса. В Device (Оборудование) выберите - '''CUPS-PDF (Virtual PDF Printer)'''; Make/Manufacturer (Марка/Производитель) выберите - '''Generic'''; Model/Driver (Модель/Драйвер) выберите - '''Generic postscript color printer''' или '''Generic Cups-PDF Printer'''. В качестве альтернативы, [http://www.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/cups-pdf-CURRENT/extra/CUPS-PDF.ppd по этой ссылке] можно найти другой PPD-файл.<br />
<br />
==== Печать в postscript: тонкости использования виртуального CUPS-PDF-принтера ====<br />
<br />
Для большинства приложений, таких как OpenOffice, печать в PDF не является проблемой; достаточно просто нажать кнопку. Для печати в postscript, потребуется выполнить небольшой дополнительный объем работ. CUPS-PDF (Виртуальный PDF-принтер) на самом деле создает postscript-файл, а затем уже с помощью утилиты ps2pdf, преобразовывает его в PDF. Для печати в postscript, необходимо сначала передать созданные CUPS-PDF postscript-файлы. Для этого в диалоге печати нужно выбрать вариант "print to file" ("печатать в файл"). (выберите расширение для файла или .ps, или .eps). После того, как будет отмечен флажок "print to file" ("печатать в файл"), введите имя файла и нажмите "print" ("печать").<br />
<br />
=====Настройка виртуального CUPS-PDF-принтера=====<br />
#Прочтите инструкция по настройке демона cups.<br />
#Установите {{Pkg|cups-pdf}} из [extra].<br />
#Запустите менеджер печати cups: http://localhost:631 и выберите:<br />
Administration -> Add Printer<br />
Select CUPS-PDF (Virtual PDF), выберите марку и модель:<br />
Make: Generic<br />
Driver: Generic CUPS-PDF Printer<br />
<br />
Теперь, для печати в postscript, в диалоговом окне печати установите "CUPS-PDF" в качестве принтера, установите флажок на "print to file" ("печатать в файл"), нажмите печать, введите имя_файла.ps и кликните сохранить. Метод удобен при обработке факсов и т.д...<br />
<br />
===Другие источники драйверов для принтеров===<br />
<br />
[http://www.turboprint.de/english.html Turboprint] - проприетарный драйвер для многих моделей принтеров, которые до сих пор не поддерживаются в GNU/Linux (например Canon i*). Единственная проблема в том, что высококачественная печать будет либо с водяным знаком, либо за отдельную плату...<br />
<br />
=Дополнение=<br />
<br />
Список вебсайтов, которые могут быть вам полезны:<br />
<br />
* <b>Official CUPS documentation on your computer</b> http://localhost:631/documentation.html<br />
* <b>Official CUPS Website</b> - http://www.cups.org/<br />
* <b>Linux Printing</b> - http://www.linuxprinting.org/<br />
* <b>Tips and Suggestions on common CUPS problems</b> - http://home.nyc.rr.com/computertaijutsu/cups.html<br />
* <b>Gentoo's Printing Guide</b> - http://www.gentoo.org/doc/en/printing-howto.xml<br />
* <b>Arch Linux User Forums</b> - http://bbs.archlinux.org/<br />
<br />
==Особые случаи==<br />
<br />
Дальнейшее описание посвящено специфическим проблемам и их решениям. Если вы сталкивались с какой-либо ''необычной'' работой принтера, пожалуйста, поместите решение проблемы здесь.<br />
<br />
=== Принтеры с параллельным портом HP (hplip) ===<br />
{{Note|Действия проводились для настройки HP LaserJet 6L}}<br />
Если HP принтер подключен через параллельный порт, то потребуется пересобрать пакет '''hplip''' с опцией '''--enable-pp-build'''.<br />
Для этого устанавливаем и обновляем ABS:<br />
<pre><br />
# pacman -S abs<br />
# abs<br />
</pre><br />
Копируем необходимые файлы для сборки<br />
<pre><br />
# cp -r /var/abs/extra/hplip /tmp<br />
</pre><br />
Правим файл {{ic|/tmp/hplip/PKGBUILD}} и добавляем опцию '''--enable-pp-build''' для '''./configure''':<br />
<pre><br />
[...]<br />
./configure --prefix=/usr \<br />
--enable-qt4 \<br />
--enable-pp-build \<br />
--enable-foomatic-rip-hplip-install \<br />
--enable-foomatic-ppd-install \<br />
--enable-hpcups-install \<br />
--enable-cups-drv-install \<br />
--enable-hpijs-install \<br />
--enable-foomatic-drv-install \<br />
--enable-udev-acl-rules<br />
[...]<br />
</pre><br />
Собираем и ставим пакет:<br />
<pre><br />
cd /tmp/hplip<br />
makepkg -s<br />
pacman -U hplip-3.10.6-1-i686.pkg.tar.xz<br />
</pre><br />
Далее принтер настраивается обычным путем через web-интерфейс '''CUPS''' [http://localhost:631 http://localhost:631].<br />
<br />
Если принтер правильно настроен для работы с '''hplip''', то строка подключения в '''CUPS''' будет начинаться с '''hp:'''<br />
<pre><br />
hp:/par/HP_LaserJet_6L?device=/dev/parport0<br />
</pre><br />
<br />
{{Note|Действия проводились для настройки HP LaserJet 5L, x86_64}}<br />
Устанавливаем hplip (пересобирать пакет не надо, он уже собран с --enable-pp-build)<br />
<pre><br />
# pacman -S hplip<br />
</pre><br />
Далее запускаем<br />
<pre><br />
# hp-setup -i -a -x /dev/parport0<br />
</pre><br />
для автоматического добавления принтера в CUPS, либо добавляем "ручками" через веб-интерфейс [http://localhost:631 http://localhost:631].<br />
<br />
===Печать не работает/прерывается на принтерах HP Deskjet 700===<br />
<br />
Проблема решается установкой фильтра pnm2ppa для принтеров HP Deskjet 700 series. Без этого задания на печать будут отменяться системой. [[Arch Build System (Русский)| PKGBUILD]] для pnm2ppa можно найти здесь: [https://aur.archlinux.org/index.php?setlang=ru AUR].<br />
<br />
===Заставить работать HP LaserJet 1010===<br />
Мне для этого пришлось самому собрать ghostscript, потому что gs ESP в репозитории был версии 7.07 и имел некоторые ошибки, исправленные в ESP 8.15.1. Я никогда не пользовался пакетом 'foomatic' из репозитория. Я думаю что этот пакет устарел.<br />
<pre><br />
$ pacman -Qs cups a2ps psutils foo ghost<br />
local/cups 1.1.23-3<br />
The CUPS Printing System<br />
local/a2ps 4.13b-3<br />
a2ps is an Any to PostScript filter<br />
local/psutils p17-3<br />
A set of postscript utilities.<br />
local/foomatic-db 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-db-engine 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-db-ppd 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-filters 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/espgs 8.15.1-1<br />
ESP Ghostscript<br />
</pre><br />
Также я был вынужден выставить LogLevel в /etc/cups/cupsd.conf в debug2 для того чтобы обнаружить отсутствие некоторых шрифтов "Nimbus". Затем я переименовал их и положил туда, куда мне подсказывал лог. Тут нужно привести хитрый способ поиска в google, [http://www.google.com/search?q=n019003l+filetype%3Apfb например] т.к. шрифты являются проприетарными (уверен что в windows это по умолчанию). В любом случае, после скачивания шрифтов (около 7) и помещения их в правильную директорию печать заработала.<br />
<br />
До этого я получал ошибки описанные [http://linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1010 здесь]: 'Unsupport PCL' и т.п...<br />
<br />
Уверен что это работало бы и с gs ESP 7.07 (в репозитории) если бы у меня раньше хватило ума включить DebugLevel2 :-/<br />
<br />
''Обновление:'' да, это работает... может быть эта информация окажется полезной для кого-либо ещё... извините за неудобства.<br />
<br />
===Заставить работать HP LaserJet 1020 (1018 и похожие)===<br />
После множества попыток связанных с hplib и gutenprint я наконец нашёл решение как заставить мой HP Laserjet 1020 печатать. <br />
<br />
Первым делом вам надо уставить cups и ghostscript. Затем пройдите по ссылке <br />
http://www.linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1020 на страницу драйверов печати http://foo2zjs.rkkda.com/ и следуйте интрукциям по установке. Залогиньтесь как root. После скачивания и распаковки архива переместитесь в распакованную директорию foo2zjs. Теперь вы можете делать всё по оригинальной инструкции по установке, лишь с небольшой модификацией для изменения userid пользователя для печати:<br />
<pre><br />
$ make<br />
$ ./getweb 1020<br />
</pre><br />
Откройте ''Makefile''<br />
<pre>$ nano Makefile</pre><br />
найдите там строку<br />
<pre># LPuid=-olp</pre><br />
и модифицируйте её таки образом:<br />
<pre># LPuid=-oroot</pre><br />
дальше выполняйте сборку<br />
<pre><br />
$ make install<br />
$ make install-hotplug<br />
$ make cups<br />
</pre><br />
Сейчас в этих действиях нет необходимости. Теперь строка '''LPuid=-oroot''' стоит по умолчанию.<br />
<br />
Вы также можете взять пакет foo2zjs из [https://aur.archlinux.org/index.php?setlang=ru AUR] и модифицировать [[Arch Build System (Русский)| PKGBUILD]]: измените строку<br />
<pre>./getweb all</pre><br />
на<br />
<pre>./getweb 1020</pre><br />
(или, если устанавливаете другой принтер, измените эту строку на что, что вам нужно).<br />
<br />
Последним шагом является добавление и конфигурирование принтера в CUPS manager. Принтер должен определиться автоматически. Это отлично работает для root'а и всех ползователей. Когда ОС загружается, принтер инициализируется и сигнализирует о том, что он работает.<br />
Так же строку<br />
<pre>./getweb 1020</pre><br />
можно изменять на необходимые 1018 (для работы принтера Hewlett-Packard 1018) и т.д.<br />
<pre>./getweb 1018</pre><br />
Список поддерживаемы моделей тут: http://foo2zjs.rkkda.com/<br />
<br />
====HPLIP====<br />
<br />
Больше нет необходимости устанавливать драйвер foo2zjs для работы принтера HP LJ 1018/1020, поскольку в последних версиях hplip он работает "из коробки". Вам следует установить hplip, gnomesu или gksu, qt и pyqt4, после чего запустить <br />
<pre>sudo hp-setup</pre><br />
CUPS-сервер должен быть запущен. Мастер установки hplip автоматически установит ваш принтер. После следует установить плагин к принтеру. Для этого запустить от пользователя программу hp-toolbox и выберите "install required plugin". Плагин автоматически загрузится с сайта производителя.<br />
Никаких дополнительных действий (вроде внесения usblp и MODULES_BLACKLIST) выполнять не надо.<br />
<br />
===Выполнение сервисных операций на принтерах Epson===<br />
====Escputil====<br />
<br />
Здесь объясняется как выполнить некоторые вспомогательные операции, такие как очистка и проверка сопел на принтерах Epson. Для этого мы будем использовать утилиту escputil, которая входит в состав пакета gutenprint.<br />
<br />
Man-страница этой утилиты ("man escputil") содержит очень полезную информацию, но не включает в себя необходимых сведений о том как идентифицировать ваш принтер. Для этого могут быть использованы два параметра. Первый из них --printer; он принимает имя принтера, которое вы использовали при его конфигурировании. Другой &mdash --raw-device. Эта опция примаетпуть к устройству. Если ваш принтер подключен к последовательному порту, то устройство будет выглядеть примерно как "/dev/lp0". Если же ваш принтер подключен к USB, по устройство будет "/dev/usb/lp0". Если у вас более одного принтера они будут иметь имена файлов устройств "lp1", "lp2" и т.д.<br />
<br />
* очистка печатающей головки:<br />
<pre>escputil -u --clean-head</pre><br />
<br />
* проверка сопел:<br />
<pre>escputil -u --nozzle-check</pre><br />
<br />
Если вам необходимо произвести операцию, которая требует двухстороннего общения с принтером вы должны использовать спецификацию "--raw-device", а ваш пользователь должен состоять в группе "lp" или быть root'ом.<br />
<br />
* получение внутреннего имени принтера:<br />
<br />
sudo escputil --raw-device=/dev/usb/lp0 --identify<br />
<br />
* получение уровня чернил:<br />
<br />
sudo escputil --raw-device=/dev/usb/lp0 --ink-level<br />
<br />
====Mtink====<br />
<br />
Это монитор состояния принтера, который позволяет получить количество оставшихся чернил, печатать тестовые страницы, сбрасывать принтер и очищать сопла. Он использует интуитивный графический интерфейс пользователя. Пакет можно скачать [https://aur.archlinux.org/packages.php?ID=476 отсюда].<br />
<br />
= См. также =<br />
* [http://localhost:631/documentation.html Официальная документация CUPS documentation], ''локальная установка''<br />
* [http://www.cups.org/ Официальный Веб-сайт CUPS]<br />
* [http://www.linuxprinting.org/ Linux Printing], ''[http://www.linuxfoundation.org Linux Foundation]''<br />
* [http://www.gentoo.org/doc/en/printing-howto.xml Руководство по печати в Gentoo], ''[http://www.gentoo.org/doc/en Источники Документации Gentoo]''<br />
* [http://bbs.archlinux.org/ Форум пользователей Arch Linux]<br />
<br />
* [http://wiki.gotux.net/config/hp-printer Простая установка принтеров HP]</div>
Vadik
https://wiki.archlinux.org/index.php?title=Graphical_pacman_frontends_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=201050
Graphical pacman frontends (Русский)
2012-05-11T05:44:50Z
<p>Vadik: /* Неактивные программы */</p>
<hr />
<div>[[Category:Управление пакетами (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|Pacman GUI Frontends}}<br />
<br />
Здесь представлен список оболочек для [[pacman]]. В список включены полнофункциональные графические интерфейсы, информационные инструмены и различные уведомители для системного трея.Перечень програмного обеспечения разбит на категории в зависимости от использования Gtk или Qt.<br />
<br />
{{Warning|Ни одна из представленных ниже программ не поддерживается оффициальными разработчиками Arch Linux/Pacman.}}<br />
<br />
== Оболочки для Pacman ==<br />
=== X11 ===<br />
* {{App|1=PacmanXG4|2=Графическая оболочка для pacman. Не требует GTK и QT, только Хorg. Позволяет решать следующие задачи:<br />
:* Установка/удаление/обновление пакетов.<br />
:* Поиск пакетов / фильтр пакетов.<br />
:* Предоставление информации о пакетах, включая скриншоты.<br />
:* Откат пакетов (требуется утилита downgrade из AUR).<br />
:* Обновление базы данных пакетов, синхронизация зеркал.<br />
:* Обновление системы в один клик.<br />
:* Поддержка YAOURT (тестируется).<br />
:'''Скриншоты:''' http://almin-soft.nx0.ru/photo-cat-photo-cat-pacmanxg.html <br><br />
:'''Прямая ссылка на бинарник:''' http://almin-soft.nx0.ru/media/files/binaries/download.php?get=pacmanXG4.tar.bz2<br />
|3=http://almin-soft.nx0.ru/openiandifree/pacmanxg.html|4={{AUR|pacmanxg4-bin}}}}<br />
<br />
=== GNOME/GTK+ ===<br />
* {{App|Wakka|Основанный на gtk пакетный менеджер для Arch Linux, являющийся продолжением GtkPacman. Призван оптимизировать код и доработать программу для увеличения стабильности и расширяемости.<br />
:'''Скриншоты:''' http://mibloglinux.wordpress.com/2011/05/23/wakka-interfaz-grafica-para-pacman/<br />
|https://code.google.com/p/wakka-package-manager/|{{AUR|wakka}}}}<br />
<br />
* {{App|GNOME PackageKit|графическая оболочка для PackageKit - набору утилит для управления пакетами, поддерживающему различные пакетные менеджеры. Использует консольный пакетных менеджер alpm, и поддерживает следующий функционал:<br />
:* Установка и удаление пакетов из репозиториев.<br />
:* Периодическая синхронизация базы данных пакетов и запрос на обновление.<br />
:* Установка пакетов из архивов.<br />
:* Поиск пакетов по названию, описанию, категории или файлам.<br />
:* Отображение зависимостей пакетов, файлов и обратных зависимостей.<br />
:* Игнорирование с IgnorePkgs и "заморозка" с HoldPkgs.<br />
:* Показ дополнительных зависимостей, файлов .pacnew, и т.д.<br />
:Для изменения ключа для удаления с -Rc на -Rsc, следует в DConf установить ключь org.gnome.packagekit.enable-autoremove.<br />
:{{Tip|Вместо PulseAudio можно установить из AUR пакет {{AUR|gnome-settings-daemon-nopulse}}.}}<br />
|http://packagekit.org/|{{Pkg|gnome-packagekit}}}}<br />
<br />
=== KDE/Qt ===<br />
* {{App|1=KPackageKit/Apper|2=графическая оболочка для [http://www.packagekit.org/ PackageKit]. Интеграция с pacman осуществляется с пакетом {{Pkg|packagekit}}, получившего поддержку со стороны pacman. Из системных настроек KDE, с помощью данного графического инструмента, можно выполнить следующее:<br />
:* Установка/удаление/обновление пакетов.<br />
:* Поиск пакетов / фильтр пакетов.<br />
:* Предоставление информации о пакетах.<br />
:* Обновление базы данных пакетов.<br />
:* Выбор репозиториев для обновления.<br />
:* Автоматическое обновление базы данных (ежечасно, ежедневно и т.д.)<br />
:* Автоматическое обновление пакетов.<br />
:Несмотря на то, что pacman поддерживает PackageKit недавно, серьезных проблем замечено небыло, при этом обеспечивается простота в использовании и хорошая интеграция с KDE (и PolicyKit).<br />
:'''Скриншоты:''' http://kde-apps.org/content/show.php/Apper?content=84745<br />
|3=http://kde-apps.org/content/show.php/Apper?content=84745|4={{Pkg|apper}}}}<br />
<br />
* {{App|1=AppSet|2=современная и функциональная графическая оболочка для пакетных менеджеров. AppSet имеет следующие особенности:<br />
:* Сортировка программ по разделам (игры, оффис, мультимедиа, интернет и т.д.)<br />
:* Показ во встроенном веб-браузере домашних страниц выбранных пакетов.<br />
:* Отображение новостей.<br />
:* Обновление, установка и удаление пакетов.<br />
:* Иконка в трее для вывода информации о доступных обновлениях.<br />
:* Периодическое обновление базы данных<br />
:* Информирование о зависимостях (например, при попытке удаления пакета, который требуется другому пакету).<br />
:* Команда очистки кэша (освобождение дискового пространства).<br />
:* Умное определение программы для получения администраторских привилегий, т.е. используется установленная в системе kdesu, gksu или, в случае использования xterm, команда sudo).<br />
:* Поддержка AUR с помощью бэкэнда Packer.<br />
:AppSet зависит только от библиотеки Qt. Может использоваться в любом окружении. В настоящее время работает только в Archlinux только с pacman.<br />
:'''Скриншоты''' http://sourceforge.net/project/screenshots.php?group_id=376825<br />
|3=http://appset.sourceforge.net/|4={{AUR|appset-qt}}}}<br />
<br />
=== NCurses ===<br />
* {{App|1=pcurses|2=оболочка к пакетному менеджеру на curses, позволяет:<br />
:* фильтрация и поиск любых пакетов по регулярным выражениям и свойствам.<br />
:* настраиваемая цветовая кодировка.<br />
:* настраиваемая сортировка.<br />
:* выполнение внешних команд.<br />
:* поддержка пользовательских макросов и горячих клавиш.<br />
:'''Скриншоты''' https://bbs.archlinux.org/viewtopic.php?id=122749<br />
|3=https://github.com/schuay/pcurses|4={{AUR|pcurses}}}}<br />
<br />
== Браузер пакетов Pacman / AUR ==<br />
* {{App|1=PkgBrowser|2=приложение для поиска и просмотра пакетов для Arch, отображает подробную информацию о выбранных пакетах.<br />
:* Поиск и просмотр пакетов для Arch, которые находятся в AUR.<br />
:* Чисто информационное приложение, которое не может быть использовано для установки, удаления и обновления пакетов. <br />
:* По сути относится к CLI-у управления пакетами в pacman.<br />
:* Более подробную информацию по использованию можно получить в меню помощи.<br />
:'''Тема на форуме:''' https://bbs.archlinux.org/viewtopic.php?id=117297 <br><br />
|3=https://code.google.com/p/pkgbrowser/|4={{AUR|pkgbrowser}}}}<br />
<br />
* {{App|Pacinfo|приложение для просмотра установленных пакетов и показа такой информации как скриншоты, установленные файлы, дата установки и прочее. Написано на Mono/GTK#<br />
|https://code.google.com/p/pacinfo/|{{AUR|pacinfo}}}}<br />
<br />
== Вывод оповещений в системном трее ==<br />
* {{App|1=Aarchup|2=форк archup. Имеет те же возможности, что и archup, плюс некоторые дополнительные. Для поиска различий между ними изучите [https://bbs.archlinux.org/viewtopic.php?id=119129 changelog].<br />
:'''Скриншоты''': http://i.imgur.com/yTNvg.png<br />
|3=https://github.com/aericson/aarchup/|4={{AUR|aarchup}}}}<br />
<br />
* {{App|pacman-notifier|Написан на Ruby, использует Gtk. Отображает иконку в системном трее и, для новых пакетов, всплывающие уведомления (используется libnotify).<br />
:'''Скриншоты''': https://github.com/v01d/pacman-notifier/wiki<br />
|https://github.com/v01d/pacman-notifier/wiki|{{AUR|pacman-notifier}}}}<br />
<br />
* {{App|Pacupdate|маленькое приложение уведомляющее пользователя о доступности обновлений для Arch Linux. Если Pacupdate обнаружит, что доступны обновления - будет выведено уведомление в системном трее|https://code.google.com/p/pacupdate/|{{AUR|pacupdate-svn}}}}<br />
<br />
* {{App|1=Yapan (Yet Another Package mAnager Notifier)|2=написан на C++ и Qt. Поддерживает другие пакетные менеджеры, такие как clyde или yaourt, отображает значок в системном трее, и, при доступности обновлений, показывает соответствующее всплывающее уведомление.<br />
:'''Скриншоты''': https://bitbucket.org/otsug/yapan/wiki/Home<br />
:'''Тема на форуме''': https://bbs.archlinux.org/viewtopic.php?id=113078<br />
|3=https://bitbucket.org/otsug/yapan/wiki/Home|4={{AUR|yapan}}}}<br />
<br />
* {{App|1=ZenMan|2=оболочка для PacMan (уведомлялка в трее об обновлениях) для GTK/GNOME/zenity/libnotify.<br />
:'''Скриншоты''': http://show.harvie.cz/screenshots/zenman-screenshot-2.png<br />
|3=https://aur.archlinux.org/packages.php?ID=25948|4={{AUR|zenman}}}}<br />
<br />
* {{App|1=pkgnotify.sh|2=простой 14-ти строчный скрипт, показывающий количество доступных обновлений в заголовке окна dzen2, список обновлений - во вспомогательном окне. Зависит от dzen2, inotify-tools, package-query и, опционально, приложение для работы с AUR (по умолчанию yaourt).<br />
:'''Скриншоты''': http://andreasbwagner.tumblr.com/post/853471635/arch-linux-update-notifier-for-dzen2<br />
|3=http://pointfree.net/repo/?r=dzen2_scripts;a=headblob;f=/src/pkgnotify/pkgnotify.sh|4=pkgnotify}}<br />
<br />
* {{App|1=kalu|2=маленькое приложение на C, добавляет иконку в системный трей и выводит уведомления о новостях Arch Linux, обновлениях пакетов из репозиториев, обновлениях пакетов из AUR, и следит за обновлением самого AUR (обновления для неустановленных пакетов). Также имеет графический интерфейс для обновления системы.<br />
:'''Скриншоты''': http://mywaytoarch.tumblr.com/post/19350380240/keep-arch-linux-up-to-date-with-kalu<br />
:'''Тема на форуме''': https://bbs.archlinux.org/viewtopic.php?id=135773<br />
|3=https://bitbucket.org/jjacky/kalu|4={{AUR|kalu}}}}<br />
<br />
== Неактивные программы ==<br />
*[https://aur.archlinux.org/packages.php?ID=52039/ pacmanXG 2x series], графическая оболочка для Pacman и ''yaourt'', не зависящая от GTK или QT <br />
*[http://gtkpacman.berlios.de/ GtkPacman], оболочка на GTK<br />
*[http://guzuta.berlios.de/ Guzuta], оболочка на GTK<br />
*[http://chakra-linux.org/wiki/index.php/Shaman Shaman], GUI использующий библиотеку ''libalpm'' Pacman’а<br />
*[http://code.google.com/p/pacmon/ pacmon], графические всплывающие уведомления<br />
*[https://gna.org/projects/paku/ Paku], альтернативный GUI для Pacman<br />
*[http://www.kde-apps.org/content/show.php/YAPG+-+Yet+Another+Pacman+Gui+?content=60052 YAPG] список GUI на kde-apps.org<br />
*[http://sourceforge.net/projects/zenitypacgui/ zenity_pacgui], графическая оболочка Zenity для Pacman</div>
Vadik
https://wiki.archlinux.org/index.php?title=Improve_pacman_performance_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=200953
Improve pacman performance (Русский)
2012-05-10T18:00:13Z
<p>Vadik: </p>
<hr />
<div>[[Category:Русский]]<br />
{{i18n|Improve_Pacman_Performance}}<br />
<br />
= Увеличение скорости доступа к базе данных =<br />
<br />
Pacman хранит всю информацию о пакетаx в коллекции маленьких файлов, один для каждого пакета. Увеличение скорости доступа к базе данных уменьшает время работы задач, связанных с базой данных, например, поиск пакетов и решение зависимостей пакета.<br />
<br />
Самый безопасный и самый простой метод выполнить команду с правами root<br />
<br />
pacman-optimize && sync<br />
<br />
Будет выполнена попытка соединить все маленькие файлы в одном (физическом) местоположении на жестком диске так, чтобы головка жесткого диска не перемещалась по всему диску, обращаясь ко всем пакетам. Этот метод эффективен, но не наверняка. Это зависит от Вашей файловой системы, использования дискового пространства и фрагментации диска. В качестве более агрессивного варианта, перед оптимизацией базы данных, будет удаление из кэша всех неустановленных пакетов и неиспользуемых репозиториев:<br />
<br />
# pacman -Sc && pacman-optimize<br />
<br />
= Увеличение скорости загрузки =<br />
<br />
{{Note|Если у вас низкая скорость загрузки, убедитесь, что не используете зеркало ftp.archlinux.org ([http://www.archlinux.org/news/302/ новость с марта 2007 г.]), вместо него используйте другие зеркала из списка [[mirrors|зеркал]].}}<br />
<br />
Скорость Pacman'а при загрузке пакетов также можно улучшить, если использовать другое приложение для загрузки вместо встроенного в Pacman менеджера закачек.<br />
<br />
В любом случае, прежде чем делать какие-либо изменения, убедитесь, что используете самый свежий Pacman.<br />
<br />
pacman -Syu<br />
<br />
=== Использование wget ===<br />
<br />
Если Вам нужны более мощные настройки прокси, нежели те, которые предоставляет встроенный менеджер закачек [[pacman]]'а - использование {{pkg|wget}} может быть более удобным. <br />
<br />
Для того чтобы использовать {{ic|wget}}, сначала установите его с помощью команды {{ic|pacman -S wget}}, а затем отредактируйте {{ic|/etc/pacman.conf}}, приведя в секции {{ic|[options]}} строку '''XferCommand =''' к следующему виду:<br />
<br />
XferCommand = /usr/bin/wget -c --passive-ftp -c %u<br />
<br />
Вместо того чтобы размещать параметры {{ic|wget}} в файле {{ic|/etc/pacman.conf}}, Вы можете изменять непосредственно конфигурационный файл {{ic|wget}}(общесистемный файл {{ic|/etc/wgetrc}}, или пользовательские файлы {{ic|$HOME/.wgetrc}}.<br />
<br />
<br />
=== Использование aria2 ===<br />
<br />
[[aria2]] - легковесная утилита загрузки с возможностью докачки и сегментированной HTTP/HTTPS и FTP загрузки. [http://aria2.sourceforge.net/ aria2] - одновременно поддерживает несколько HTTP/HTTPS и FTP подключений к зеркалам Arch, это означает, что может увеличиться скорости загрузки файлов и поиска пакетов.<br />
<br />
{{Note|Включение aria2c в настройке XferCommand Pacman'а '''не''' приводит к параллельной закачке нескольких пакетов. Pacman вызывает XferCommand для одного пакета и ожидает завершения закачки перед вызовом для следующего. Для параллельной загрузки нескольких пакетов смотрите далее в разделе [[Improve_Pacman_Performance#Using_powerpill-light | powerpill-light]] section below.}}<br />
<br />
==== Установка ====<br />
<br />
Для загрузки и установки {{Pkg|aria2}} и зависимостей выполните:<br />
<br />
# pacman -Syu aria2<br />
<br />
==== Настройка ====<br />
<br />
Найдите в файле {{ic|/etc/pacman.conf}} секцию {{ic|[options]}} и измените следующий параметр:<br />
<br />
{{bc|1=XferCommand = /usr/bin/aria2c --allow-overwrite=true -c --file-allocation=none --log-level=error -m2 --max-connection-per-server=2 --max-file-not-found=5 --min-split-size=5M --no-conf --remote-time=true --summary-interval=60 -t5 -d / -o %o %u}}<br />
<br />
==== Подробнее об опциях ====<br />
<br />
; {{Ic|/usr/bin/aria2c}}: Полный путь к исполняемому файлу aria2.<br />
; {{Ic|1=--allow-overwrite=true}}: Перезапуск закачки если соответствующий файл не существует. (По умолчанию: false)<br />
; {{Ic|-c, --continue}}: Продолжить закачку частично загруженного файла если контрольный файл существует.<br />
; {{Ic|1=--file-allocation=none}}: Перед загрузкой заранее не выделять место под скачиваемый файл. (По умолчанию: prealloc) <b><sup>1</sup></b><br />
; {{Ic|1=--log-level=error}}: Установить уровень ведения журнал - только ошибки. (По умолчанию: debug)<br />
; {{Ic|1=-m2, --max-tries=2}}: Предпринимать не более 2-х попыток для загрузки из зеркала выбранного файла. (По умолчанию: 5)<br />
; {{Ic|1=--max-connection-per-server=2}}: Устанавливать с зеркалом не более 2-х соединений на каждый файл. (По умолчанию: 1)<br />
; {{Ic|1=--max-file-not-found=5}}: Если в течении 5-ти попыток не будет получен ни один байт - отключать принудительную загрузку. (По умолчанию: 0)<br />
; {{Ic|1=--min-split-size=5M}}: Разбивать файл, только если его размер превышает 2;5MB = 10MB. (По умолчанию: 20M)<br />
; {{Ic|--no-conf}}: Запрет использования файла {{ic|aria2.conf}} если он существует. (По умолчанию: {{ic|~/.aria2/aria2.conf}})<br />
; {{Ic|1=--remote-time=true}}: Использовать временные метки удаленного(-ых) файла(-ов) к локальному(-ым) файлу(-ам). (По умолчанию: false)<br />
; {{Ic|1=--summary-interval=60}}: Output download progress summary every 60 seconds. (По умолчанию: 60) <b><sup>2</sup></b><br />
; {{Ic|1=-t5, --timeout=5}}: Установка 5-ти секундного тайм-аута для зеркала после установления соединения. (По умолчанию: 60)<br />
; {{Ic|-d, --dir}}: Директорию для загруженных файлов брать из настроек [[pacman|pacman]].<br />
; {{Ic|-o, --output}}: Имя полученного файла из загруженного. <br />
; {{Ic|%o}}: Переменная предоставляющая локальные файлы согласно настройкам pacman.<br />
; {{Ic|%u}}: Переменная предоставляюща загруженные URL согласно настройкам pacman.<br />
<br />
==== Дополнительные примечания ====<br />
<br />
; <sup>1</sup> {{Ic|1=--file-allocation=falloc}}: Рекомендуется к использованию с такими файловыми системами как ext4 (с поддержкой экстентов), btrfs или xfs, в связи с почти мгновенным выделением мета под большие (GB) файлы. Не стоит использовать с традиционными файловыим системами аналогичными ext3, в связи с тем, что времени на выделение затрачивается практически столько же, сколько на блокировку процессом aria2 и на переход к закачке.<br />
<br />
; <sup>2</sup> {{Ic|1=--summary-interval=0}}: Подавляет процесс загрузки основной выходной информации и может улучшить общую производительность. Журналирование будет вестись согласно значению установленному в опции {{Ic|log-level}}.<br />
<br />
; <sup>3</sup> {{Ic|1=<nowiki>XferCommand = /usr/bin/printf 'Downloading ' && echo %u | awk -F/ '{printf $NF}' && printf '...' && /usr/bin/aria2c -q --allow-overwrite=true -c --file-allocation=none --log-level=error -m2 --max-connection-per-server=2 --max-file-not-found=5 --min-split-size=5M --no-conf --remote-time=true --summary-interval=0 -t5 -d / -o %o %u && echo ' Complete!'</nowiki>}}: Использование команды XferCommand в таком виде не так полезно, но зато дает больше подробной и удобночитаемой информации.<br />
<br />
=== Использование powerpill-light ===<br />
[http://xyne.archlinux.ca/projects/pacman2aria2/ pacman2aria2] предоставляет скрипт, называющийся {{aur|powerpill-light}}, который можно использовать в качестве частичной замены [[powerpill]]. И хотя это не полноценная обертка, как powerpill, но он поддерживает следующие возможности powerpill:<br />
<br />
* параллельную загрузку<br />
* сегментированную загрузку<br />
* поиск быстрых зеркал с помощью [[Reflector|Reflector]], для увеличения скорости загрузки<br />
<br />
Поэтому загрузка пакетов такая же быстрая, как и при использовании пакета {{pkg|powerpill}}.<br />
<br />
Пакет pacman2aria2 можно установить из [https://aur.archlinux.org/packages.php?ID=47913 AUR] и из [http://xyne.archlinux.ca/repos/ репозитория Xyne's].<br />
<br />
==== Использование ====<br />
Запускайте powerpill-light, аналогично синхронизации с помощью pacman, но не используя "-S". К примеру, для обновления системы вместо "pacman -Su", выполните<br />
<br />
# powerpill-light -u<br />
<br />
Для установки gnome, вместо "pacman -S gnome", выполните<br />
<br />
# powerpill-light gnome<br />
<br />
=== Использование airpac ===<br />
<br />
Вкратце, {{pkg|airpac}} является оболочкой {{pkg|aria2c}} для [[pacman]]. И если {{pkg|powerpill}} это интерфейс над pacman, то airpac это только загрузчик для pacman. Хотя с другой стороны, поскольку aria2c только скачивает файлы, все что касается непосредственно загрузки файлов - выполняется аналогично powerpill. Но через бакенд нельзя загружать несколько файлов одновременно, так как это делает powerpill.<br />
<br />
По сути, airpac это реализованный на [[Python]] скрипт {{pkg|pacget}}. Основное же отличие aria2c заключается в обработке вывода. airpac отображает только самую минимальную информацию, т.е. прогресс загрузки, хотя прогрессбар в настоящее время и не используется (возможен в ближайшем будущем). Помимо этого, airpac кэширует БД файлов таким образом, чтобы не загружать ее при каждом {{ic|pacman -Sy}}. С другой стороны, поскольку airpac не понимает параметров pacman, будет нарушено {{ic|pacman -Syy}}. В качестве обходного пути, для удаления кэшированных файлов {{ic|/var/lib/pacman/.airpac}} можно выполнить {{ic|pacman -Sc}}.<br />
<br />
Конфигурационный файл - {{ic|/etc/airpac.conf}}. На самом деле этот файл является конфигурационным для aria2c. Поэтому у пользователя есть возможность настроить airpac аналогично aria2c-у, без вмешательства в код airpac'а. Для получения дополнительной информации по настройкам - обратитесь к справочной документации aria2c.<br />
<br />
По умолчанию airpac использует настройку ''Server Performance Profile'' из aria2c. Файл статистики расположен в {{ic|/var/lib/airpac.stats}}. URI, по умолчанию, включено в ''adaptive''.<br />
<br />
Для использования измените в {{ic|/etc/pacman.conf}}:<br />
XferCommand = /usr/bin/airpac %u %o<br />
<br />
=== Скрипт зеркалирования - pacget (aria2) ===<br />
<br />
Благодаря этому скрипту пользователи с широкополосным доступом могут значительно повысить скорость загрузки. В качестве зеркал для aria2, используются зеркала из {{ic|/etc/pacman.d/mirrorlist}}. При этом aria2 загружает пакеты одновременно с нескольких зеркал, что дает хороший прирост в скорости загрузки пакетов.<br />
<br />
{{Note|Вам понадобится добавить 'exec' перед /usr/bin/pacget в XferCommand. Это необходимо для того, чтоб при завершении pacget или aria2 (с id процесса pacget), также прекращал работу и pacman. }}<br />
<br />
{{Warning|Использование зеркал которые не синхронизировались или не обновились может вызвать проблемы. Поэтому, для создания списка ''быстрых'' и ''свежих'' зеркал воспользуйтесь скриптом [[Reflector]]. Так же, ftp.archlinux.org допускает до двух IP. Вам нужно будет выбрать только один и указать IP адресс в {{ic|/etc/hosts}}.}}<br />
<br />
{{hc|/usr/bin/pacget|<nowiki><br />
#!/bin/bash<br />
<br />
msg() {<br />
echo ""<br />
echo -e " \033[1;34m->\033[1;0m \033[1;1m${1}\033[1;0m" >&2<br />
}<br />
<br />
error() {<br />
echo -e "\033[1;31m==> ERROR:\033[1;0m \033[1;1m$1\033[1;0m" >&2<br />
}<br />
<br />
CONF=/etc/pacget.conf<br />
STATS=/etc/pacget.stats<br />
ARIA2=$(which aria2c 2> /dev/null)<br />
<br />
# ----- do some checks first -----<br />
if [ ! -x "$ARIA2" ]; then<br />
error "aria2c was not found or isn't executable."<br />
exit 1<br />
fi<br />
<br />
if [ $# -ne 2 ]; then<br />
error "Incorrect number of arguments"<br />
exit 1<br />
fi<br />
<br />
filename=$(basename $1)<br />
server=${1%/$filename}<br />
arch=$(grep ^Architecture /etc/pacman.conf | cut -d '=' -f2 | sed 's/ //g')<br />
if [[ $arch = "auto" ]]; then<br />
arch=$(uname -m)<br />
fi<br />
# Determine which repo is being used<br />
repo=$(awk -F'/' '$(NF-2)~/^(community|core|extra|testing|comunity-testing|multilib)$/{print $(NF-2)}' <<< $server)<br />
[ -z $repo ] && repo="custom"<br />
<br />
# For db files, or when using a custom repo (which most likely doesn't have any mirror),<br />
# use only the URL passed by pacman; Otherwise, extract the list of servers (from the include file of the repo) to download from<br />
url=$1<br />
if ! [[ $filename = *.db || $repo = "custom" ]]; then<br />
mirrorlist=$(awk -F' *= *' '$0~"^\\["r"\\]",/Include *= */{l=$2} END{print l}' r=$repo /etc/pacman.conf)<br />
if [ -n mirrorlist ]; then<br />
num_conn=$(grep ^split $CONF | cut -d'=' -f2)<br />
url=$(sed -r '/^Server *= */!d; s/Server *= *//; s/\$repo'"/$repo/"'; s/\$arch'"/$arch/; s/$/\/$filename/" $mirrorlist | head -n $(($num_conn *2)) )<br />
fi<br />
fi<br />
<br />
msg "Downloading $filename"<br />
cd /var/cache/pacman/pkg/<br />
<br />
touch $STATS<br />
<br />
$ARIA2 --conf-path=$CONF --max-tries=1 --max-file-not-found=5 \<br />
--uri-selector=adaptive --server-stat-if=$STATS --server-stat-of=$STATS \<br />
--allow-overwrite=true --remote-time=true --log-level=error --summary-interval=0 \<br />
$url --out=${filename}.pacget && [ ! -f ${filename}.pacget.aria2 ] && mv ${filename}.pacget $2 && chmod 644 $2<br />
<br />
exit $?<br />
</nowiki>}}<br />
<br />
{{hc|/etc/pacget.conf|<nowiki><br />
# Файл логов<br />
log=/var/log/pacget.log<br />
# Количество серверов для загрузки<br />
split=5<br />
# Минимальный размер файла, который допускается дробить, т.е. загружать в несколько потоков (по умолчанию 20M)<br />
min-split-size=1M<br />
# Максимальная скорость загрузки (0 = без ограничений)<br />
max-download-limit=0<br />
# Минимальная скорость загрузки (0 = не важна)<br />
lowest-speed-limit=0<br />
# Время ожидания сервера<br />
timeout=5<br />
# 'none' или 'falloc'<br />
file-allocation=none<br />
</nowiki>}}<br />
<br />
Сохраните этот скрипт как /usr/bin/pacget.<br />
# chmod 755 /usr/bin/pacget<br />
И сделайте его исполняемым<br />
<br />
В файле {{ic|/etc/pacman.conf}}, секция [options], приведите параметр к следующему виду:<br />
XferCommand = exec /usr/bin/pacget %u %o<br />
<br />
{{Note|Если в вашем списке зеркал (/etc/pacman.d/*) сервер ftp.archlinux.org указан первым - то могут возникнуть проблемы связанные с тем, что зеркала не успевают синхронизироваться. Поэтому выберите зеркала которые уже синхронизировались, или которые вам больше подходят и переместите их в начало списка зеркал. Таким образом, даже если зеркала еще не успели синхронизироваться, закачка не будет вестись только с ftp.archlinux.org. Для облегчения поиска нужных серверов воспользуйтесь скриптом rankmirrors.}}<br />
<br />
=== Использование других приложений ===<br />
<br />
C Pacman можно использовать и другие приложения для загрузки файлов. Вот некоторые приложения и связанные с ними настройки XferCommand:<br />
<br />
* {{ic|snarf}}: {{ic|1=XferCommand = /usr/bin/snarf -N %u}}<br />
* {{ic|lftp}}: {{ic|1=XferCommand = /usr/bin/lftp -c pget %u}}<br />
* {{ic|axel}}: {{ic|1=XferCommand = /usr/bin/axel -n 2 -v -a -o %o %u}}<br />
<br />
= Выбор самого быстрого зеркала =<br />
<br />
При загрузке пакетов pacman использует зеркала в том порядке, в котором они записаны в {{ic|/etc/pacman.d/mirrorlist}}. Однако может оказаться, что в начале списка расположены не самые быстрые зеркала.<br />
<br />
{{Note|Написанное выше не касается [[Improve_Pacman_Performance#Using_powerpill-light | powerpill-light]], поскольку пакеты скачиваются с нескольких зеркал одновременно, соответственно - повышается общая скорость закачки. Таким образом, скорость для каждого отдельного соединения уже не имеет такого значения, а для powerpill-light можно задать минимальную скорость подключения.}}<br />
<br />
== Выбор локального зеркала ==<br />
Проще всего отредактировать файл mirrorlist, поместив локальное зеркало в начало списка. pacman далее будет использовать это зеркало в качестве предпочитаемого.<br />
<br />
Иначе, можно отредактировать pacman.conf, добавив локальное зеркало перед строкой, которая указывает на файл mirrorlist, т.е. там, где написано "add your preferred servers here". Это более безопасно, если все репозитории находятся на одном сервере.<br />
<br />
== Использование rankmirrors ==<br />
<br />
Для оценки качества связи и скорости доступа к зеркалам, которые использует pacman, можно воспользоваться [[Mirrors#List_by_speed|rankmirrors]].<br />
<br />
== Использование Reflector ==<br />
<br />
Для получения пользовательского списка зеркал, отсортированного по скорости загрузки, - воспользуйтесь [[Reflector|Reflector]].<br />
<br />
== После смены зеркал ==<br />
<br />
После смены зеркала необходимо обновить базу данных pacman. Для принудительной синхронизации зеркал, даже если было сообщение об актуальности базы данных, используйте спаренный параметр '''y'''.<br />
<br />
# pacman -Syy<br />
<br />
= Совместный доступ к пакетам по локальной сети =<br />
<br />
Если вам повезло и в вашей локальной сети имеется несколько компьютеров с Arch, то можно огранизовать совместный доступ с скачанным пакетам и, таким образом, значительно уменьшить время загрузки пакетов. Но имейте ввиду, что нужно использовать пакеты соответствующей архитектуры (например только i686 или x86_64) иначе может возникнуть множество проблем.<br />
<br />
Для получения дополнительной информации прочтите [[Pacman_Tips#Network_shared_pacman_cache]].</div>
Vadik
https://wiki.archlinux.org/index.php?title=CUPS_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=200845
CUPS (Русский)
2012-05-09T10:53:12Z
<p>Vadik: /* hp-toolbox выдает ошибку "Unable to communicate with device" ("Невозможно соединиться с устройством") */</p>
<hr />
<div>[[Category:Принтеры (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|CUPS}}<br />
{{Article summary start|Описание}}<br />
{{Article summary text|Установка и настройка CUPS}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary wiki|CUPS printer sharing}}<br />
{{Article summary wiki|CUPS printer-specific problems}}<br />
{{Article summary wiki|Samba}}<br />
{{Article summary end}}<br />
<br />
:"''Common UNIX Printing System ([[Wikipedia:CUPS|CUPS]], общая UNIX система печати) - это кроссплатформенное решение для печати для всех UNIX систем. Оно основано на "Internet Printing Protocol" (IPP, интернет-протокол печати) и предоставляет полный спектр возможностей для печати для большинства Postscript и растровых принтеров. CUPS распространяется под GNU GPL....''"<br />
Хотя существуют другие пакеты печати, такие как LPRNG, CUPS более популярен и довольно прост в использовании. Это система печати по умолчанию как в Arch Linux, так и во многих других Linux-дистрибутивах.<br />
<br />
<br />
= Установка =<br />
<br />
Вам скорее всего потребуются пакеты {{Pkg|cups}}, {{Pkg|ghostscript}} и {{Pkg|gsfonts}}. [[pacman|Установить]] их можно из [[Official repositories|оффициального репозитория]].<br />
<br />
Если стандартный cups не работает, то можно попробовать установить пакет {{AUR|cups-usblp}}, находящийся в [[AUR]].<br />
<br />
* '''cups''' - собственно пакет CUPS<br />
* '''ghostscript''' - интерпретатор для языка Postscript<br />
* '''gsfonts''' - стандартные Type1 шрифты GhostScript<br />
* '''hpoj''' - при использовании HP Officejet, во избежание проблем, установите этот пакет согласно инструкциям. Почитайте [http://answers.launchpad.net/hplip/+question/133425 обсуждение на launchpad/hplip] для получения дополнительной информации.<br />
<br />
<br />
Если ваша система подключена к сетевому принтеру с использованием протокола samba, или система является сервером печати для Windows клиентов - установите {{Pkg|samba}}.<br />
<br />
===Драйвера принтеров===<br />
Некоторые из пакетов с драйверами для принтеров, зависит от используемого вами принтера. Если не уверены, установите gutenprint.<br />
<br />
* '''{{Pkg|gutenprint}}''' - Набор высококачественных драйверов для принтеров Canon, Epson, Lexmark, Sony, Olympus и PCL использующихся с GhostSscript, CUPS, Foomatic и [[GIMP]].<br />
* '''{{Pkg|foomatic-db}}, {{Pkg|foomatic-db-engine}}, {{Pkg|foomatic-db-nonfree}} и {{Pkg|foomatic-filters}}''' - Foomatic - это система под управлением базы данных для интеграции открытых драйверов для принтера с обычными спулерами под Unix. Установка foomatic-filters должна разрешить ваши проблемы, если в error.log от CUPS будут записи: "stopped with status 22!"<br />
* '''{{AUR|foo2zjs}}''' - драйвер для принтеров использующих протокол ZjStream, например таких как HP Laserjet 1018. Дополнительная информация [http://foo2zjs.rkkda.com здесь]. Для использования Foo2zsj - установите {{AUR|foo2zjs}}.<br />
* '''{{Pkg|hplip}}''' - HP GNU/Linux драйвер. Обеспечивает поддержку DeskJet, OfficeJet, Photosmart, Business Inkjet и других принтеров моделей LaserJet, a также ряд принтеров Brother.<br />
* '''{{Pkg|splix}}''' - драйвера Samsung для принтеров SPL (Samsung Printer Language). (для USB принтеров возможно понадобится пакет {{AUR|cups-usblp}} доступный в [[AUR]])<br />
* '''{{AUR|ufr2}}''' - Canon UFR2 драйвер, обеспечивающий поддержку принтеров серии LBP, iR и MF. Пакет доступен в [[AUR]]. <br />
* '''{{Pkg|cups-pdf}}''' - пакет, позволяющий настроить виртуальный PDF принтер, который будет создавать PDF из всего, что будет отправлено на принтер.<br />
<br />
Если вы не уверены в работоспособности драйвера для вашего принтера или он не работает - то, возможно, стоит установить все доступные драйверы, поскольку для вашей модели принтера может подойти драйвер от другого производителя. Например, для Brother HL-2140 необходимо установить драйвер hplip.<br />
<br />
====Загрузка PPD для принтера====<br />
<br />
Так как CUPS в стандартной установке уже содержит множество PPD (Postscript Printer Description) файлов, и в зависимости от вашего принтера, этот пункт является необязательным и может быть пропущен. Более того, в пакетах <i>foomatic-filters</i>, <i>gimp-print</i> и <i>hplip</i> уже имеется большое количество PPD файлов, которые будут автоматически определены CUPS.<br />
<br />
Вот объяснение с сайта Linux Printing того, что такое PPD файл:<br />
:"''Для каждого PostScript принтера производитель предоставляет PPD файл, содержащий всю уникальную информацию об этой модели принтера: основные возможности принтера (цветной он или нет, шрифты, уровень PostScript и т. д.) и особенно настройки, которые может изменять пользователь, такие как размер бумаги, разрешение печати и т. д.''"<br />
<br />
Если в CUPS для вашего принтера отсутствует нужный PPD файл, то:<br />
*Поищите пакеты для вашего принтера/производителя в [[AUR]].<br />
*Посетите [http://www.openprinting.org/printers базу данных OpenPrinting] и выберите своего производителя и модель принтера.<br />
*Поищите драйверы под GNU/Linux на сайте производителя.<br />
<br />
<br />
{{Note|Поместите PPD файлы в {{ic|/usr/share/cups/model/}}}}<br />
<br />
= Настройка CUPS =<br />
Итак, после установки CUPS, у вас есть множество способов его настройки. Вы всегда можете использовать старую добрую командную строку. Некоторые DE, такие как Gnome и KDE, предоставляют удобные программы, которые могут вам помочь в управлении принтерами. Однако, для того чтобы сделать этот процесс максимально доступным обыкновенному пользователю, мы будем использовать web-интерфейс, предоставляемый CUPS.<br />
<br />
Если планируется подключение не к локальному, а к сетевому принтеру, то, возможно, вначале стоит почитать о настройке [[CUPS printer sharing|общего доступа к принтерам в CUPS]]. Настройка общего доступа к принтерам внутри GNU/Linux довольно проста и имеет малое количество опций, а вот организация общего доступа к принтерам между Windows и GNU/Linux является немного более сложной.<br />
<br />
=== Модули ядра ===<br />
<br />
Перед использованием веб-интерфейса CUPS, вам понадобится загрузить соответствующие модули ядра. Далее описаны шаги, взятые из руководства по установке принтера в Gentoo.<br />
<br />
Данный раздел может понадобиться в зависимости от используемого ядра. После подключения принтера нужный модуль ядра может быть загружен автоматически. Воспользуйтесь командой {{ic|tail}} (описана далее) для того, чтобы определить обнаружен ли принтер. Для просмотра загруженных модулей ядра также можно воспользоваться утилитой {{ic|lsmod}}.<br />
<br />
==== USB-принтеры ====<br />
Для использования USB-принтера может потребоваться внести в черный список модуль {{ic|usblp}}. Учтите, что насчет добавления {{ic|usblp}} в черный список имеется некоторая [http://bbs.archlinux.org/viewtopic.php?pid=660601 неопределенность], так как некоторые USB-принтеры, в частности некоторые серии принтеров Canon и Epson, не определяются без этого модуля. Несколько пользователей принтеров Samsung, после добавления в черный список модуля {{ic|usblp}}, сообщили о проблемах с {{ic|cups}}, в качестве решения предлагается повторное включение модуля {{ic|usblp}} и установка из [[AUR]] пакета {{ic|cups-usblp}} вместо стандартного пакета {{ic|cups}} (https://bbs.archlinux.org/viewtopic.php?pid=778104). С февраля 2012, ранее работавший с cups-usblp USB-принтер Samsung ML2010, работает с cups и внесением в черный список usblp.<br />
<br />
Добавление модуля в черный список:<br />
<br />
{{hc|/etc/modprobe.d/blacklist.conf|blacklist usblp}}<br />
<br />
либо создав в {{ic|/etc/modprobe.d/}} свой файл, например {{ic|usblp_blacklist.conf}}, со следующим содержимым:<br />
<br />
{{hc|/etc/modprobe.d/usblp_blacklist.conf|blacklist usblp}}<br />
<br />
При использовании ядра собранного самостоятельно, возможно придется вручную загрузить модуль {{ic|usbcore}}:<br />
# modprobe usbcore<br />
<br />
После загрузки всех необходимых модулей - включите принтер и проверьте обнаружен ли он ядром, для этого выполните следующее:<br />
# tail /var/log/messages.log<br />
или<br />
# dmesg<br />
<br />
При использовании {{ic|usblp}}, сообщение об обнаружении принтера будет выглядеть примерно так:<br />
Feb 19 20:17:11 kernel: printer.c: usblp0: USB Bidirectional<br />
printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E<br />
Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920<br />
Feb 19 20:17:11 kernel: printer.c: v0.13: USB Printer Device Class driver<br />
<br />
Если {{ic|usblp}} находится в черном списке, то будет выведено примерно следующее:<br />
usb 3-2: new full speed USB device using uhci_hcd and address 3<br />
usb 3-2: configuration #1 chosen from 1 choice<br />
<br />
==== Принтеры с параллельным портом ====<br />
Если вы желаете использовать принтер с параллельным портом, настройка в общем-то такая же, за исключением модулей:<br />
<br />
# modprobe lp<br />
# modprobe parport<br />
# modprobe parport_pc<br />
<br />
Еще раз проверьте настройки выполнив команду:<br />
# tail /var/log/messages.log<br />
Должно быть показано что-то вроде этого:<br />
lp0: using parport0 (polling)<br />
<br />
При использовании адаптера с USB на параллельный порт, CUPS не сможет обнаружить принтер. В качестве обходного пути - добавьте принтер используя другие типы соединений, а затем измените DeviceID в файле {{ic|/etc/cups/printers.conf}}:<br />
DeviceID = parallel:/dev/usb/lp0<br />
<br />
==== Автозагрузка ====<br />
Возможно, вам будет удобнее если соответствующий модуль будет загружен при старте системы. Для этого откройте в текстовом редакторе файл {{ic|/etc/[[rc.conf]]}}, и добавьте нужный модуль в строку {{ic|1=MODULES=()}}. Например, так:<br />
MODULES=(!usbserial scsi_mod sd_mod snd-ymfpci snd-pcm-oss '''lp parport parport_pc''' ide-scsi)<br />
<br />
===Демон CUPS===<br />
<br />
После установки соответствующих модулей ядра, можно приступать к [[Daemon#Performing daemon actions manually|запуску демона CUPS]]. Для автоматического запуска демона при старте системы следует добавить cupsd в [[daemons#Starting on Boot|строку DAEMONS]].<br />
<br />
=== Web-интерфейс и средства управления ===<br />
<br />
После запуска демона откройте браузер и зайдите на: http://localhost:631 (''Строку '''localhost''', возможно, придется заменить на имя хоста из'' {{ic|/etc/hosts}}).<br />
<br />
Теперь для добавления принтера можно использовать различные мастера. Для запуска обыкновенной процедуры установки кликните ''Добавление принтеров и групп'', затем ''Добавить принтер''. При запросе имени пользователя и пароля нужно будет войти в качестве root. Далее будет представлен список устройств для выбора. Фактическое имя принтера отображается рядом с меткой ( например, USB-принтеры напротив ''USB Printer #1''). Принтеру можно присваивать любое имя, аналогично для пунктов 'Расположение' и 'Описание'. После выбора соответствующего драйвера настройки будут окончены.<br />
<br />
<br />
Убедитесь в правильности настроек, нажав на кнопку ''Print Test Page'' (''Печать тестовой страницы'') в выпадающем меню ''Maintenance'' (''Обслуживание''). Если принтер не печатает, но вы уверены в правильности всех настроек, попытайтесь сменить драйвер принтера на другой.<br />
<br />
{{Tip|Ознакомьтесь с другими программами в разделе [[#Альтернативные интерфейсы CUPS]].}}<br />
{{Note|При установке USB-принтер должен отображаться в списке устройств на странице ''Добавить принтер''. Если будет доступен только вариант "SCSI printer", то это означает, что CUPS не смог распознать ваш принтер.}}<br />
<br />
==== Администрирование CUPS ====<br />
<br />
При администрировании принтера через веб-интерфейс (например для: добавления или удаления принтеров, остановки заданий печати, и т.д) понадобятся имя пользователя и пароль. Пользователем по-умолчанию может быть пользователь из группы ''sys'' или root (для изменения измените значение в строке ''SystemGroup'' файла {{ic|/etc/cups/cupsd.conf}}). <br />
<br />
При заблокированной учетной записи root (т.е. используя sudo) будет невозможно войти в веб-интерфейс управления CUPS с именем пользователя по умолчанию и его паролем. В этом случае придерживайтесь [http://www.cups.org/articles.php?L237+T+Qprintadmin инструкций] из CUPS FAQ. Дополнительно прочтите [http://bbs.archlinux.org/viewtopic.php?id=35567 это сообщение].<br />
<br />
====Удаленный доступ к веб-интерфейсу====<br />
По умолчанию, доступ к веб-интерфейсу CUPS разрешен только ''localhost''; т.е. компьютеру на котором он установлен. Для разрешения удаленного доступа нужно внести следующие изменения в файл {{ic|/etc/cups/cupsd.conf}}. Замените строку:<br />
Listen localhost:631<br />
на строку<br />
Port 631<br />
для того, чтобы CUPS мог слушать входящие запросы.<br />
<br />
Можно предоставить три уровня доступа:<br />
<Location /> #доступ к серверу<br />
<Location /admin> #доступ к странице администрирования<br />
<Location /admin/conf> #доступ к конфигурационным файлам<br />
<br />
Для разрешения удаленного доступа к одному из уровней, добавьте параметр {{ic|Allow}} в секцию соответствующую выбранному уровню. Параметр {{ic|Allow}} может принимать одно или несколько из перечисленных ниже значений:<br />
Allow all<br />
Allow host.domain.com<br />
Allow *.domain.com<br />
Allow ip-address<br />
Allow ip-address/netmask<br />
<br />
Параметр также может быть использован для запрета. Например, если нужно дать полный доступ всем хостам подсети 192.168.1.0/255.255.255.0, файл {{ic|/etc/cups/cupsd.conf}} должен содержать следующее:<br />
# Ограничение доступа к серверу...<br />
# По умолчанию возможны только локальные подключения<br />
<Location /><br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
# Ограничение доступа к странице администрирования...<br />
<Location /admin><br />
# Encryption disabled by default<br />
#Encryption Required<br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
# Ограничение доступа к конфигурационным файлам...<br />
<Location /admin/conf><br />
AuthType Basic<br />
Require user @SYSTEM<br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
Также вам потребуется добавить:<br />
<br />
DefaultEncryption Never<br />
<br />
Для того, чтоб избежать получения ошибки: 426 - Upgrade Required when using the CUPS web interface from a remote machine.<br />
<br />
= Устранение проблем =<br />
<br />
Наилучший способ борьбы с неисправностями - это выставить 'LogLevel' в файле {{ic|/etc/cups/cupsd.conf}} в:<br />
LogLevel debug<br />
<br />
А потом посмотреть вывод из файла {{ic|/var/log/cups/error_log}} например так:<br />
# tail -n 100 -f /var/log/cups/error_log<br />
<br />
Символы слева от вывода означают следующее:<br />
*D=Debug (отладка)<br />
*E=Error (ошибка)<br />
*I=Information (информация)<br />
*И так далее<br />
<br />
Следующие файлы также могут быть полезны:<br />
*{{ic|/var/log/cups/page_log}} - каждый раз при успешной печати, пишет новую запись<br />
*{{ic|/var/log/cups/access_log}} - записывает всю активность на cupsd http1.1 сервере<br />
<br />
Также, если вы хотите решить свои проблемы, важно понимать, как вообще работает CUPS. Вот краткая информация об этом:<br />
# Когда вы жмёте 'печать' приложение отправляет .ps-файл (PostScript, язык-скрипт, который описывает, как выглядит страница) в систему CUPS (так происходит в большинстве программ).<br />
# CUPS смотрит на PPD-файл (файл описания принтера) и находит, фильтры которые ему нужно использовать для преобразования .ps-файла в файл, который понимает ваш принтер (например, PJL,PCL). Обычно для этого ему требуется ghostscript.<br />
# GhostScript принимает ввод и решает, какие фильтры ему использовать, потом применяет их и преобразовывает .ps-файл в формат, который понимает принтер.<br />
# Затем файл передается бэкенду. Например, если у вас принтер подключен к usb порту, то используется usb бэкенд<br />
<br />
===Проблемы в результате обновления===<br />
''Проблемы возникшие после обновления CUPS и сопутствующего ему набора программ''<br />
<br />
====CUPS останавливается====<br />
Существует вероятность, что для правильной работы в обновленной версии понадобится новый файл конфигурации. Например, получение сообщения "404 - page not found" при попытке входа в панель управления CUPS через localhost:631.<br />
<br />
Для того, чтобы воспользоваться новым конфигом, скопируйте {{ic|/etc/cups/cupsd.conf.default}} в {{ic|/etc/cups/cupsd.conf}} (при необходимости сделайте резервную копию старого конфига):<br />
# cp /etc/cups/cupsd.conf.default /etc/cups/cupsd.conf<br />
и, чтобы новые настройки вступили в силу, перезапустите CUPS.<br />
<br />
====Ошибка gnutls====<br />
При получении следующей ошибки:<br />
/usr/sbin/cupsd: error while loading shared libraries: libgnutls.so.13: cannot open shared object file: No such file or directory<br />
следует обновить gnutls:<br />
# pacman -S gnutls<br />
<br />
После обновления в {{ic|/etc/cups}} появится файл {{ic|cupsd.conf.pacnew}}. Это стандартный конфигурационный файл. Сравните его со своим конфигурационным файлом и, при необходимости, добавьте новые опции.<br />
<br />
====Для всех заданий - "остановлено" ("stopped")====<br />
Если для всех отправленных на печать заданий установился статус "остановлено" ("stopped"), - удалите принтер и установите его заново.<br />
Для этого войдите в [http://localhost:631 веб-интерфейс CUPS], перейдите Принтеры > Удалить Принтер.<br />
<br />
Для проверки настроек принтера перейдите во вкладку ''Принтеры'', затем ''Администрирование''. В выпадающем списке кликните 'Изменить принтер', перейдите к следующей странице (ам), и так далее.<br />
<br />
====Для всех заданий - "Принтер не отвечает" ("The printer is not responding")====<br />
Для сетевых принтеров, поскольку CUPS подключается через URI, необходимо убедиться, что в DNS настроен доступ к принтерам по IP. Например, если принтер подключен следующим образом:<br />
lpd://BRN_020554/BINARY_P1<br />
то имени хоста 'BRN_020554' должны соответствовать IP принтеров, управляемых сервером CUPS.<br />
<br />
====Версия PPD не совместима с gutenprint====<br />
Запустите:<br />
# /usr/sbin/cups-genppdupdate<br />
<br />
И перезагрузите CUPS (будет выведено соответствующее сообщение после установки gutenprint).<br />
<br />
===USB-принтеры под CUPS 1.4.x===<br />
Новый CUPS 1.4.x принес множество изменений:<br />
<br />
====Конфигурационный файл====<br />
Изменился синтаксис конфигурационного файла cupsd.conf. Начните с нового конфигурационного фала {{ic|cupsd.conf}}, созданного из {{ic|/etc/cups/cupsd.conf.default}}.<br />
<br />
====Занесение в черный список usblp====<br />
Теперь CUPS, вместо генерирования устройств /dev/usb/lpX с помощью usblp, использует устройства libusb и USB-принтеры (из /dev/bus/usb/). Для того, чтобы заработали USB-принтеры - необходимо выключить модуль usblp.<br />
Выключить можно либо добавив в {{ic|/etc/modprobe.d/modprobe.conf}}:<br />
<br />
{{hc|/etc/modprobe.d/modprobe.conf|blacklist usblp}}<br />
<br />
либо создав в {{ic|/etc/modprobe.d/}} свой файл, например {{ic|usblp_blacklist.conf}}, со следующим содержимым:<br />
<br />
{{hc|/etc/modprobe.d/usblp_blacklist.conf|blacklist usblp}}<br />
<br />
Некоторым пользователям, возможно, прийдется переустановить принтер.<br />
<br />
====Определение устройства====<br />
В дополнение к отключению загрузки usblp, CUPS могут понадобится права на файл устройства USB-принтера - root:lp, и должны быть 660. Например.<br />
$ ls -l /dev/bus/usb/003/002<br />
crw-rw---- 1 root lp 189, 257 20. Okt 10:32 /dev/bus/usb/003/002<br />
<br />
Этого можно добиться добавлением двумя правилами udev в {{ic|/lib/udev/rules.d/50-udev-default.rules}}:<br />
# hplip and cups 1.4+ use raw USB devices, so permissions should be similar to<br />
# the ones from the old usblp kernel module<br />
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="", IMPORT{program}="usb_id --export %p"<br />
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}==":0701*:", GROUP="lp", MODE="660"<br />
<br />
Тем не менее, для некоторых устройств, например, многофункциональных устройств принтер/сканер, эти правила либо не используются, либо перекрываются правилами пакета 'sane'. В этом случае нужно будет добавлять пользовательские правила udev. Смотри далее.<br />
<br />
=====Устранение неполадок при определении устройств=====<br />
Узнаем файл устройства принтера и права доступа к нему: <br />
$ lsusb<br />
...<br />
Bus 003 Device 002: ID 04b8:0841 Seiko Epson Corp.<br />
$ ls -l /dev/bus/usb/003/002<br />
crw-rw---- 1 root lp 189, 257 20. Okt 10:32 /dev/bus/usb/003/002<br />
<br />
Если права доступа не root:lp 660, придется создать пользовательское правило [[udev]] для этого устройства, пример<br />
{{hc|cat /etc/udev/rules.d/10-usbprinter.rules|<nowiki>ATTR{idVendor}=="04b8", ATTR{idProduct}=="0841", MODE:="0660", GROUP:="lp"</nowiki>}}<br />
<br />
Для многофункциональных устройств (принтер+сканер), для того, чтоб [[sane]] определил его корректно:<br />
{{hc|cat /etc/udev/rules.d/10-usbprinter.rules|<nowiki>ATTR{idVendor}=="04b8", ATTR{idProduct}=="0841", MODE:="0660", GROUP:="lp", ENV{libsane_matched}:="yes"</nowiki>}}<br />
<br />
Обратите внимание на то, что значения idVendor и idProduct взяты из вывода команды lsusb показанного выше.<br><br />
Также обратите внимание - некоторым принтерам понадобятся права доступа 666.<br />
<br />
=====Загрузка прошивки (firmware)=====<br />
<br />
Для некоторых принтеров и драйверов понадобится загрузка прошивки принтера (таким как, использующие foo2zjs, принтеры HP LaserJet 10xx) и сделать это будет нужно путем записи прямо на устройство lp, такие функциональные возможности предоставляет usblp. Для обхода этого ограничения нужно будет загрузить модуль usblp при загрузке прошивки, а затем, для нормальной работы CUPS, удалить модуль. Для ручной загрузки модуля выполните<br />
$ modprobe usblp<br />
загрузка прошивки, затем:<br />
$ rmmod usblp<br />
Также можно обойтись без добавления usblp в черный список, добавьте "rmmod usblp" в {{ic|/etc/rc.local}}, при этом прошивка будет загружена при старте системы, а затем, при чтении {{ic|rc.local}}, модуль usblp будет выгружен.<br />
<br />
В случае если принтер окажется подключенным или на нем будет включено питание уже на работающей системе - файл {{ic|/etc/rc.local}} не будет использован и модуль usblp останется подгруженным. Обойти это можно изменив {{ic|/etc/udev/rules.d/11-hpj10xx.rules}}, созданный для foo2zjs, таким образом чтоб при добавлении устройства выполнялось нужное событие, например: 15 секунд для загрузки прошивки и автоматического удаления usblp. Следующий пример для HP LaserJet 1018. Для других моделей значения ATTRS{idProduct} должны быть изменены, соответственно модели принтера.<br />
<br />
Найдите в {{ic|/etc/udev/rules.d/11-hpj10xx.rules}} строку соответствующую вашему принтеру:<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/sbin/foo2zjs-loadfw 1018 $tempnode"<br />
Добавьте после нее следующие строки, при этом убедитесь, что соответствуют IDs продукта и производителя:<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/usr/bin/sleep 15"<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/usr/bin/rmmod usblp"<br />
<br />
===Остальное===<br />
<br />
=====Устранение ошибок CUPS=====<br />
*Пользователям, регулярно получающим ошибки вида 'NT_STATUS_ACCESS_DENIED' (Windows-клиенты), следует слегка изменить синтаксис:<br />
smb://workgroup/username:password@hostname/printer_name<br />
<br />
*Иногда, блочные устройства могут иметь не правильные права:<br />
# ls /dev/usb/<br />
lp0<br />
# chgrp lp /dev/usb/lp0<br />
<br />
====Принтер HPLIP выдает ошибку "/usr/lib/cups/backend/hp failed"====<br />
Убедитесь, что dbus установлен и запущен, для этого или проверьте секцию DAEMONS в {{ic|/etc/rc.conf}}, или выполните {{ic|ls /var/run/daemons}}.<br />
<br />
Если демон dbus запущен, но ошибка все равно повторяется - нужен avahi-daemon.<br />
<br />
====Настройка HPLIP выполнена, но принтер не работает====<br />
Данная проблема возникает при использовании драйвера hpijs (устарел) (напр. для серии Deskjet D1600). Вместо него, при добавлении принтера, выбирайте драйвер hpcups.<br />
<br />
====hp-toolbox выдает ошибку "Unable to communicate with device" ("Невозможно соединиться с устройством")====<br />
Если в результате запуска hp-toolbox от обычного пользователя получаете сообщение:<br />
# hp-toolbox<br />
# error: Unable to communicate with device (code=12): hp:/usb/<printer id><br />
или, "{{ic|Unable to communicate with device"}}", значит следует добавить пользователя в группу lp, для этого выполните следующую команду:<br />
# gpasswd -a <username> lp<br />
<br />
====CUPS с принтером HP возвращает '"foomatic-rip" not available/stopped with status 3' ('"foomatic-rip" не используется/остановлен со статусом 3')====<br />
Если, во время использования принтера HP, задания появляются в очереди, но все завершаются со статусом 'stopped', а в {{ic|/var/log/cups/error_log}} возникает одно из следующих сообщений об ошибках:<br />
Filter "foomatic-rip" for printer "<printer_name>" not available: No such file or director<br />
или:<br />
PID 5771 (/usr/lib/cups/filter/foomatic-rip) stopped with status 3!<br />
Убедитесь, что установлен '''hplip''', также может понадобится пакет '''net-snmp'''. Прочитайте [http://bbs.archlinux.org/viewtopic.php?id=65615 эти сообщения на форуме].<br />
# pacman -S hplip<br />
<br />
====Завершение печати из-за ошибок авторизации====<br />
Если пользователь уже добавлен в группу lp, и ему разрешена печать (настраивается в {{ic|cupsd.conf}}), то проблему следует искать в файле {{ic|/etc/cups/printers.conf}}. Проблема может заключаться в следующей строке:<br />
AuthInfoRequired negotiate<br />
<br />
Закомментируйте ее и перезапустите CUPS.<br />
<br />
====Неактивна кнопка Печать в диалогах приложений GNOME====<br />
:''<small>Источник: [http://bbs.archlinux.org/viewtopic.php?id=70418 I can't print from gnome applications. - Arch Forums]</small>''<br />
<br />
Убедитесь, что установлен пакет: '''libgnomeprint'''<br />
<br />
Отредактируйте {{ic|/etc/cups/cupsd.conf}} добавив в него<br />
# HostNameLookups Double<br />
<br />
Перезапустите CUPS:<br />
# /etc/rc.d/cupsd restart<br />
<br />
====Не найдена поддержка формата: application/postscript====<br />
Закомментируйте строки:<br />
application/octet-stream application/vnd.cups-raw 0 -<br />
в {{ic|/etc/cups/mime.convs}}, и:<br />
application/octet-stream<br />
в {{ic|/etc/cups/mime.types}}.<br />
<br />
====Определение URIs для Windows Print Servers====<br />
<br />
Иногда Windows предоставляет не полную информацию об URI (расположение устройств). Если в CUPS возникли проблемы с указанием местоположения устройств - необходимо выполнить команду получения списка всех ресурсов, которые доступны данному windows-пользователю:<br />
$ smbtree -U ''windowsusername''<br />
Если [[Samba]] работает и настроена правильно, то будут отображены все, доступные выбранному Windows-пользователю, ресурсы локальной сети. Команда должна отобразить что-то, типа этого:<br />
{{bc| WORKGROUP<br />
\\REGULATOR-PC <br />
\\REGULATOR-PC\Z <br />
\\REGULATOR-PC\Public <br />
\\REGULATOR-PC\print$ Printer Drivers<br />
\\REGULATOR-PC\G <br />
\\REGULATOR-PC\EPSON Stylus CX8400 Series EPSON Stylus CX8400 Series}}<br />
Нам понадобится первая часть последней строки -ресурс соответствующий описанию принтера. Таким образом, для получения возможности печатать на принтере EPSON Stylus, в качестве URI в CUPS следует ввести:<br />
smb://username.password@REGULATOR-PC/EPSON Stylus CX8400 Series<br />
Обратите внимание на то, что в URI допускаются пробелы, а знаки "\\" следует заменять на "//".<br />
<br />
====Ошибка задания для печати client-error-document-format-not-supported====<br />
Нужно установить пакет foomatic и использовать драйвер foomatic.<br />
<br />
====Не работает /usr/lib/cups/backend/hp====<br />
В {{ic|/etc/cups/cupsd.conf}} замените:<br />
<br />
SystemGroup sys root<br />
на<br />
SystemGroup lp root<br />
<br />
====Принтер Samsung не печатает некоторые документы====<br />
<br />
Бывает, что принтер Samsung прекрасно работает с {{ic|cups}}, но не печатает некоторые документы (файлы Inkscape с текстом) и даже сбоит. В качестве решения можно посоветовать использовать пакет {{AUR|cups-usblp}} с добавлением модуля {{ic|usblp}} в черный список (как было описано ранее).<br />
<br />
====Не отображается локальный USB-принтер====<br />
<br />
Если ваш usb-принтер не отображается - попробуйте заменить {{pkg|cups}} на {{AUR|cups-usblp}} (пакет можно найти в [[AUR]]). Затем проверьте работоспособность сначала с загруженным модулем {{ic|usblp}}, а затем, если не поможет, - с добавленным в черный список.<br />
<br />
===="Не удается получить список драйверов для принтеров"====<br />
Попробуйте удалить драйверы Foomatic.<br />
<br />
=Приложение=<br />
<br />
===Альтернативные интерфейсы CUPS===<br />
<br />
В среде [[GNOME]], вы можете конфингурировать ваш принтер с помощью system-config-printer-gnome. С помощью pacman можно установить этот пакет:<br />
# pacman -S system-config-printer-gnome<br />
<br />
Для нормальной работы system-config-printer понадобиться или запуск с правами администратора, или, если от обычного пользователя, то такому пользователю должно быть разрешено администрировать CUPS (если это так - '''выполните шаги 1-3''')<br />
<br />
* 1. Создайте группу и внесите в нее нужного пользователя:<br />
# groupadd lpadmin<br />
# usermod -aG lpadmin <username><br />
<br />
* 2. Добавьте "lpadmin" (без кавычек) в следующую строку файла {{ic|/etc/cups/cupsd.conf}}<br />
SystemGroup sys root <insert here><br />
<br />
* 3. Перезапустите cups, выйдите и снова войдите в систему (или перезагрузите компьютер)<br />
{{bc|# rc.d restart cupsd}}<br />
<br />
Пользователи [[KDE]] могут изменять настройки из "Control Center" (kcontrol). Для получения дополнительной информации, обратитесь к документации вашего рабочего окружения (DE).<br />
<br />
Также в [[AUR]] можно найти пакет [https://aur.archlinux.org/packages.php?ID=43505 gtklp]<br />
<br />
===Виртуальный PDF-принтер===<br />
<br />
Существует прекрасный пакет - CUPS-PDF. Этот пакет позволяет настроить виртуальный принтер, генерирующий PDF-файлы из того, что отправлено на печать на этот принтер. Возможно этот пакет вам и не понадобиться, но иногда он может быть очень полезен.<br />
<br />
Созданные PDF-документы можно найти в {{ic|var/spool/cups-pdf}}. Обычно, более удобно такие документы добавлять в домашнюю директорию пользователя. Настроить такое поведение не сложно. В файле /etc/cups/cups-pdf.conf найдите и строку:<br />
#Out /var/spool/cups-pdf/${USER}<br />
<br />
и приведите ее к такому виду:<br />
<br />
Out /home/${USER}<br />
<br />
<br />
Установить этот пакет можно командой:<br />
# pacman -S cups-pdf<br />
<br />
После установки пакета, настройте PDF-принтер аналогично обычному принтеру, например с помощью веб-интерфейса. В Device (Оборудование) выберите - '''CUPS-PDF (Virtual PDF Printer)'''; Make/Manufacturer (Марка/Производитель) выберите - '''Generic'''; Model/Driver (Модель/Драйвер) выберите - '''Generic postscript color printer''' или '''Generic Cups-PDF Printer'''. В качестве альтернативы, [http://www.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/cups-pdf-CURRENT/extra/CUPS-PDF.ppd по этой ссылке] можно найти другой PPD-файл.<br />
<br />
==== Печать в postscript: тонкости использования виртуального CUPS-PDF-принтера ====<br />
<br />
Для большинства приложений, таких как OpenOffice, печать в PDF не является проблемой; достаточно просто нажать кнопку. Для печати в postscript, потребуется выполнить небольшой дополнительный объем работ. CUPS-PDF (Виртуальный PDF-принтер) на самом деле создает postscript-файл, а затем уже с помощью утилиты ps2pdf, преобразовывает его в PDF. Для печати в postscript, необходимо сначала передать созданные CUPS-PDF postscript-файлы. Для этого в диалоге печати нужно выбрать вариант "print to file" ("печатать в файл"). (выберите расширение для файла или .ps, или .eps). После того, как будет отмечен флажок "print to file" ("печатать в файл"), введите имя файла и нажмите "print" ("печать").<br />
<br />
=====Настройка виртуального CUPS-PDF-принтера=====<br />
#Прочтите инструкция по настройке демона cups.<br />
#Установите {{Pkg|cups-pdf}} из [extra].<br />
#Запустите менеджер печати cups: http://localhost:631 и выберите:<br />
Administration -> Add Printer<br />
Select CUPS-PDF (Virtual PDF), выберите марку и модель:<br />
Make: Generic<br />
Driver: Generic CUPS-PDF Printer<br />
<br />
Теперь, для печати в postscript, в диалоговом окне печати установите "CUPS-PDF" в качестве принтера, установите флажок на "print to file" ("печатать в файл"), нажмите печать, введите имя_файла.ps и кликните сохранить. Метод удобен при обработке факсов и т.д...<br />
<br />
===Другие источники драйверов для принтеров===<br />
<br />
[http://www.turboprint.de/english.html Turboprint] - проприетарный драйвер для многих моделей принтеров, которые до сих пор не поддерживаются в GNU/Linux (например Canon i*). Единственная проблема в том, что высококачественная печать будет либо с водяным знаком, либо за отдельную плату...<br />
<br />
=Дополнение=<br />
<br />
Список вебсайтов, которые могут быть вам полезны:<br />
<br />
* <b>Official CUPS documentation on your computer</b> http://localhost:631/documentation.html<br />
* <b>Official CUPS Website</b> - http://www.cups.org/<br />
* <b>Linux Printing</b> - http://www.linuxprinting.org/<br />
* <b>Tips and Suggestions on common CUPS problems</b> - http://home.nyc.rr.com/computertaijutsu/cups.html<br />
* <b>Gentoo's Printing Guide</b> - http://www.gentoo.org/doc/en/printing-howto.xml<br />
* <b>Arch Linux User Forums</b> - http://bbs.archlinux.org/<br />
<br />
==Особые случаи==<br />
<br />
Дальнейшее описание посвящено специфическим проблемам и их решениям. Если вы сталкивались с какой-либо ''необычной'' работой принтера, пожалуйста, поместите решение проблемы здесь.<br />
<br />
=== Принтеры с параллельным портом HP (hplip) ===<br />
{{Note|Действия проводились для настройки HP LaserJet 6L}}<br />
Если HP принтер подключен через параллельный порт, то потребуется пересобрать пакет '''hplip''' с опцией '''--enable-pp-build'''.<br />
Для этого устанавливаем и обновляем ABS:<br />
<pre><br />
# pacman -S abs<br />
# abs<br />
</pre><br />
Копируем необходимые файлы для сборки<br />
<pre><br />
# cp -r /var/abs/extra/hplip /tmp<br />
</pre><br />
Правим файл {{ic|/tmp/hplip/PKGBUILD}} и добавляем опцию '''--enable-pp-build''' для '''./configure''':<br />
<pre><br />
[...]<br />
./configure --prefix=/usr \<br />
--enable-qt4 \<br />
--enable-pp-build \<br />
--enable-foomatic-rip-hplip-install \<br />
--enable-foomatic-ppd-install \<br />
--enable-hpcups-install \<br />
--enable-cups-drv-install \<br />
--enable-hpijs-install \<br />
--enable-foomatic-drv-install \<br />
--enable-udev-acl-rules<br />
[...]<br />
</pre><br />
Собираем и ставим пакет:<br />
<pre><br />
cd /tmp/hplip<br />
makepkg -s<br />
pacman -U hplip-3.10.6-1-i686.pkg.tar.xz<br />
</pre><br />
Далее принтер настраивается обычным путем через web-интерфейс '''CUPS''' [http://localhost:631 http://localhost:631].<br />
<br />
Если принтер правильно настроен для работы с '''hplip''', то строка подключения в '''CUPS''' будет начинаться с '''hp:'''<br />
<pre><br />
hp:/par/HP_LaserJet_6L?device=/dev/parport0<br />
</pre><br />
<br />
{{Note|Действия проводились для настройки HP LaserJet 5L, x86_64}}<br />
Устанавливаем hplip (пересобирать пакет не надо, он уже собран с --enable-pp-build)<br />
<pre><br />
# pacman -S hplip<br />
</pre><br />
Далее запускаем<br />
<pre><br />
# hp-setup -i -a -x /dev/parport0<br />
</pre><br />
для автоматического добавления принтера в CUPS, либо добавляем "ручками" через веб-интерфейс [http://localhost:631 http://localhost:631].<br />
<br />
===Печать не работает/прерывается на принтерах HP Deskjet 700===<br />
<br />
Проблема решается установкой фильтра pnm2ppa для принтеров HP Deskjet 700 series. Без этого задания на печать будут отменяться системой. [[Arch Build System (Русский)| PKGBUILD]] для pnm2ppa можно найти здесь: [https://aur.archlinux.org/index.php?setlang=ru AUR].<br />
<br />
===Заставить работать HP LaserJet 1010===<br />
Мне для этого пришлось самому собрать ghostscript, потому что gs ESP в репозитории был версии 7.07 и имел некоторые ошибки, исправленные в ESP 8.15.1. Я никогда не пользовался пакетом 'foomatic' из репозитория. Я думаю что этот пакет устарел.<br />
<pre><br />
$ pacman -Qs cups a2ps psutils foo ghost<br />
local/cups 1.1.23-3<br />
The CUPS Printing System<br />
local/a2ps 4.13b-3<br />
a2ps is an Any to PostScript filter<br />
local/psutils p17-3<br />
A set of postscript utilities.<br />
local/foomatic-db 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-db-engine 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-db-ppd 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-filters 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/espgs 8.15.1-1<br />
ESP Ghostscript<br />
</pre><br />
Также я был вынужден выставить LogLevel в /etc/cups/cupsd.conf в debug2 для того чтобы обнаружить отсутствие некоторых шрифтов "Nimbus". Затем я переименовал их и положил туда, куда мне подсказывал лог. Тут нужно привести хитрый способ поиска в google, [http://www.google.com/search?q=n019003l+filetype%3Apfb например] т.к. шрифты являются проприетарными (уверен что в windows это по умолчанию). В любом случае, после скачивания шрифтов (около 7) и помещения их в правильную директорию печать заработала.<br />
<br />
До этого я получал ошибки описанные [http://linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1010 здесь]: 'Unsupport PCL' и т.п...<br />
<br />
Уверен что это работало бы и с gs ESP 7.07 (в репозитории) если бы у меня раньше хватило ума включить DebugLevel2 :-/<br />
<br />
''Обновление:'' да, это работает... может быть эта информация окажется полезной для кого-либо ещё... извините за неудобства.<br />
<br />
===Заставить работать HP LaserJet 1020 (1018 и похожие)===<br />
После множества попыток связанных с hplib и gutenprint я наконец нашёл решение как заставить мой HP Laserjet 1020 печатать. <br />
<br />
Первым делом вам надо уставить cups и ghostscript. Затем пройдите по ссылке <br />
http://www.linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1020 на страницу драйверов печати http://foo2zjs.rkkda.com/ и следуйте интрукциям по установке. Залогиньтесь как root. После скачивания и распаковки архива переместитесь в распакованную директорию foo2zjs. Теперь вы можете делать всё по оригинальной инструкции по установке, лишь с небольшой модификацией для изменения userid пользователя для печати:<br />
<pre><br />
$ make<br />
$ ./getweb 1020<br />
</pre><br />
Откройте ''Makefile''<br />
<pre>$ nano Makefile</pre><br />
найдите там строку<br />
<pre># LPuid=-olp</pre><br />
и модифицируйте её таки образом:<br />
<pre># LPuid=-oroot</pre><br />
дальше выполняйте сборку<br />
<pre><br />
$ make install<br />
$ make install-hotplug<br />
$ make cups<br />
</pre><br />
Сейчас в этих действиях нет необходимости. Теперь строка '''LPuid=-oroot''' стоит по умолчанию.<br />
<br />
Вы также можете взять пакет foo2zjs из [https://aur.archlinux.org/index.php?setlang=ru AUR] и модифицировать [[Arch Build System (Русский)| PKGBUILD]]: измените строку<br />
<pre>./getweb all</pre><br />
на<br />
<pre>./getweb 1020</pre><br />
(или, если устанавливаете другой принтер, измените эту строку на что, что вам нужно).<br />
<br />
Последним шагом является добавление и конфигурирование принтера в CUPS manager. Принтер должен определиться автоматически. Это отлично работает для root'а и всех ползователей. Когда ОС загружается, принтер инициализируется и сигнализирует о том, что он работает.<br />
Так же строку<br />
<pre>./getweb 1020</pre><br />
можно изменять на необходимые 1018 (для работы принтера Hewlett-Packard 1018) и т.д.<br />
<pre>./getweb 1018</pre><br />
Список поддерживаемы моделей тут: http://foo2zjs.rkkda.com/<br />
<br />
====HPLIP====<br />
<br />
Больше нет необходимости устанавливать драйвер foo2zjs для работы принтера HP LJ 1018/1020, поскольку в последних версиях hplip он работает "из коробки". Вам следует установить hplip, gnomesu или gksu, qt и pyqt4, после чего запустить <br />
<pre>sudo hp-setup</pre><br />
CUPS-сервер должен быть запущен. Мастер установки hplip автоматически установит ваш принтер. После следует установить плагин к принтеру. Для этого запустить от пользователя программу hp-toolbox и выберите "install required plugin". Плагин автоматически загрузится с сайта производителя.<br />
Никаких дополнительных действий (вроде внесения usblp и MODULES_BLACKLIST) выполнять не надо.<br />
<br />
===Выполнение сервисных операций на принтерах Epson===<br />
====Escputil====<br />
<br />
Здесь объясняется как выполнить некоторые вспомогательные операции, такие как очистка и проверка сопел на принтерах Epson. Для этого мы будем использовать утилиту escputil, которая входит в состав пакета gutenprint.<br />
<br />
Man-страница этой утилиты ("man escputil") содержит очень полезную информацию, но не включает в себя необходимых сведений о том как идентифицировать ваш принтер. Для этого могут быть использованы два параметра. Первый из них --printer; он принимает имя принтера, которое вы использовали при его конфигурировании. Другой &mdash --raw-device. Эта опция примаетпуть к устройству. Если ваш принтер подключен к последовательному порту, то устройство будет выглядеть примерно как "/dev/lp0". Если же ваш принтер подключен к USB, по устройство будет "/dev/usb/lp0". Если у вас более одного принтера они будут иметь имена файлов устройств "lp1", "lp2" и т.д.<br />
<br />
* очистка печатающей головки:<br />
<pre>escputil -u --clean-head</pre><br />
<br />
* проверка сопел:<br />
<pre>escputil -u --nozzle-check</pre><br />
<br />
Если вам необходимо произвести операцию, которая требует двухстороннего общения с принтером вы должны использовать спецификацию "--raw-device", а ваш пользователь должен состоять в группе "lp" или быть root'ом.<br />
<br />
* получение внутреннего имени принтера:<br />
<br />
sudo escputil --raw-device=/dev/usb/lp0 --identify<br />
<br />
* получение уровня чернил:<br />
<br />
sudo escputil --raw-device=/dev/usb/lp0 --ink-level<br />
<br />
====Mtink====<br />
<br />
Это монитор состояния принтера, который позволяет получить количество оставшихся чернил, печатать тестовые страницы, сбрасывать принтер и очищать сопла. Он использует интуитивный графический интерфейс пользователя. Пакет можно скачать [https://aur.archlinux.org/packages.php?ID=476 отсюда].<br />
<br />
= См. также =<br />
* [http://localhost:631/documentation.html Официальная документация CUPS documentation], ''локальная установка''<br />
* [http://www.cups.org/ Официальный Веб-сайт CUPS]<br />
* [http://www.linuxprinting.org/ Linux Printing], ''[http://www.linuxfoundation.org Linux Foundation]''<br />
* [http://www.gentoo.org/doc/en/printing-howto.xml Руководство по печати в Gentoo], ''[http://www.gentoo.org/doc/en Источники Документации Gentoo]''<br />
* [http://bbs.archlinux.org/ Форум пользователей Arch Linux]</div>
Vadik
https://wiki.archlinux.org/index.php?title=CUPS_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=200844
CUPS (Русский)
2012-05-09T10:47:26Z
<p>Vadik: /* Источники */</p>
<hr />
<div>[[Category:Принтеры (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|CUPS}}<br />
{{Article summary start|Описание}}<br />
{{Article summary text|Установка и настройка CUPS}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary wiki|CUPS printer sharing}}<br />
{{Article summary wiki|CUPS printer-specific problems}}<br />
{{Article summary wiki|Samba}}<br />
{{Article summary end}}<br />
<br />
:"''Common UNIX Printing System ([[Wikipedia:CUPS|CUPS]], общая UNIX система печати) - это кроссплатформенное решение для печати для всех UNIX систем. Оно основано на "Internet Printing Protocol" (IPP, интернет-протокол печати) и предоставляет полный спектр возможностей для печати для большинства Postscript и растровых принтеров. CUPS распространяется под GNU GPL....''"<br />
Хотя существуют другие пакеты печати, такие как LPRNG, CUPS более популярен и довольно прост в использовании. Это система печати по умолчанию как в Arch Linux, так и во многих других Linux-дистрибутивах.<br />
<br />
<br />
= Установка =<br />
<br />
Вам скорее всего потребуются пакеты {{Pkg|cups}}, {{Pkg|ghostscript}} и {{Pkg|gsfonts}}. [[pacman|Установить]] их можно из [[Official repositories|оффициального репозитория]].<br />
<br />
Если стандартный cups не работает, то можно попробовать установить пакет {{AUR|cups-usblp}}, находящийся в [[AUR]].<br />
<br />
* '''cups''' - собственно пакет CUPS<br />
* '''ghostscript''' - интерпретатор для языка Postscript<br />
* '''gsfonts''' - стандартные Type1 шрифты GhostScript<br />
* '''hpoj''' - при использовании HP Officejet, во избежание проблем, установите этот пакет согласно инструкциям. Почитайте [http://answers.launchpad.net/hplip/+question/133425 обсуждение на launchpad/hplip] для получения дополнительной информации.<br />
<br />
<br />
Если ваша система подключена к сетевому принтеру с использованием протокола samba, или система является сервером печати для Windows клиентов - установите {{Pkg|samba}}.<br />
<br />
===Драйвера принтеров===<br />
Некоторые из пакетов с драйверами для принтеров, зависит от используемого вами принтера. Если не уверены, установите gutenprint.<br />
<br />
* '''{{Pkg|gutenprint}}''' - Набор высококачественных драйверов для принтеров Canon, Epson, Lexmark, Sony, Olympus и PCL использующихся с GhostSscript, CUPS, Foomatic и [[GIMP]].<br />
* '''{{Pkg|foomatic-db}}, {{Pkg|foomatic-db-engine}}, {{Pkg|foomatic-db-nonfree}} и {{Pkg|foomatic-filters}}''' - Foomatic - это система под управлением базы данных для интеграции открытых драйверов для принтера с обычными спулерами под Unix. Установка foomatic-filters должна разрешить ваши проблемы, если в error.log от CUPS будут записи: "stopped with status 22!"<br />
* '''{{AUR|foo2zjs}}''' - драйвер для принтеров использующих протокол ZjStream, например таких как HP Laserjet 1018. Дополнительная информация [http://foo2zjs.rkkda.com здесь]. Для использования Foo2zsj - установите {{AUR|foo2zjs}}.<br />
* '''{{Pkg|hplip}}''' - HP GNU/Linux драйвер. Обеспечивает поддержку DeskJet, OfficeJet, Photosmart, Business Inkjet и других принтеров моделей LaserJet, a также ряд принтеров Brother.<br />
* '''{{Pkg|splix}}''' - драйвера Samsung для принтеров SPL (Samsung Printer Language). (для USB принтеров возможно понадобится пакет {{AUR|cups-usblp}} доступный в [[AUR]])<br />
* '''{{AUR|ufr2}}''' - Canon UFR2 драйвер, обеспечивающий поддержку принтеров серии LBP, iR и MF. Пакет доступен в [[AUR]]. <br />
* '''{{Pkg|cups-pdf}}''' - пакет, позволяющий настроить виртуальный PDF принтер, который будет создавать PDF из всего, что будет отправлено на принтер.<br />
<br />
Если вы не уверены в работоспособности драйвера для вашего принтера или он не работает - то, возможно, стоит установить все доступные драйверы, поскольку для вашей модели принтера может подойти драйвер от другого производителя. Например, для Brother HL-2140 необходимо установить драйвер hplip.<br />
<br />
====Загрузка PPD для принтера====<br />
<br />
Так как CUPS в стандартной установке уже содержит множество PPD (Postscript Printer Description) файлов, и в зависимости от вашего принтера, этот пункт является необязательным и может быть пропущен. Более того, в пакетах <i>foomatic-filters</i>, <i>gimp-print</i> и <i>hplip</i> уже имеется большое количество PPD файлов, которые будут автоматически определены CUPS.<br />
<br />
Вот объяснение с сайта Linux Printing того, что такое PPD файл:<br />
:"''Для каждого PostScript принтера производитель предоставляет PPD файл, содержащий всю уникальную информацию об этой модели принтера: основные возможности принтера (цветной он или нет, шрифты, уровень PostScript и т. д.) и особенно настройки, которые может изменять пользователь, такие как размер бумаги, разрешение печати и т. д.''"<br />
<br />
Если в CUPS для вашего принтера отсутствует нужный PPD файл, то:<br />
*Поищите пакеты для вашего принтера/производителя в [[AUR]].<br />
*Посетите [http://www.openprinting.org/printers базу данных OpenPrinting] и выберите своего производителя и модель принтера.<br />
*Поищите драйверы под GNU/Linux на сайте производителя.<br />
<br />
<br />
{{Note|Поместите PPD файлы в {{ic|/usr/share/cups/model/}}}}<br />
<br />
= Настройка CUPS =<br />
Итак, после установки CUPS, у вас есть множество способов его настройки. Вы всегда можете использовать старую добрую командную строку. Некоторые DE, такие как Gnome и KDE, предоставляют удобные программы, которые могут вам помочь в управлении принтерами. Однако, для того чтобы сделать этот процесс максимально доступным обыкновенному пользователю, мы будем использовать web-интерфейс, предоставляемый CUPS.<br />
<br />
Если планируется подключение не к локальному, а к сетевому принтеру, то, возможно, вначале стоит почитать о настройке [[CUPS printer sharing|общего доступа к принтерам в CUPS]]. Настройка общего доступа к принтерам внутри GNU/Linux довольно проста и имеет малое количество опций, а вот организация общего доступа к принтерам между Windows и GNU/Linux является немного более сложной.<br />
<br />
=== Модули ядра ===<br />
<br />
Перед использованием веб-интерфейса CUPS, вам понадобится загрузить соответствующие модули ядра. Далее описаны шаги, взятые из руководства по установке принтера в Gentoo.<br />
<br />
Данный раздел может понадобиться в зависимости от используемого ядра. После подключения принтера нужный модуль ядра может быть загружен автоматически. Воспользуйтесь командой {{ic|tail}} (описана далее) для того, чтобы определить обнаружен ли принтер. Для просмотра загруженных модулей ядра также можно воспользоваться утилитой {{ic|lsmod}}.<br />
<br />
==== USB-принтеры ====<br />
Для использования USB-принтера может потребоваться внести в черный список модуль {{ic|usblp}}. Учтите, что насчет добавления {{ic|usblp}} в черный список имеется некоторая [http://bbs.archlinux.org/viewtopic.php?pid=660601 неопределенность], так как некоторые USB-принтеры, в частности некоторые серии принтеров Canon и Epson, не определяются без этого модуля. Несколько пользователей принтеров Samsung, после добавления в черный список модуля {{ic|usblp}}, сообщили о проблемах с {{ic|cups}}, в качестве решения предлагается повторное включение модуля {{ic|usblp}} и установка из [[AUR]] пакета {{ic|cups-usblp}} вместо стандартного пакета {{ic|cups}} (https://bbs.archlinux.org/viewtopic.php?pid=778104). С февраля 2012, ранее работавший с cups-usblp USB-принтер Samsung ML2010, работает с cups и внесением в черный список usblp.<br />
<br />
Добавление модуля в черный список:<br />
<br />
{{hc|/etc/modprobe.d/blacklist.conf|blacklist usblp}}<br />
<br />
либо создав в {{ic|/etc/modprobe.d/}} свой файл, например {{ic|usblp_blacklist.conf}}, со следующим содержимым:<br />
<br />
{{hc|/etc/modprobe.d/usblp_blacklist.conf|blacklist usblp}}<br />
<br />
При использовании ядра собранного самостоятельно, возможно придется вручную загрузить модуль {{ic|usbcore}}:<br />
# modprobe usbcore<br />
<br />
После загрузки всех необходимых модулей - включите принтер и проверьте обнаружен ли он ядром, для этого выполните следующее:<br />
# tail /var/log/messages.log<br />
или<br />
# dmesg<br />
<br />
При использовании {{ic|usblp}}, сообщение об обнаружении принтера будет выглядеть примерно так:<br />
Feb 19 20:17:11 kernel: printer.c: usblp0: USB Bidirectional<br />
printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E<br />
Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920<br />
Feb 19 20:17:11 kernel: printer.c: v0.13: USB Printer Device Class driver<br />
<br />
Если {{ic|usblp}} находится в черном списке, то будет выведено примерно следующее:<br />
usb 3-2: new full speed USB device using uhci_hcd and address 3<br />
usb 3-2: configuration #1 chosen from 1 choice<br />
<br />
==== Принтеры с параллельным портом ====<br />
Если вы желаете использовать принтер с параллельным портом, настройка в общем-то такая же, за исключением модулей:<br />
<br />
# modprobe lp<br />
# modprobe parport<br />
# modprobe parport_pc<br />
<br />
Еще раз проверьте настройки выполнив команду:<br />
# tail /var/log/messages.log<br />
Должно быть показано что-то вроде этого:<br />
lp0: using parport0 (polling)<br />
<br />
При использовании адаптера с USB на параллельный порт, CUPS не сможет обнаружить принтер. В качестве обходного пути - добавьте принтер используя другие типы соединений, а затем измените DeviceID в файле {{ic|/etc/cups/printers.conf}}:<br />
DeviceID = parallel:/dev/usb/lp0<br />
<br />
==== Автозагрузка ====<br />
Возможно, вам будет удобнее если соответствующий модуль будет загружен при старте системы. Для этого откройте в текстовом редакторе файл {{ic|/etc/[[rc.conf]]}}, и добавьте нужный модуль в строку {{ic|1=MODULES=()}}. Например, так:<br />
MODULES=(!usbserial scsi_mod sd_mod snd-ymfpci snd-pcm-oss '''lp parport parport_pc''' ide-scsi)<br />
<br />
===Демон CUPS===<br />
<br />
После установки соответствующих модулей ядра, можно приступать к [[Daemon#Performing daemon actions manually|запуску демона CUPS]]. Для автоматического запуска демона при старте системы следует добавить cupsd в [[daemons#Starting on Boot|строку DAEMONS]].<br />
<br />
=== Web-интерфейс и средства управления ===<br />
<br />
После запуска демона откройте браузер и зайдите на: http://localhost:631 (''Строку '''localhost''', возможно, придется заменить на имя хоста из'' {{ic|/etc/hosts}}).<br />
<br />
Теперь для добавления принтера можно использовать различные мастера. Для запуска обыкновенной процедуры установки кликните ''Добавление принтеров и групп'', затем ''Добавить принтер''. При запросе имени пользователя и пароля нужно будет войти в качестве root. Далее будет представлен список устройств для выбора. Фактическое имя принтера отображается рядом с меткой ( например, USB-принтеры напротив ''USB Printer #1''). Принтеру можно присваивать любое имя, аналогично для пунктов 'Расположение' и 'Описание'. После выбора соответствующего драйвера настройки будут окончены.<br />
<br />
<br />
Убедитесь в правильности настроек, нажав на кнопку ''Print Test Page'' (''Печать тестовой страницы'') в выпадающем меню ''Maintenance'' (''Обслуживание''). Если принтер не печатает, но вы уверены в правильности всех настроек, попытайтесь сменить драйвер принтера на другой.<br />
<br />
{{Tip|Ознакомьтесь с другими программами в разделе [[#Альтернативные интерфейсы CUPS]].}}<br />
{{Note|При установке USB-принтер должен отображаться в списке устройств на странице ''Добавить принтер''. Если будет доступен только вариант "SCSI printer", то это означает, что CUPS не смог распознать ваш принтер.}}<br />
<br />
==== Администрирование CUPS ====<br />
<br />
При администрировании принтера через веб-интерфейс (например для: добавления или удаления принтеров, остановки заданий печати, и т.д) понадобятся имя пользователя и пароль. Пользователем по-умолчанию может быть пользователь из группы ''sys'' или root (для изменения измените значение в строке ''SystemGroup'' файла {{ic|/etc/cups/cupsd.conf}}). <br />
<br />
При заблокированной учетной записи root (т.е. используя sudo) будет невозможно войти в веб-интерфейс управления CUPS с именем пользователя по умолчанию и его паролем. В этом случае придерживайтесь [http://www.cups.org/articles.php?L237+T+Qprintadmin инструкций] из CUPS FAQ. Дополнительно прочтите [http://bbs.archlinux.org/viewtopic.php?id=35567 это сообщение].<br />
<br />
====Удаленный доступ к веб-интерфейсу====<br />
По умолчанию, доступ к веб-интерфейсу CUPS разрешен только ''localhost''; т.е. компьютеру на котором он установлен. Для разрешения удаленного доступа нужно внести следующие изменения в файл {{ic|/etc/cups/cupsd.conf}}. Замените строку:<br />
Listen localhost:631<br />
на строку<br />
Port 631<br />
для того, чтобы CUPS мог слушать входящие запросы.<br />
<br />
Можно предоставить три уровня доступа:<br />
<Location /> #доступ к серверу<br />
<Location /admin> #доступ к странице администрирования<br />
<Location /admin/conf> #доступ к конфигурационным файлам<br />
<br />
Для разрешения удаленного доступа к одному из уровней, добавьте параметр {{ic|Allow}} в секцию соответствующую выбранному уровню. Параметр {{ic|Allow}} может принимать одно или несколько из перечисленных ниже значений:<br />
Allow all<br />
Allow host.domain.com<br />
Allow *.domain.com<br />
Allow ip-address<br />
Allow ip-address/netmask<br />
<br />
Параметр также может быть использован для запрета. Например, если нужно дать полный доступ всем хостам подсети 192.168.1.0/255.255.255.0, файл {{ic|/etc/cups/cupsd.conf}} должен содержать следующее:<br />
# Ограничение доступа к серверу...<br />
# По умолчанию возможны только локальные подключения<br />
<Location /><br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
# Ограничение доступа к странице администрирования...<br />
<Location /admin><br />
# Encryption disabled by default<br />
#Encryption Required<br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
# Ограничение доступа к конфигурационным файлам...<br />
<Location /admin/conf><br />
AuthType Basic<br />
Require user @SYSTEM<br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
Также вам потребуется добавить:<br />
<br />
DefaultEncryption Never<br />
<br />
Для того, чтоб избежать получения ошибки: 426 - Upgrade Required when using the CUPS web interface from a remote machine.<br />
<br />
= Устранение проблем =<br />
<br />
Наилучший способ борьбы с неисправностями - это выставить 'LogLevel' в файле {{ic|/etc/cups/cupsd.conf}} в:<br />
LogLevel debug<br />
<br />
А потом посмотреть вывод из файла {{ic|/var/log/cups/error_log}} например так:<br />
# tail -n 100 -f /var/log/cups/error_log<br />
<br />
Символы слева от вывода означают следующее:<br />
*D=Debug (отладка)<br />
*E=Error (ошибка)<br />
*I=Information (информация)<br />
*И так далее<br />
<br />
Следующие файлы также могут быть полезны:<br />
*{{ic|/var/log/cups/page_log}} - каждый раз при успешной печати, пишет новую запись<br />
*{{ic|/var/log/cups/access_log}} - записывает всю активность на cupsd http1.1 сервере<br />
<br />
Также, если вы хотите решить свои проблемы, важно понимать, как вообще работает CUPS. Вот краткая информация об этом:<br />
# Когда вы жмёте 'печать' приложение отправляет .ps-файл (PostScript, язык-скрипт, который описывает, как выглядит страница) в систему CUPS (так происходит в большинстве программ).<br />
# CUPS смотрит на PPD-файл (файл описания принтера) и находит, фильтры которые ему нужно использовать для преобразования .ps-файла в файл, который понимает ваш принтер (например, PJL,PCL). Обычно для этого ему требуется ghostscript.<br />
# GhostScript принимает ввод и решает, какие фильтры ему использовать, потом применяет их и преобразовывает .ps-файл в формат, который понимает принтер.<br />
# Затем файл передается бэкенду. Например, если у вас принтер подключен к usb порту, то используется usb бэкенд<br />
<br />
===Проблемы в результате обновления===<br />
''Проблемы возникшие после обновления CUPS и сопутствующего ему набора программ''<br />
<br />
====CUPS останавливается====<br />
Существует вероятность, что для правильной работы в обновленной версии понадобится новый файл конфигурации. Например, получение сообщения "404 - page not found" при попытке входа в панель управления CUPS через localhost:631.<br />
<br />
Для того, чтобы воспользоваться новым конфигом, скопируйте {{ic|/etc/cups/cupsd.conf.default}} в {{ic|/etc/cups/cupsd.conf}} (при необходимости сделайте резервную копию старого конфига):<br />
# cp /etc/cups/cupsd.conf.default /etc/cups/cupsd.conf<br />
и, чтобы новые настройки вступили в силу, перезапустите CUPS.<br />
<br />
====Ошибка gnutls====<br />
При получении следующей ошибки:<br />
/usr/sbin/cupsd: error while loading shared libraries: libgnutls.so.13: cannot open shared object file: No such file or directory<br />
следует обновить gnutls:<br />
# pacman -S gnutls<br />
<br />
После обновления в {{ic|/etc/cups}} появится файл {{ic|cupsd.conf.pacnew}}. Это стандартный конфигурационный файл. Сравните его со своим конфигурационным файлом и, при необходимости, добавьте новые опции.<br />
<br />
====Для всех заданий - "остановлено" ("stopped")====<br />
Если для всех отправленных на печать заданий установился статус "остановлено" ("stopped"), - удалите принтер и установите его заново.<br />
Для этого войдите в [http://localhost:631 веб-интерфейс CUPS], перейдите Принтеры > Удалить Принтер.<br />
<br />
Для проверки настроек принтера перейдите во вкладку ''Принтеры'', затем ''Администрирование''. В выпадающем списке кликните 'Изменить принтер', перейдите к следующей странице (ам), и так далее.<br />
<br />
====Для всех заданий - "Принтер не отвечает" ("The printer is not responding")====<br />
Для сетевых принтеров, поскольку CUPS подключается через URI, необходимо убедиться, что в DNS настроен доступ к принтерам по IP. Например, если принтер подключен следующим образом:<br />
lpd://BRN_020554/BINARY_P1<br />
то имени хоста 'BRN_020554' должны соответствовать IP принтеров, управляемых сервером CUPS.<br />
<br />
====Версия PPD не совместима с gutenprint====<br />
Запустите:<br />
# /usr/sbin/cups-genppdupdate<br />
<br />
И перезагрузите CUPS (будет выведено соответствующее сообщение после установки gutenprint).<br />
<br />
===USB-принтеры под CUPS 1.4.x===<br />
Новый CUPS 1.4.x принес множество изменений:<br />
<br />
====Конфигурационный файл====<br />
Изменился синтаксис конфигурационного файла cupsd.conf. Начните с нового конфигурационного фала {{ic|cupsd.conf}}, созданного из {{ic|/etc/cups/cupsd.conf.default}}.<br />
<br />
====Занесение в черный список usblp====<br />
Теперь CUPS, вместо генерирования устройств /dev/usb/lpX с помощью usblp, использует устройства libusb и USB-принтеры (из /dev/bus/usb/). Для того, чтобы заработали USB-принтеры - необходимо выключить модуль usblp.<br />
Выключить можно либо добавив в {{ic|/etc/modprobe.d/modprobe.conf}}:<br />
<br />
{{hc|/etc/modprobe.d/modprobe.conf|blacklist usblp}}<br />
<br />
либо создав в {{ic|/etc/modprobe.d/}} свой файл, например {{ic|usblp_blacklist.conf}}, со следующим содержимым:<br />
<br />
{{hc|/etc/modprobe.d/usblp_blacklist.conf|blacklist usblp}}<br />
<br />
Некоторым пользователям, возможно, прийдется переустановить принтер.<br />
<br />
====Определение устройства====<br />
В дополнение к отключению загрузки usblp, CUPS могут понадобится права на файл устройства USB-принтера - root:lp, и должны быть 660. Например.<br />
$ ls -l /dev/bus/usb/003/002<br />
crw-rw---- 1 root lp 189, 257 20. Okt 10:32 /dev/bus/usb/003/002<br />
<br />
Этого можно добиться добавлением двумя правилами udev в {{ic|/lib/udev/rules.d/50-udev-default.rules}}:<br />
# hplip and cups 1.4+ use raw USB devices, so permissions should be similar to<br />
# the ones from the old usblp kernel module<br />
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="", IMPORT{program}="usb_id --export %p"<br />
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}==":0701*:", GROUP="lp", MODE="660"<br />
<br />
Тем не менее, для некоторых устройств, например, многофункциональных устройств принтер/сканер, эти правила либо не используются, либо перекрываются правилами пакета 'sane'. В этом случае нужно будет добавлять пользовательские правила udev. Смотри далее.<br />
<br />
=====Устранение неполадок при определении устройств=====<br />
Узнаем файл устройства принтера и права доступа к нему: <br />
$ lsusb<br />
...<br />
Bus 003 Device 002: ID 04b8:0841 Seiko Epson Corp.<br />
$ ls -l /dev/bus/usb/003/002<br />
crw-rw---- 1 root lp 189, 257 20. Okt 10:32 /dev/bus/usb/003/002<br />
<br />
Если права доступа не root:lp 660, придется создать пользовательское правило [[udev]] для этого устройства, пример<br />
{{hc|cat /etc/udev/rules.d/10-usbprinter.rules|<nowiki>ATTR{idVendor}=="04b8", ATTR{idProduct}=="0841", MODE:="0660", GROUP:="lp"</nowiki>}}<br />
<br />
Для многофункциональных устройств (принтер+сканер), для того, чтоб [[sane]] определил его корректно:<br />
{{hc|cat /etc/udev/rules.d/10-usbprinter.rules|<nowiki>ATTR{idVendor}=="04b8", ATTR{idProduct}=="0841", MODE:="0660", GROUP:="lp", ENV{libsane_matched}:="yes"</nowiki>}}<br />
<br />
Обратите внимание на то, что значения idVendor и idProduct взяты из вывода команды lsusb показанного выше.<br><br />
Также обратите внимание - некоторым принтерам понадобятся права доступа 666.<br />
<br />
=====Загрузка прошивки (firmware)=====<br />
<br />
Для некоторых принтеров и драйверов понадобится загрузка прошивки принтера (таким как, использующие foo2zjs, принтеры HP LaserJet 10xx) и сделать это будет нужно путем записи прямо на устройство lp, такие функциональные возможности предоставляет usblp. Для обхода этого ограничения нужно будет загрузить модуль usblp при загрузке прошивки, а затем, для нормальной работы CUPS, удалить модуль. Для ручной загрузки модуля выполните<br />
$ modprobe usblp<br />
загрузка прошивки, затем:<br />
$ rmmod usblp<br />
Также можно обойтись без добавления usblp в черный список, добавьте "rmmod usblp" в {{ic|/etc/rc.local}}, при этом прошивка будет загружена при старте системы, а затем, при чтении {{ic|rc.local}}, модуль usblp будет выгружен.<br />
<br />
В случае если принтер окажется подключенным или на нем будет включено питание уже на работающей системе - файл {{ic|/etc/rc.local}} не будет использован и модуль usblp останется подгруженным. Обойти это можно изменив {{ic|/etc/udev/rules.d/11-hpj10xx.rules}}, созданный для foo2zjs, таким образом чтоб при добавлении устройства выполнялось нужное событие, например: 15 секунд для загрузки прошивки и автоматического удаления usblp. Следующий пример для HP LaserJet 1018. Для других моделей значения ATTRS{idProduct} должны быть изменены, соответственно модели принтера.<br />
<br />
Найдите в {{ic|/etc/udev/rules.d/11-hpj10xx.rules}} строку соответствующую вашему принтеру:<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/sbin/foo2zjs-loadfw 1018 $tempnode"<br />
Добавьте после нее следующие строки, при этом убедитесь, что соответствуют IDs продукта и производителя:<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/usr/bin/sleep 15"<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/usr/bin/rmmod usblp"<br />
<br />
===Остальное===<br />
<br />
=====Устранение ошибок CUPS=====<br />
*Пользователям, регулярно получающим ошибки вида 'NT_STATUS_ACCESS_DENIED' (Windows-клиенты), следует слегка изменить синтаксис:<br />
smb://workgroup/username:password@hostname/printer_name<br />
<br />
*Иногда, блочные устройства могут иметь не правильные права:<br />
# ls /dev/usb/<br />
lp0<br />
# chgrp lp /dev/usb/lp0<br />
<br />
====Принтер HPLIP выдает ошибку "/usr/lib/cups/backend/hp failed"====<br />
Убедитесь, что dbus установлен и запущен, для этого или проверьте секцию DAEMONS в {{ic|/etc/rc.conf}}, или выполните {{ic|ls /var/run/daemons}}.<br />
<br />
Если демон dbus запущен, но ошибка все равно повторяется - нужен avahi-daemon.<br />
<br />
====hp-toolbox выдает ошибку "Unable to communicate with device" ("Невозможно соединиться с устройством")====<br />
Если в результате запуска hp-toolbox от обычного пользователя получаете сообщение:<br />
# hp-toolbox<br />
# error: Unable to communicate with device (code=12): hp:/usb/<printer id><br />
или, "{{ic|Unable to communicate with device"}}", значит следует добавить пользователя в группу lp, для этого выполните следующую команду:<br />
# gpasswd -a <username> lp<br />
<br />
====CUPS с принтером HP возвращает '"foomatic-rip" not available/stopped with status 3' ('"foomatic-rip" не используется/остановлен со статусом 3')====<br />
Если, во время использования принтера HP, задания появляются в очереди, но все завершаются со статусом 'stopped', а в {{ic|/var/log/cups/error_log}} возникает одно из следующих сообщений об ошибках:<br />
Filter "foomatic-rip" for printer "<printer_name>" not available: No such file or director<br />
или:<br />
PID 5771 (/usr/lib/cups/filter/foomatic-rip) stopped with status 3!<br />
Убедитесь, что установлен '''hplip''', также может понадобится пакет '''net-snmp'''. Прочитайте [http://bbs.archlinux.org/viewtopic.php?id=65615 эти сообщения на форуме].<br />
# pacman -S hplip<br />
<br />
====Завершение печати из-за ошибок авторизации====<br />
Если пользователь уже добавлен в группу lp, и ему разрешена печать (настраивается в {{ic|cupsd.conf}}), то проблему следует искать в файле {{ic|/etc/cups/printers.conf}}. Проблема может заключаться в следующей строке:<br />
AuthInfoRequired negotiate<br />
<br />
Закомментируйте ее и перезапустите CUPS.<br />
<br />
====Неактивна кнопка Печать в диалогах приложений GNOME====<br />
:''<small>Источник: [http://bbs.archlinux.org/viewtopic.php?id=70418 I can't print from gnome applications. - Arch Forums]</small>''<br />
<br />
Убедитесь, что установлен пакет: '''libgnomeprint'''<br />
<br />
Отредактируйте {{ic|/etc/cups/cupsd.conf}} добавив в него<br />
# HostNameLookups Double<br />
<br />
Перезапустите CUPS:<br />
# /etc/rc.d/cupsd restart<br />
<br />
====Не найдена поддержка формата: application/postscript====<br />
Закомментируйте строки:<br />
application/octet-stream application/vnd.cups-raw 0 -<br />
в {{ic|/etc/cups/mime.convs}}, и:<br />
application/octet-stream<br />
в {{ic|/etc/cups/mime.types}}.<br />
<br />
====Определение URIs для Windows Print Servers====<br />
<br />
Иногда Windows предоставляет не полную информацию об URI (расположение устройств). Если в CUPS возникли проблемы с указанием местоположения устройств - необходимо выполнить команду получения списка всех ресурсов, которые доступны данному windows-пользователю:<br />
$ smbtree -U ''windowsusername''<br />
Если [[Samba]] работает и настроена правильно, то будут отображены все, доступные выбранному Windows-пользователю, ресурсы локальной сети. Команда должна отобразить что-то, типа этого:<br />
{{bc| WORKGROUP<br />
\\REGULATOR-PC <br />
\\REGULATOR-PC\Z <br />
\\REGULATOR-PC\Public <br />
\\REGULATOR-PC\print$ Printer Drivers<br />
\\REGULATOR-PC\G <br />
\\REGULATOR-PC\EPSON Stylus CX8400 Series EPSON Stylus CX8400 Series}}<br />
Нам понадобится первая часть последней строки -ресурс соответствующий описанию принтера. Таким образом, для получения возможности печатать на принтере EPSON Stylus, в качестве URI в CUPS следует ввести:<br />
smb://username.password@REGULATOR-PC/EPSON Stylus CX8400 Series<br />
Обратите внимание на то, что в URI допускаются пробелы, а знаки "\\" следует заменять на "//".<br />
<br />
====Ошибка задания для печати client-error-document-format-not-supported====<br />
Нужно установить пакет foomatic и использовать драйвер foomatic.<br />
<br />
====Не работает /usr/lib/cups/backend/hp====<br />
В {{ic|/etc/cups/cupsd.conf}} замените:<br />
<br />
SystemGroup sys root<br />
на<br />
SystemGroup lp root<br />
<br />
====Принтер Samsung не печатает некоторые документы====<br />
<br />
Бывает, что принтер Samsung прекрасно работает с {{ic|cups}}, но не печатает некоторые документы (файлы Inkscape с текстом) и даже сбоит. В качестве решения можно посоветовать использовать пакет {{AUR|cups-usblp}} с добавлением модуля {{ic|usblp}} в черный список (как было описано ранее).<br />
<br />
====Не отображается локальный USB-принтер====<br />
<br />
Если ваш usb-принтер не отображается - попробуйте заменить {{pkg|cups}} на {{AUR|cups-usblp}} (пакет можно найти в [[AUR]]). Затем проверьте работоспособность сначала с загруженным модулем {{ic|usblp}}, а затем, если не поможет, - с добавленным в черный список.<br />
<br />
===="Не удается получить список драйверов для принтеров"====<br />
Попробуйте удалить драйверы Foomatic.<br />
<br />
=Приложение=<br />
<br />
===Альтернативные интерфейсы CUPS===<br />
<br />
В среде [[GNOME]], вы можете конфингурировать ваш принтер с помощью system-config-printer-gnome. С помощью pacman можно установить этот пакет:<br />
# pacman -S system-config-printer-gnome<br />
<br />
Для нормальной работы system-config-printer понадобиться или запуск с правами администратора, или, если от обычного пользователя, то такому пользователю должно быть разрешено администрировать CUPS (если это так - '''выполните шаги 1-3''')<br />
<br />
* 1. Создайте группу и внесите в нее нужного пользователя:<br />
# groupadd lpadmin<br />
# usermod -aG lpadmin <username><br />
<br />
* 2. Добавьте "lpadmin" (без кавычек) в следующую строку файла {{ic|/etc/cups/cupsd.conf}}<br />
SystemGroup sys root <insert here><br />
<br />
* 3. Перезапустите cups, выйдите и снова войдите в систему (или перезагрузите компьютер)<br />
{{bc|# rc.d restart cupsd}}<br />
<br />
Пользователи [[KDE]] могут изменять настройки из "Control Center" (kcontrol). Для получения дополнительной информации, обратитесь к документации вашего рабочего окружения (DE).<br />
<br />
Также в [[AUR]] можно найти пакет [https://aur.archlinux.org/packages.php?ID=43505 gtklp]<br />
<br />
===Виртуальный PDF-принтер===<br />
<br />
Существует прекрасный пакет - CUPS-PDF. Этот пакет позволяет настроить виртуальный принтер, генерирующий PDF-файлы из того, что отправлено на печать на этот принтер. Возможно этот пакет вам и не понадобиться, но иногда он может быть очень полезен.<br />
<br />
Созданные PDF-документы можно найти в {{ic|var/spool/cups-pdf}}. Обычно, более удобно такие документы добавлять в домашнюю директорию пользователя. Настроить такое поведение не сложно. В файле /etc/cups/cups-pdf.conf найдите и строку:<br />
#Out /var/spool/cups-pdf/${USER}<br />
<br />
и приведите ее к такому виду:<br />
<br />
Out /home/${USER}<br />
<br />
<br />
Установить этот пакет можно командой:<br />
# pacman -S cups-pdf<br />
<br />
После установки пакета, настройте PDF-принтер аналогично обычному принтеру, например с помощью веб-интерфейса. В Device (Оборудование) выберите - '''CUPS-PDF (Virtual PDF Printer)'''; Make/Manufacturer (Марка/Производитель) выберите - '''Generic'''; Model/Driver (Модель/Драйвер) выберите - '''Generic postscript color printer''' или '''Generic Cups-PDF Printer'''. В качестве альтернативы, [http://www.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/cups-pdf-CURRENT/extra/CUPS-PDF.ppd по этой ссылке] можно найти другой PPD-файл.<br />
<br />
==== Печать в postscript: тонкости использования виртуального CUPS-PDF-принтера ====<br />
<br />
Для большинства приложений, таких как OpenOffice, печать в PDF не является проблемой; достаточно просто нажать кнопку. Для печати в postscript, потребуется выполнить небольшой дополнительный объем работ. CUPS-PDF (Виртуальный PDF-принтер) на самом деле создает postscript-файл, а затем уже с помощью утилиты ps2pdf, преобразовывает его в PDF. Для печати в postscript, необходимо сначала передать созданные CUPS-PDF postscript-файлы. Для этого в диалоге печати нужно выбрать вариант "print to file" ("печатать в файл"). (выберите расширение для файла или .ps, или .eps). После того, как будет отмечен флажок "print to file" ("печатать в файл"), введите имя файла и нажмите "print" ("печать").<br />
<br />
=====Настройка виртуального CUPS-PDF-принтера=====<br />
#Прочтите инструкция по настройке демона cups.<br />
#Установите {{Pkg|cups-pdf}} из [extra].<br />
#Запустите менеджер печати cups: http://localhost:631 и выберите:<br />
Administration -> Add Printer<br />
Select CUPS-PDF (Virtual PDF), выберите марку и модель:<br />
Make: Generic<br />
Driver: Generic CUPS-PDF Printer<br />
<br />
Теперь, для печати в postscript, в диалоговом окне печати установите "CUPS-PDF" в качестве принтера, установите флажок на "print to file" ("печатать в файл"), нажмите печать, введите имя_файла.ps и кликните сохранить. Метод удобен при обработке факсов и т.д...<br />
<br />
===Другие источники драйверов для принтеров===<br />
<br />
[http://www.turboprint.de/english.html Turboprint] - проприетарный драйвер для многих моделей принтеров, которые до сих пор не поддерживаются в GNU/Linux (например Canon i*). Единственная проблема в том, что высококачественная печать будет либо с водяным знаком, либо за отдельную плату...<br />
<br />
=Дополнение=<br />
<br />
Список вебсайтов, которые могут быть вам полезны:<br />
<br />
* <b>Official CUPS documentation on your computer</b> http://localhost:631/documentation.html<br />
* <b>Official CUPS Website</b> - http://www.cups.org/<br />
* <b>Linux Printing</b> - http://www.linuxprinting.org/<br />
* <b>Tips and Suggestions on common CUPS problems</b> - http://home.nyc.rr.com/computertaijutsu/cups.html<br />
* <b>Gentoo's Printing Guide</b> - http://www.gentoo.org/doc/en/printing-howto.xml<br />
* <b>Arch Linux User Forums</b> - http://bbs.archlinux.org/<br />
<br />
==Особые случаи==<br />
<br />
Дальнейшее описание посвящено специфическим проблемам и их решениям. Если вы сталкивались с какой-либо ''необычной'' работой принтера, пожалуйста, поместите решение проблемы здесь.<br />
<br />
=== Принтеры с параллельным портом HP (hplip) ===<br />
{{Note|Действия проводились для настройки HP LaserJet 6L}}<br />
Если HP принтер подключен через параллельный порт, то потребуется пересобрать пакет '''hplip''' с опцией '''--enable-pp-build'''.<br />
Для этого устанавливаем и обновляем ABS:<br />
<pre><br />
# pacman -S abs<br />
# abs<br />
</pre><br />
Копируем необходимые файлы для сборки<br />
<pre><br />
# cp -r /var/abs/extra/hplip /tmp<br />
</pre><br />
Правим файл {{ic|/tmp/hplip/PKGBUILD}} и добавляем опцию '''--enable-pp-build''' для '''./configure''':<br />
<pre><br />
[...]<br />
./configure --prefix=/usr \<br />
--enable-qt4 \<br />
--enable-pp-build \<br />
--enable-foomatic-rip-hplip-install \<br />
--enable-foomatic-ppd-install \<br />
--enable-hpcups-install \<br />
--enable-cups-drv-install \<br />
--enable-hpijs-install \<br />
--enable-foomatic-drv-install \<br />
--enable-udev-acl-rules<br />
[...]<br />
</pre><br />
Собираем и ставим пакет:<br />
<pre><br />
cd /tmp/hplip<br />
makepkg -s<br />
pacman -U hplip-3.10.6-1-i686.pkg.tar.xz<br />
</pre><br />
Далее принтер настраивается обычным путем через web-интерфейс '''CUPS''' [http://localhost:631 http://localhost:631].<br />
<br />
Если принтер правильно настроен для работы с '''hplip''', то строка подключения в '''CUPS''' будет начинаться с '''hp:'''<br />
<pre><br />
hp:/par/HP_LaserJet_6L?device=/dev/parport0<br />
</pre><br />
<br />
{{Note|Действия проводились для настройки HP LaserJet 5L, x86_64}}<br />
Устанавливаем hplip (пересобирать пакет не надо, он уже собран с --enable-pp-build)<br />
<pre><br />
# pacman -S hplip<br />
</pre><br />
Далее запускаем<br />
<pre><br />
# hp-setup -i -a -x /dev/parport0<br />
</pre><br />
для автоматического добавления принтера в CUPS, либо добавляем "ручками" через веб-интерфейс [http://localhost:631 http://localhost:631].<br />
<br />
===Печать не работает/прерывается на принтерах HP Deskjet 700===<br />
<br />
Проблема решается установкой фильтра pnm2ppa для принтеров HP Deskjet 700 series. Без этого задания на печать будут отменяться системой. [[Arch Build System (Русский)| PKGBUILD]] для pnm2ppa можно найти здесь: [https://aur.archlinux.org/index.php?setlang=ru AUR].<br />
<br />
===Заставить работать HP LaserJet 1010===<br />
Мне для этого пришлось самому собрать ghostscript, потому что gs ESP в репозитории был версии 7.07 и имел некоторые ошибки, исправленные в ESP 8.15.1. Я никогда не пользовался пакетом 'foomatic' из репозитория. Я думаю что этот пакет устарел.<br />
<pre><br />
$ pacman -Qs cups a2ps psutils foo ghost<br />
local/cups 1.1.23-3<br />
The CUPS Printing System<br />
local/a2ps 4.13b-3<br />
a2ps is an Any to PostScript filter<br />
local/psutils p17-3<br />
A set of postscript utilities.<br />
local/foomatic-db 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-db-engine 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-db-ppd 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-filters 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/espgs 8.15.1-1<br />
ESP Ghostscript<br />
</pre><br />
Также я был вынужден выставить LogLevel в /etc/cups/cupsd.conf в debug2 для того чтобы обнаружить отсутствие некоторых шрифтов "Nimbus". Затем я переименовал их и положил туда, куда мне подсказывал лог. Тут нужно привести хитрый способ поиска в google, [http://www.google.com/search?q=n019003l+filetype%3Apfb например] т.к. шрифты являются проприетарными (уверен что в windows это по умолчанию). В любом случае, после скачивания шрифтов (около 7) и помещения их в правильную директорию печать заработала.<br />
<br />
До этого я получал ошибки описанные [http://linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1010 здесь]: 'Unsupport PCL' и т.п...<br />
<br />
Уверен что это работало бы и с gs ESP 7.07 (в репозитории) если бы у меня раньше хватило ума включить DebugLevel2 :-/<br />
<br />
''Обновление:'' да, это работает... может быть эта информация окажется полезной для кого-либо ещё... извините за неудобства.<br />
<br />
===Заставить работать HP LaserJet 1020 (1018 и похожие)===<br />
После множества попыток связанных с hplib и gutenprint я наконец нашёл решение как заставить мой HP Laserjet 1020 печатать. <br />
<br />
Первым делом вам надо уставить cups и ghostscript. Затем пройдите по ссылке <br />
http://www.linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1020 на страницу драйверов печати http://foo2zjs.rkkda.com/ и следуйте интрукциям по установке. Залогиньтесь как root. После скачивания и распаковки архива переместитесь в распакованную директорию foo2zjs. Теперь вы можете делать всё по оригинальной инструкции по установке, лишь с небольшой модификацией для изменения userid пользователя для печати:<br />
<pre><br />
$ make<br />
$ ./getweb 1020<br />
</pre><br />
Откройте ''Makefile''<br />
<pre>$ nano Makefile</pre><br />
найдите там строку<br />
<pre># LPuid=-olp</pre><br />
и модифицируйте её таки образом:<br />
<pre># LPuid=-oroot</pre><br />
дальше выполняйте сборку<br />
<pre><br />
$ make install<br />
$ make install-hotplug<br />
$ make cups<br />
</pre><br />
Сейчас в этих действиях нет необходимости. Теперь строка '''LPuid=-oroot''' стоит по умолчанию.<br />
<br />
Вы также можете взять пакет foo2zjs из [https://aur.archlinux.org/index.php?setlang=ru AUR] и модифицировать [[Arch Build System (Русский)| PKGBUILD]]: измените строку<br />
<pre>./getweb all</pre><br />
на<br />
<pre>./getweb 1020</pre><br />
(или, если устанавливаете другой принтер, измените эту строку на что, что вам нужно).<br />
<br />
Последним шагом является добавление и конфигурирование принтера в CUPS manager. Принтер должен определиться автоматически. Это отлично работает для root'а и всех ползователей. Когда ОС загружается, принтер инициализируется и сигнализирует о том, что он работает.<br />
Так же строку<br />
<pre>./getweb 1020</pre><br />
можно изменять на необходимые 1018 (для работы принтера Hewlett-Packard 1018) и т.д.<br />
<pre>./getweb 1018</pre><br />
Список поддерживаемы моделей тут: http://foo2zjs.rkkda.com/<br />
<br />
====HPLIP====<br />
<br />
Больше нет необходимости устанавливать драйвер foo2zjs для работы принтера HP LJ 1018/1020, поскольку в последних версиях hplip он работает "из коробки". Вам следует установить hplip, gnomesu или gksu, qt и pyqt4, после чего запустить <br />
<pre>sudo hp-setup</pre><br />
CUPS-сервер должен быть запущен. Мастер установки hplip автоматически установит ваш принтер. После следует установить плагин к принтеру. Для этого запустить от пользователя программу hp-toolbox и выберите "install required plugin". Плагин автоматически загрузится с сайта производителя.<br />
Никаких дополнительных действий (вроде внесения usblp и MODULES_BLACKLIST) выполнять не надо.<br />
<br />
===Выполнение сервисных операций на принтерах Epson===<br />
====Escputil====<br />
<br />
Здесь объясняется как выполнить некоторые вспомогательные операции, такие как очистка и проверка сопел на принтерах Epson. Для этого мы будем использовать утилиту escputil, которая входит в состав пакета gutenprint.<br />
<br />
Man-страница этой утилиты ("man escputil") содержит очень полезную информацию, но не включает в себя необходимых сведений о том как идентифицировать ваш принтер. Для этого могут быть использованы два параметра. Первый из них --printer; он принимает имя принтера, которое вы использовали при его конфигурировании. Другой &mdash --raw-device. Эта опция примаетпуть к устройству. Если ваш принтер подключен к последовательному порту, то устройство будет выглядеть примерно как "/dev/lp0". Если же ваш принтер подключен к USB, по устройство будет "/dev/usb/lp0". Если у вас более одного принтера они будут иметь имена файлов устройств "lp1", "lp2" и т.д.<br />
<br />
* очистка печатающей головки:<br />
<pre>escputil -u --clean-head</pre><br />
<br />
* проверка сопел:<br />
<pre>escputil -u --nozzle-check</pre><br />
<br />
Если вам необходимо произвести операцию, которая требует двухстороннего общения с принтером вы должны использовать спецификацию "--raw-device", а ваш пользователь должен состоять в группе "lp" или быть root'ом.<br />
<br />
* получение внутреннего имени принтера:<br />
<br />
sudo escputil --raw-device=/dev/usb/lp0 --identify<br />
<br />
* получение уровня чернил:<br />
<br />
sudo escputil --raw-device=/dev/usb/lp0 --ink-level<br />
<br />
====Mtink====<br />
<br />
Это монитор состояния принтера, который позволяет получить количество оставшихся чернил, печатать тестовые страницы, сбрасывать принтер и очищать сопла. Он использует интуитивный графический интерфейс пользователя. Пакет можно скачать [https://aur.archlinux.org/packages.php?ID=476 отсюда].<br />
<br />
= См. также =<br />
* [http://localhost:631/documentation.html Официальная документация CUPS documentation], ''локальная установка''<br />
* [http://www.cups.org/ Официальный Веб-сайт CUPS]<br />
* [http://www.linuxprinting.org/ Linux Printing], ''[http://www.linuxfoundation.org Linux Foundation]''<br />
* [http://www.gentoo.org/doc/en/printing-howto.xml Руководство по печати в Gentoo], ''[http://www.gentoo.org/doc/en Источники Документации Gentoo]''<br />
* [http://bbs.archlinux.org/ Форум пользователей Arch Linux]</div>
Vadik
https://wiki.archlinux.org/index.php?title=IceWM_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=200843
IceWM (Русский)
2012-05-09T10:46:26Z
<p>Vadik: </p>
<hr />
<div>[[Category:Desktop environments (Русский)]]<br />
[[Category:Руководства (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|IceWM}}<br />
<br />
:''IceWM — менеджер окон для X Window System в Unix-подобных операционных системах. Разработка IceWM началась с нуля в 1997-ом году, проект написан целиком на C++ и выпущен на условиях лицензии GNU LGPL. Цель проекта — создание рабочей среды с удобным и быстрым интуитивным интерфейсом с широкими возможностями для настройки пользователем. В частности, все функции графического интерфейса доступны при использовании только клавиатуры. В то же время в число задач входила максимальная «лёгкость» IceWM в плане потребляемых ресурсов компьютера — памяти и процессора.<br />
<br />
IceWM полностью соответствует i18n и поддерживает работу с русским языком.(Источник: [http://ru.wikipedia.org/wiki/IceWM])''<br />
<br />
== Установка ==<br />
IceWM находится в [[Official Repositories|оффициальном репозитории]], пакет называется {{Pkg|icewm}}.<br />
<br />
Кроме того, в [[AUR]] находятся: последняя тестовая версия ({{AUR|icewm-testing}}), и весрия CVS ({{AUR|icewm-cvs}}). В этих версиях были добавлены новые возможности и устранены некоторые ошибки (в связи с медленным развитием эти версии часто соответствуют версии в extra/icewm).<br />
<br />
== Запуск IceWM ==<br />
=== Запуск с помощью kdm/gdm ===<br />
При использовании менеджеров ([[KDM]], [[GDM]], [[XDM]]) IceWM будет автоматически добавлен в их меню.<br />
Дополнительную информацию по настройке менеджеров можно найти [[Добавление экранного менеджера входа в систему (KDM, GDM или XDM) в автозагрузку|здесь]].<br />
<br />
=== Запуск с помощью .xinitrc ===<br />
Запустить IceWM можно просто добавив следующую строку в ваш файл {{ic|~/.xinitrc}}:<br />
exec icewm-session<br />
В этом случае, при запуске X.Org, будет автоматически запущен IceWM.<br />
Иногда, для корректной работы вашего файлового менеджера совместно с ''udisks'', вместо "exec icewm-session" лучше будет использовать строку вида:<br />
exec ck-launch-session dbus-launch icewm-session<br />
или<br />
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session icewm-session<br />
<br />
По команде icewm-session будут запущены icewm, icewmbg и icewmtray.<br />
<br />
После запуска IceWM будет прочитан и выполнен файл {{ic|~/.icewm/startup}} (если он существует).<br />
<br />
После добавления нужной строки в {{ic|~/.xinitrc}}, IceWM можно запустить командой '''startx'''.<br />
<br />
== Настройка ==<br />
Хотя настройка IceWM и основана на ручной правке текстовых конфигов, применяются также и различные GUI-программы, в частности {{Pkg|icewm-utils}} из [[Official Repositories|community]]. Однако эти инструменты являются относительно устаревшими и большинство пользователей предпочитают вручную редактировать текстовые файлы конфигурации. Изменения можно вносить как общесистемно (в {{ic|/etc/icewm/}}), так и для конкретного пользователя (в {{ic|~/.icewm/}}).<br />
<br />
Для изменения стандартной конфигурации icewm, нужно скопировать конфигурационные файлы из {{ic|/usr/share/icewm/}} в {{ic|~/.icewm/}}, например: <br />
<br />
{{Note | Выполняйте все действия от простого пользователя, а не от root.}}<br />
<br />
$ mkdir ~/.icewm/<br />
$ cp -R /usr/share/icewm/* ~/.icewm/<br />
<br />
Доступны следующие файлы конфигурации<br />
*{{ic|preferences}} содержит параметры управления поведением IceWM.<br />
*{{ic|menu}} содержит пункты и структуру главного меню.<br />
*{{ic|keys}} содержит дополнительные комбинации клавиш пользователя.<br />
*{{ic|toolbar}} содержит кнопки запуска приложений на панели задач.<br />
*{{ic|winoptions}} содержит параметры отвечающие за поведение отдельных приложений, описанных пользователем.<br />
*{{ic|theme}} содержит название текущей темы оформления.<br />
*{{ic|startup}} исполняемый файл, запускающийся во время первоначальной загрузки оконного менеджера.<br />
*{{ic|shutdown}} исполняемый файл, запускающийся во время завершения работы оконного менеджера.<br />
<br />
=== Меню ===<br />
*{{Pkg|menumaker}} (доступен в [[Official Repositories|Community]]) - это скрипт на Python, автоматически создающий меню установленных в системе приложений. Хотя в меню и будет добавлено множество нежелательных пунктов, может оказаться, что использование MenuMaker предпочтительнее ручного редактирования файла {{ic|menu}}. Запускайте MenuMaker с флагом -f, чтоб он смог перезаписать существующий файл меню:<br />
$ mmaker -f icewm<br />
<br />
*Еще одним инструментом является, написанный на perl, {{Pkg|archlinux-xdg-menu}}:<br />
<br />
$ xdg_menu --format icewm --fullmenu --root-menu /etc/xdg/menus/arch-applications.menu > ~/.icewm/menu<br />
<br />
=== Темы ===<br />
По умолчанию включено несколько тем оформления, в репозитории можно дополнительно найти пакет с ножеством тем - {{Pkg|icewm-themes}}. Хотя большинство тем имеют спартанский вид, в стиле'old Windows', существуют и более современные. Примеры хороших тем оформления: [http://box-look.org/content/show.php/Carbonit+Ice?content=146421 Carbonit+Ice], [http://box-look.org/content/show.php/IceBuntu?content=62935 IceBuntu] или [http://box-look.org/content/show.php/IceClearlooks?content=96346 IceClearlooks]. Еще больше тем оформления можно найти на [http://www.box-look.org/index.php?xcontentmode=7311 box-look.org].<br />
<br />
== Файловые менеджеры ==<br />
Следует отметить, что IceWM только оконный менеджер и, следовательно, не включает в себя файловый менеджер. Для поддержки значков рабочего стола можно использовать [[PCManFM]] и Rox Filer, так же для достижения этой функциональности также может быть использован [[Idesk|iDesk]].<br />
{{Note|Для получения большего списка файловых менеджеров, рекомендуется изучить список в категории [[:Category:File managers|File managers]].}}<br />
<br />
== См. также ==<br />
* [[Xinitrc]]<br />
* [http://www.icewm.org/ Official IceWM website]<br />
* [http://en.gentoo-wiki.com/wiki/IceWM IceWM - Gentoo Linux Wiki]<br />
* [http://www.osnews.com/story.php/7774/IceWM--The-Cool-Window-Manager/ IceWM - The Cool Window Manager] - Подробное вступление на OSNews<br />
* [http://polishlinux.org/apps/window-managers/icewm-a-desktop-for-windows-emmigrants/ IceWM - A desktop for Windows emigrants] - Обзор и руководство от polishlinux.org</div>
Vadik
https://wiki.archlinux.org/index.php?title=Fluxbox_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=200841
Fluxbox (Русский)
2012-05-09T10:43:57Z
<p>Vadik: /* Ссылки */</p>
<hr />
<div>[[Category:Desktop environments (Русский)]]<br />
[[Category:Руководства (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|Fluxbox}}<br />
<br />
Fluxbox - это еще один оконный менеджер для X-ов. Он основан на кодовой базе Blackbox 0.61.1. Fluxbox выглядит как blackbox и управляет стилями, цветами, расположением окон и прочими подобными вещами аналогично blackbox (100% совместимость тем/стилей). <br />
==Установка Fluxbox==<br />
Для установки {{pkg|fluxbox}} и {{pkg|fluxconf}} (графический конфигуратор) выполните:<br />
# pacman -S fluxbox fluxconf<br />
<br />
==Полное руководство==<br />
Спасибо narada - автору этого руководства.<br />
Найти его можно здесь:<br />
[http://bbs.archlinux.org/viewtopic.php?id=77729]<br />
<br />
==Запуск Fluxbox==<br />
===Способ № 1: Логин менеджеры KDM/GDM/LightDM===<br />
Если у вас установлен экранный менеджер [[KDM]], [[GDM]] или [[LightDM]], то fluxbox будет автоматически добавлен в его меню. Далее, для запуска fluxbox, будет достаточно просто выбрать соответствующий пункт в меню.<br />
Инструкции по настройке менеджеров можно найти [[Добавление экранного менеджера входа в систему (KDM, GDM или XDM) в автозагрузку|здесь]].<br />
<br />
===Способ № 2: ~/.xinitrc===<br />
Отредактируйте {{ic|~/.xinitrc}}, добавив в него следующий код:<br />
exec fluxbox <br />
Или, если вы захотите использовать файл ''startfluxbox'', замените код на следующий:<br />
exec startfluxbox <br />
Запуск с помощью {{ic|startfluxbox}} является более предпочтительным, так как при использовании этой команды будет прочитан и выполнен файл {{ic|~/.fluxbox/startup}} (список команд автозагрузки).<br />
<br />
При использовании '''polkit''' и [[D-Bus]] (например для автомонтирования), для запуска следует использовать такой код:<br />
exec ck-launch-session startfluxbox<br />
или<br />
exec ck-launch-session dbus-launch startfluxbox<br />
<br />
{{Note | в файле {{ic|~/.xinitrc}} команда {{ic|exec}} может встречаться только один раз!}}<br />
<br />
''Примечание'' : если fluxbox "падает" при запуске, то это может быть связано с локалью. Установив переменную LC_ALL в значение по умолчанию, "C", можно избежать "падений"[http://bbs.archlinux.org/viewtopic.php?t=25797 1].<br />
<br />
После добавления нужной строки в {{ic|~/.xinitrc}}, fluxbox можно запустить командой startx.<br />
<br />
==Настройка==<br />
Общесистемные конфигурационные файлы fluxbox расположены в {{ic|/usr/share/fluxbox}}, а пользовательские в {{ic|~/.fluxbox}}. К пользовательским конфигурационным файлам относятся:<br />
<ul><br />
<li>{{ic|init}}: основной конфигурационный файл fluxbox. Подробнее [http://fluxbox-wiki.org/index.php?title=Editing_the_init_file Editing the init file]<br />
<li>{{ic|menu}}: файл настройки меню fluxbox. См. ниже и [http://fluxbox-wiki.org/index.php?title=Editing_the_menu Editing the menu file]<br />
<li>{{ic|keys}}: файл настройки клавиатурных сочетаний fluxbox (hotkeys). См. ниже и [http://fluxbox-wiki.org/index.php?title=Keyboard_shortcuts здесь]<br />
<li>{{ic|startup}}: файл предназначенный для запуска приложений. Читать далее о [[xinitrc]] и [http://fluxbox-wiki.org/index.php?title=Editing_the_startup_file здесь]<br />
<li>{{ic|overlay}}: конфигурационный файл переопределения элементов стиля. Подробнее [http://fluxbox-wiki.org/index.php?title=Style_overlay здесь].<br />
<li>{{ic|apps}}: конфигурационный файл для настройки отображения конкретных приложений. Подробнее [http://fluxbox-wiki.org/index.php?title=Editing_the_apps_file здесь]<br />
<li>{{ic|windowmenu}}: конфигурационный файл самого Window Menu: [http://fluxbox-wiki.org/index.php?title=Editing_the_windowmenu читать здесь]<br />
</ul><br />
В этой директории имеются и другие, менее важные, конфигурационные файлы. Основными же являются файлы init, menu, keys и, возможно, startup.<br />
<br />
===Меню===<br />
====Встроенный метод====<br />
Встроенная команда<br />
$ fluxbox-generate_menu<br />
данная команда, исходя из установленных у вас программ, автоматически сгенерирует файл меню {{ic|~/.fluxbox/menu}}. Эту команду можно выполнить выбрав в меню fluxbox пункт "helper / regenerate menu".<br />
<br />
====MenuMaker====<br />
Программа [http://menumaker.sourceforge.net/ MenuMaker] является мощными инструментом по созданию меню для различных менеджеров окон, в том числе и для Fluxbox, из файлов основывающихся на XML. MenuMaker просканирует систему на наличие исполняемых программ, и, по результатам сканирования, создаст файл меню. Ее можно настроить таким образом, чтоб из результатов были исключены приложения для Legacy X, GNOME, KDE, или Xfce.<br />
<br />
MenuMaker расположен в [community] и устанавливается при помощи [[pacman]]:<br />
# pacman -S menumaker<br />
<br />
После установки, вы можете создать полное меню, выполнив:<br />
$ mmaker -v Fluxbox<br />
<br />
Для получения полного списка опций, запустите '''mmaker --help'''.<br />
<br />
====Arch Linux xdg menu====<br />
Установить [[XdgMenu]] можно с помощью pacman:<br />
# pacman -S archlinux-xdg-menu<br />
<br />
Создать файл меню fluxbox следующей командой:<br />
$ xdg_menu --fullmenu --format fluxbox --root-menu /etc/xdg/menus/arch-applications.menu >~/.fluxbox/menu<br />
<br />
'''Совет:''' замена по умолчанию xterm/urxvt:<br />
$ sed -i 's/xterm/urxvt/g' ~/.fluxbox/menu<br />
<br />
Дополнительная информация о программе:<br />
$ xdg_menu --help<br />
<br />
====Создание меню вручную с помощью fluxconf====<br />
Чтобы запустить редактор меню, входящий в состав программы fluxconf, наберите:<br />
$ fluxmenu<br />
Окно редактора разбито на три колонки: Type, Title и Command/Comment.<br><br />
Для редактирования полей нужно кликнуть по нужным.<br><br />
Кнопка "Add sub" позволяет добавить подменю.<br><br />
Кнопка "Add exec" откроет поле для добавления команды.<br><br />
<br />
Колонка Type может принимать следующие значения:<br />
#begin, необходимо для открытия и загрузки, собственно, файла меню. Поле Title в этом случае - заголовок меню.<br><br />
#submenu, подменю в составе меню. Title - отображаемое название данного подменю.<br><br />
#exec, строка команды. Title - название пункта меню, Command/Comment - команда для запуска.<br />
#separator, разделитель пунктов меню, без дополнительных аргументов.<br />
#workspaces, список рабочих столов и приложений, которые на них запущены. Title - название пункта меню.<br />
#stylesdir, отображает список стилей fluxbox. Title должен принимать значение пути к директории со стилями (например - {{ic|/usr/share/fluxbox/styles}}, {{ic|~/.fluxbox/styles}}).<br />
#config, меню с настройками для конфигурации fluxbox. В поле Title помещается название данного меню.<br />
#reconfig, повторная загрузка файла конфигурации. Title - название данного пункта меню.<br />
#restart, перезапустить fluxbox. Поле Title аналогично предыдущему.<br />
#exit, выход из fluxbox к окну логина экранного менеджера или к консоли, в зависимости от способа настройки . Title - аналогично предыдущему.<br />
<br />
Не забудьте нажать кнопку Save перед выходом из редактора.<br />
<br />
====Создание/Редактирование файла меню вручную====<br />
Воспользуйтесь командой:<br />
$ nano ~/.fluxbox/menu<br />
Приступайте к редактированию, добавьте новые строки в меню:<br />
[exec] (name) {command} <path to icon><br />
... где "name" это название, которое будет отображаться в данном пункте меню, "command" - путь к исполняемому файлу, а "<path to icon>" - путь к файлу с иконкой, например:<br />
[exec] (Firefox Browser) {/usr/bin/firefox} <path to firefox icon><br />
Обратите внимание, что "<path to icon>" не является обязательным параметром.<br />
<br />
Для создания подменю:<br />
[submenu] (Name)<br />
...<br />
...<br />
[end]<br />
Когда закончите редактирование, сохраните файл и выйдите из редактора. Перезапускать fluxbox нет необходимости. Для получения дополнительной информации обратитесь к [http://fluxbox-wiki.org/index.php?title=Editing_the_menu руководству по настройке меню fluxbox].<br />
<br />
===Init===<br />
Файл {{ic|~/.fluxbox/init}} - основной конфигурационный файл FluxBox. В нем можно настроить основную функциональность fluxbox, окон, панели инструментов, фокусировку, и т.д. Некоторые из этих настроек доступны через Configuration Menu Fluxbox. Для получения дополнительной информации почитайте о [http://fluxbox-wiki.org/index.php?title=Editing_the_init_file Редактировании файла init].<br />
<br />
===Горячие клавиши===<br />
Горячие клавиши во fluxbox описываются в файле {{ic|~/.fluxbox/keys}}.<br />
Клавиша Control задается текстом "Control", Alt - "Mod1", а Meta - "Mod4". Meta - это не стандартная клавиша, но многие привязывают ее к клавише win key.<br><br />
<br />
Например, вот быстрый способ контроля уровня звука с помощью комбинации CTRL-ALT+ Стрелка вниз или вверх:<br />
Control Mod1 Up :Exec amixer sset Master,0 5%+ <br />
Control Mod1 Down :Exec amixer sset Master,0 5%- <br />
<br />
Если у вас установлен fluxconf, то вы можете настроить горячие клавиши через графический интерфейс, для этого выполните команду:<br />
$ fluxkeys<br />
<br />
Первое текстовое поле - для названия клавиши, второе - для действия, совершаемого по нажатию на эту клавишу. Выберите execCommand и впишите название команды в третье поле. Во втором текстовом поле доступны различные функции (выбирать в выпадающем меню).<br />
<br />
===Рабочие столы===<br />
По умолчанию во fluxbox используются четыре рабочих стола, по которым можно переключаться при помощи Alt+F1-4 или с помощью стрелок на панели.<br><br />
Вызвав меню, кликнув правой кнопкой мыши, можно выбрать пункт Workspaces и увидеть в нем список рабочих столов.<br />
<br />
===Вкладки и Группировка===<br />
Когда на вашем рабочем столе открыто по крайней мере два окна - зажмите ctrl + левую кнопку мыши на верхней вкладке одного из окон и перетащите его на второе окно. Окна будут сгруппированы, и переключаться между ними можно будет через верхнюю панель вкладок. Теперь любое изменение активного окна будет применяться ко всем окнам входящим в "группу". Для отмены группировки - зажмите ctrl + левую кнопку мыши на нужной вкладке и перетащите ее на свободное пространство рабочего стола.<br />
<br />
===Фон рабочего стола===<br />
Для установки фона необходима специальная программа, например:<br />
*{{pkg|eterm}} <br />
*{{pkg|feh}} (не поддерживает прозрачность меню)<br />
<br />
Есть и другие, но эти - самые часто-используемые. Список других программ можно получить в документации к fbsetbg в секции "Дополнительных ссылок".<br />
Для установки фона выполните:<br />
$ fbsetbg /путь/к/изображению<br />
<br />
Также, для автоматической установки фона при логине, можно добавить или изменить нижеследующую строчку в файле {{ic|~/.fluxbox/init}}:<br />
session.screen0.rootCommand: fbsetbg /путь/к/изображению<br />
<br />
Или:<br />
session.screen0.rootCommand: fbsetbg -l<br />
<br />
Теперь в качестве фона будет использовано последнее, заданное с помощью fbsetbg, изображение.<br />
<br />
====Тем, кто любит часто менять фоновое изображение====<br />
Можно добавить следующее подменю в файл меню {{ic|~/.fluxbox/menu}}:<br />
<br />
[submenu] (Backgrounds)<br />
[wallpapers] (~/.fluxbox/backgrounds)<br />
[wallpapers] (/usr/share/fluxbox/backgrounds)<br />
[end]<br />
Затем разместите нужные обои в {{ic|~/.fluxbox/backgrounds}} или в том каталоге, который был указан в файле меню.<br />
<br />
====Feh====<br />
Установите {{pkg|feh}}:<br />
# pacman -S feh<br />
Также можно добавить подменю в файл {{ic|~/.fluxbox/menu}} для быстрой смены фона:<br />
[submenu] (Wallpaper)<br />
[wallpapers] (/path/to/your/wallpapers) {feh --bg-scale}<br />
[end]<br />
<br />
Теперь нужно убедится в том, что fluxbox при следующем запуске загрузит feh в фоновом режиме:<br />
<br />
'''1.''' Сделайте {{ic|~/.fehbg}} исполняемым:<br />
$ chmod 770 ~/.fehbg<br />
<br />
'''2.''' Добавьте (или измените) следующую строчку в файле {{ic|~/.fluxbox/init}}:<br />
session.screen0.rootCommand: ~/.fehbg<br />
<br />
'''3.''' Добавьте (или измените) следующую строчку в файле {{ic|~/.fluxbox/startup}}:<br />
~/.fehbg<br />
<br />
===Темы оформления===<br />
Чтобы установить тему, нужно распаковать архив с ней в одну из следующих директорий:<br />
*глобальная установка (для всех пользователей) - {{ic|/usr/share/fluxbox/styles}} <br />
*только для вашего пользователя - {{ic|~/.fluxbox/styles}}<br />
На данный момент в [[AUR]] по запросу "fluxbox-styles" можно найти множество красивых тем оформления. Расположены он здесь [https://aur.archlinux.org/packages.php?ID=28743]. Просто установите этот пакет. При правильной установке новые темы появятся в разделе Styles меню Fluxbox.<br />
<br />
Для создания собственных тем оформления ознакомьтесь с [[Fluxbox_Style_Guide]] и с этим руководством [http://tenr.de/howto/style_fluxbox/style_fluxbox.html].<br />
<br />
===Автозапуск программ===<br />
Существуют два способа автозапуска: помещение названий соответствующих команд в системный файл {{ic|~/.xinitrc}} (выполняется при запуске X.Org) или в специальный файл fluxbox - {{ic|~/.fluxbox/startup}}.<br />
<br />
{{ic|~/.fluxbox/startup}} это сценарий для автозапуска приложений и самого fluxbox-а. Строки комментируются символом #.<br />
<br />
Например:<br />
fbsetbg -l <nowiki>#</nowiki> устанавливает последнее заданное фоновое изображение;<br />
<nowiki>#</nowiki> данная команда очень часто используется пользователями fluxbox<br />
<nowiki>#</nowiki> важно помнить, что для запуска тех программ, которые не завершаются сразу (менеджер рабочего стола и т.п.),<br />
<nowiki>#</nowiki> следует указывать амперсанд (&) в конце строки. <br />
idesk & <br />
xterm &<br />
<nowiki>#</nowiki> для запуска, собственно, самого fluxbox используется следующая команда (без амперсанда)<br />
exec /usr/bin/fluxbox<br />
<nowiki>#</nowiki> также можно сохранять лог работы fluxbox следующей командой вместо предыдущей:<br />
exec /usr/bin/fluxbox -log ~/.fluxbox/log<br />
<br />
<br />
====Настройка клавиатуры====<br />
Просто добавьте следующую строку в файл {{ic|~/.fluxbox/startup}}:<br />
setxkbmap us -variant intl & # включение специальных символов клавиатуры (подобно éóíáú)<br />
<br />
Вместо 'us' можно использовать свой вариант языка. Для получения дополнительной информации обратитесь к man setxkbmap.<br />
<br />
Для добавления в меню возможности включения дополнительных символов - добавьте в файл {{ic|~/.fluxbox/menu}} следующий код:<br />
[submenu] (Keyboard)<br />
[exec] (normal) {setxkbmap us}<br />
[exec] (international) {setxkbmap us -variant intl}<br />
[end]<br />
<br />
====Отключение энергосбережения====<br />
У вас имеется проблема с отключением экрана при просмотре фильмов? Поздравляем, Xorg обнаружил ваше бездействие :). Если вам не нужен режим энергосбережения, его можно полностью отключить. Но, когда вы не будете пользоваться монитором, - вам придется отключать его самостоятельно, вручную.<br />
<br />
Просто добавьте эту строку в начало файла {{ic|~/.fluxbox/startup}}:<br />
xset s off -dpms &<br />
<br />
=== Поддержка русского языка ===<br />
Для отображения русского языка в окнах и меню стоит установить подходящий шрифт в выбранной вами теме. Например (если установлен пакет {{pkg|ttf-dejavu}}):<br />
*Font: -*-dejavu sans-*<br />
Теперь fluxbox поддерживает русские названия, даже если вы используете локаль en_US.UTF-8.<br />
<br />
=См. также=<br />
<br />
* [http://fluxbox.org/ Официальный сайт fluxbox]<br />
* [http://en.gentoo-wiki.com/wiki/Fluxbox настройка fluxbox в gentoo-wiki]<br />
* [http://www.gentoo.org/doc/en/fluxbox-config.xml документация fluxbox в gentoo]<br />
* [http://box-look.org/ темы для fluxbox]<br />
* [http://fluxbox-wiki.org/ Fluxbox Wiki]<br />
* [http://wiki.archlinux.org/index.php/Fluxbox_Style_Guide Fluxbox Style Guide]<br />
* [http://bbs.archlinux.org/viewtopic.php?id=77729 Narada's Fluxbox Guide]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=90260 Archlinux-FluxBox screenshots]<br />
* The fluxbox man pages: fluxbox, fluxbox-menu, fluxbox-style, fluxbox-keys, fluxbox-apps, fluxbox-remote, fbsetroot, fbsetbg, fbrun, startfluxbox.</div>
Vadik
https://wiki.archlinux.org/index.php?title=Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=200840
Pacman (Русский)
2012-05-09T10:42:39Z
<p>Vadik: /* Обновление Системы */</p>
<hr />
<div>[[Category:Управление пакетами (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|pacman}} {{Lowercase title}}<br />
<br />
{{Article summary start|Описание}}<br />
{{Article summary text|pacman - [[Wikipedia:Package management system|пакетный менеджер]] Arch Linux. Менеджеры пакетов используются для установки, обновления и удаления программного обеспечения. В данной статье рассматриваются основные приемы и советы по устранению неполадок.}}<br />
{{Article summary heading|Обзор}}<br />
{{Article summary text|{{Package management overview}}}}<br />
{{Article summary heading|Дополнительно}}<br />
{{Article summary wiki|Downgrading Packages (Русский)}}<br />
{{Article summary wiki|Improve Pacman Performance (Русский)}}<br />
{{Article summary wiki|pacman GUI Frontends (Русский)}}<br />
{{Article summary wiki|pacman Rosetta}}<br />
{{Article summary wiki|pacman Tips}}<br />
{{Article summary wiki|Pacman package signing}}<br />
{{Article summary wiki|FAQ_(Русский)#Управление_пакетами}}<br />
{{Article summary wiki|pacman-key (Русский)}}<br />
{{Article summary wiki|Pacnew and Pacsave Files}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary link|libalpm(3) Manual Page|https://www.archlinux.org/pacman/libalpm.3.html}}<br />
{{Article summary link|pacman(8) Manual Page|https://www.archlinux.org/pacman/pacman.8.html}}<br />
{{Article summary link|pacman.conf(5) Manual Page|https://www.archlinux.org/pacman/pacman.conf.5.html}}<br />
{{Article summary link|repo-add(8) Manual Page|https://www.archlinux.org/pacman/repo-add.8.html}}<br />
{{Article summary end}}<br />
<br />
<br />
[[Wikipedia:Package management system|Менеджер пакетов]] '''[https://archlinux.org/pacman/ pacman]''' &mdash; является одной из основных особенностей Arch Linux. Он сочетает в себе простой формат бинарных пакетов и легкую в использовании систему сборки (смотрите [[Arch Build System]] и [[makepkg]]). '''Pacman''' позволяет пользователям с легкостью управлять и настраивать под себя пакеты, вне зависимости от того, из официального ли они репозитария Arch или собранные самостоятельно.<br />
<br />
'''Pacman''', синхронизируя пакеты с главным сервером, поддерживает систему в актуальном состоянии. Такая клиент-серверная модель, позволяет скачивать/устанавливать пакеты со всеми требуемыми зависимостями всего одной командой.<br />
<br />
'''Pacman''' написан на языке C и использует формат пакетов {{ic|.pkg.tar.xz}}.<br />
<br />
{{Tip|Официальный пакет {{Pkg|pacman}} включает в себя много дополнительных полезных инсрументов, таких как [[makepkg]], pactree, vercomp и другие. Весь перечень можно получить с помощью {{ic|pacman -Ql pacman <nowiki>|</nowiki> grep bin}} }}<br />
<br />
== Конфигурация ==<br />
<br />
Основные настройки pacman находятся в {{ic|/etc/pacman.conf}}. В этом файле, пользователь может указать все нужные ему настройки программы. Подробнее о конфигурировании можно прочесть в [https://www.archlinux.org/pacman/pacman.conf.5.html man pacman.conf].<br />
<br />
=== Основные Параметры ===<br />
<br />
Основные параметры находятся в секции {{ic|[options]}}. Для получения дополнительной информации о параметрах - прочтите страницу man или изучите установленный по умолчанию файл {{ic|pacman.conf}}.<br />
<br />
==== Пропуск обновления пакетов ====<br />
<br />
Для пропуска обновления какого-либо пакета, добавьте его название в строку:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета</nowiki>}}<br />
<br />
В случае, если необходимо в строке {{ic|IgnorePkg}} перечислить несколько пакетов - разделяйте имена пакетов пробелами:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета1 имя_пакета2 имя_пакета3</nowiki>}}<br />
<br />
==== Пропуск обновления группы пакетов ====<br />
<br />
Как и в случае с пакетом, вы также можете запретить обновления группы пакетов, например так:<br />
<br />
{{bc|<nowiki>IgnoreGroup=имя_группы</nowiki>}}<br />
<br />
=== Репозитории ===<br />
<br />
В этом разделе файла {{ic|pacman.conf}} указываются репозитории, которые будут использоваться. Их можно указать прямо здесь или подключить из другого файла.<br />
<br />
Все официальные репозитории перечислены в одном файле - {{ic|/etc/pacman.d/mirrorlist}}, для доступа к ним используется переменная {{ic|$repo}}, таким образом достаточно поддерживать в актуальном состоянии только один список.<br />
<br />
Далее приведен пример использования [[mirrors|зеркал]] [[Official Repositories|официальных репозиториев]], которые перечислены в {{ic|/etc/pacman.d/mirrorlist}}.<br />
<br />
{{bc|<nowiki><br />
<br />
#[testing]<br />
#SigLevel = PackageRequired <br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
#SigLevel = PackageRequired<br />
Include=/etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#[community-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#Если в вашей x86_64 системе необходимо запускать 32-битные программы,<br />
#раскоментируйте нужные multilib репозитории.<br />
<br />
#[multilib-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[multilib]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# Использование собственного репозитория. Обратитесь к справочной странице pacman для<br />
# получения дополнительной информации по созданию собственных репозиториев.<br />
<br />
#[custom]<br />
#SigLevel = Optional TrustAll<br />
#Server = file:///home/custompkgs<br />
</nowiki>}}<br />
<br />
{{Note|Будьте осторожны при использовании репозитория [testing]. Пакеты в нём активно разрабатываются и обновляются, это может сказаться на стабильности и работоспособности других пакетов или системы в целом. Людям, использующим репозиторий [testing], для своевременного получения информации рекомендуется подписаться на [https://mailman.archlinux.org/mailman/listinfo/arch-dev-public список рассылки arch-dev-public].}}<br />
<br />
=== Безопасность пакетов ===<br />
<br />
В Pacman 4 реализован дополнительный уровень безопасности устанавливаемых пакетов - подписи пакетов. Для включения проверки подписей перейдите [[pacman-key|сюда]].<br />
<br />
== Использование ==<br />
<br />
Чтобы узнать обо всех возможностях pacman - изучите [https://archlinux.org/pacman/pacman.8.html man pacman]. Примеры ниже - это только небольшая подборка доступных операций.<br />
<br />
===Установка Пакетов===<br />
<br />
====Установка определенных пакетов====<br />
Для установки одного пакета или группы пакетов (включая зависимости), используйте следующую команду:<br />
<br />
# pacman -S имя_пакета1 имя_пакета2 ...<br />
<br />
Если пакет имеет несколько версий в разных репозиториях (например в [extra] и [testing]). Можно указать, откуда именно следует установить пакет:<br />
<br />
# pacman -S extra/имя_пакета<br />
<br />
====Установка группы пакетов====<br />
Некоторые пакеты принадлежат к группе пакетов, которые могут быть установлены одновременно. Например, при выполнении команды:<br />
<br />
# pacman -S gnome<br />
будут установлены все пакеты входящие в группу {{ic|gnome}}. Чтобы увидеть список пакетов принадлежащих к группе gnome, выполните:<br />
<br />
# pacman -Sg gnome<br />
<br />
Перечень доступных групп пакетов можно изучить посетив https://www.archlinux.org/groups/.<br />
<br />
{{Note|Если не будет использована опция {{ic|--needed}}, то при установке группы будут переустановлены все ранее установленные в систему и принадлежащие этой группе пакеты (даже если установленные в системе пакеты будут иметь последнюю доступную версию).}}<br />
<br />
{{Warning|1=При установке не достаточно одного обновления списка пакетов (например {{ic|pacman -Sy имя_пакета}}) - могут возникнуть проблемы с зависимостями, смотрите разделы [https://bbs.archlinux.org/viewtopic.php?id=89328] и [[#Частичные обновления официально не поддерживаются|Частичные обновления не поддерживаются]]. В первую очередь, перед установкой новых пакетов, выполняйте полное [[#Обновление Системы|обновление системы]].}}<br />
<br />
=== Удаление Пакетов ===<br />
<br />
Для удаления пакета, без удаления установленных зависимостей:<br />
<br />
# pacman -R имя_пакета<br />
<br />
Для удаления пакета со всеми зависимостями, не используемыми другими установленными пакетами:<br />
<br />
# pacman -Rs имя_пакета<br />
<br />
Для удаления пакета, его зависимостей, и всех пакетов зависящих от целевого пакета:<br />
<br />
{{Warning|Эта операция рекурсивна и должна использоваться с осторожностью, так как появляется риск удалить много потенциально необходимых пакетов.}}<br />
<br />
# pacman -Rsc имя_пакета<br />
<br />
По умолчанию pacman создает резервные копии конфигурационных файлов удаляемых приложений с помощью добавления к ним расширения: {{ic|.pacsave}}. Если вы хотите удалить и эти файлы - используйте ключ {{ic|-n}}:<br />
<br />
# pacman -Rn имя_пакета<br />
<br />
{{Note|pacman не удаляет конфигурационных файлов, созданных самими приложениями (например "dot-файлы" в вашей домашней папке).}}<br />
<br />
===Обновление Системы===<br />
<br />
pacman может обновить все пакеты системы одной командой. Количество пакетов зависит от того, насколько свежие пакеты стоят в вашей системе. Лучший вариант - синхронизация базы данных репозиториев '''И''' обновление вашей системы одной командой (не будут обновлены пакеты из 'локальных' и не настроенных репозиториев):<br />
<br />
# pacman -Syu<br />
<br />
{{Warning|В связи с тем, что Arch является постоянно-обновляемым дистрибутивом, пользователям следует помнить, что после или в процессе обновления могут возникнуть непредвиденные трудности. Поэтому обновляться следует с осторожностью. Это означает, что если, например, ожидаются большие изменения или нововведения в обновляемых пакетах, то обновлять систему лучше тогда, когда у пользователя будет достаточно свободного времени и он будет готов к решению возможных проблем.}}<br />
<br />
pacman является мощным инструментом по управлению пакетами, но он не сможет обработать все возможные ситуации. Если вас это смущает - прочтите [[The Arch Way|Путь Arch Linux]]. Пользователь должен быть внимателен и сам заниматься обеспечением работоспособности своей системы. '''При выполнении обновления системы, крайне важно, читать и осмысливать всю информацию которую выводит pacman.''' Если вы изменяли конфигурационный файл, то при обновлении, во избежание перезаписи, будет создан новый конфигурационный файл {{ic|.pacnew}}. pacman предложит объединить его с вашим конфигурационным файлом. Выполнять объединение файлов придется вручную и, лучше всего, сразу после обновления. Для получения дополнительной информации обратитесь к руководству [[Pacnew and Pacsave Files]].<br />
<br />
{{Tip|Не забывайте, что вывод pacman заносится в {{ic|/var/log/pacman.log}}.}}<br />
<br />
Перед обновлением желательно посетить [https://www.archlinux.org/ главную страницу Arch Linux], [https://www.archlinux.org.ru/ главную страницу русскоязычного сообщества Arch Linux] и проверить там последние новости (или подписаться на канал RSS): для обновлений требующих дополнительного вмешательства (если выполнения указанных pacman-ом действий не достаточно) будут добавлены соответствующие новости.<br />
<br />
Если решить проблемы согласно инструкциям не удаётся - поищите подобные сообщения на форуме. Вполне возможно, что другие пользователи столкнувшиеся с подобными проблемами уже предоставили варианты по её решению.<br />
<br />
=== Запросы к Базе Данных Пакетов ===<br />
<br />
pacman, с помощью флага {{ic|-Q}}, может искать пакеты в локальной базе данных; см.:<br />
<br />
$ pacman -Q --help<br />
<br />
и, с помощью флага {{ic|-S}}, в базе данных (репозитариях); см.:<br />
<br />
$ pacman -S --help<br />
<br />
pacman умеет искать пакеты в базе данных, как по названиям, так и по описаниям:<br />
<br />
$ pacman -Ss условие1 условие2 ...<br />
<br />
Поиск пакета по имени в базе данных (вывод без дополнительной информации):<br />
<br />
$ pacman -Sqs условие1 условие2 ...<br />
<br />
Для поиска среди установленных пакетов:<br />
<br />
$ pacman -Qs условие1 условие2 ...<br />
<br />
Для отображения обширной информации о данном пакете:<br />
<br />
$ pacman -Si имя_пакета<br />
<br />
для установленных пакетов:<br />
<br />
$ pacman -Qi имя_пакета<br />
<br />
Использование сдвоенного флага {{ic|-i}} позволит просмотреть список резервных копий файлов и список измененных файлов:<br />
<br />
$ pacman -Qii имя_пакета<br />
<br />
Для получения списка файлов установленного пакета:<br />
<br />
$ pacman -Ql имя_пакета<br />
<br />
Для получения списка файлов неустановленного пакета можно использовать утилиту {{ic|pkgfile}}, из состава пакета [[pkgtools]], или {{ic|nosr}}, входящую в пакет {{aur|nosr-git}}, который расположен в [[AUR]].<br />
<br />
Чтобы узнать какому пакету принадлежит нужный файл:<br />
<br />
$ pacman -Qo /путь/к/файлу/имя_файла<br />
<br />
Для получения списка пакетов, которые больше не требуются как зависимости (пакеты, которые могут быть безопасно удалены или сироты):<br />
<br />
$ pacman -Qdt<br />
<br />
Для отображения зависимостей в виде дерева:<br />
<br />
$ pactree имя_пакета<br />
<br />
Для получения списка пакетов, которые зависят от вашего пакета - можно воспользоваться утилитой {{ic|whoneeds}} из состава пакета [[pkgtools]]:<br />
<br />
$ whoneeds имя_пакета<br />
<br />
=== Получение Списка Установленных Пакетов для Быстрого Восстановления Системы ===<br />
<br />
Хорошей практикой явлется сохранение списка всех установленых пакетов. Если ваша система "упала" и её сложно восстановить, pacman может легко переустановить эти пакеты.<br />
<br />
Сначала, сохраните в список пакетов (доступных в репозитории):<br />
<br />
pacman -Qqe | grep -v "$(pacman -Qmq)" > pkglist<br />
<br />
# безопасная, но и более сложная альтернатива (во избежание удаления частичных совпадений)<br />
comm -13 <(pacman -Qmq | sort) <(pacman -Qqe | sort) > pkglist<br />
<br />
Сохраните этот файл на флешке или на другом носителе.<br />
<br />
Скопируйте файл pkglist в новую систему, перейдите в эту папку.<br />
<br />
Для восстановления используйте команду:<br />
pacman -S $(cat pkglist)<br />
<br />
=== Получение Списка Файлов не Принадлежащих Любому Пакету ===<br />
<br />
Если вы всегда хотите держать свою систему в чистоте и уважаете [[Путь Arch]], вы должны иногда проверять файлы отсутствующие в базе данных pacman. Эти файлы, зачастую установлены сторонними приложениями с использованием '''./configure; make; make install''' и т.п. Вы можете найти все эти установленные файлы (или симлинки) используя этот простой скрипт:<br />
<br />
#!/bin/bash<br />
time /usr/bin/pacman -Ql | cut -d ' ' -f 2- | sort -u > db.txt<br />
time find /arch /bin /boot /etc /lib /opt /sbin /usr 2>/dev/null | while read i; do<br />
if [ ! -d "$i" ]; then<br />
echo "$i"<br />
fi;<br />
done | sort -u > fs.txt<br />
time comm -23 fs.txt db.txt > non-db.txt<br />
<br />
#для проверки:<br />
#cat non-db.txt | while read i; do pacman -Qo "$i" 2>&1; done | tee test.txt<br />
<br />
заметьте - все файлы указанные в non-db.txt НЕ БУДУТ удалены без подтверждения. Здесь могут находиться конфигурационные файлы, журналы и др. Используйте этот список только если знаете, что вы делаете.<br />
<br />
=== Дополнительные команды ===<br />
<br />
Обновление системы и установка списка пакетов (за одну операцию):<br />
<br />
# pacman -Syu имя_пакета1 имя_пакета2 ...<br />
<br />
Скачать пакет, но не устанавливать его:<br />
<br />
# pacman -Sw имя_пакета<br />
<br />
Установить локальный пакет (не из репозитория):<br />
<br />
# pacman -U /путь/к/пакету/имя_пакета-version.pkg.tar.xz<br />
<br />
Установить 'не локальный' пакет (не из репозитория):<br />
<br />
# pacman -U <nowiki>http://www.example.com/repo/example.pkg.tar.xz</nowiki><br />
<br />
Удалить из кэша ({{ic|/var/cache/pacman/pkg}}) неустановленные пакеты:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Поэтому, в случае возникновения проблем после обновлениий - появятся дополнительные трудности, связанные с откатом версий пакетов.}}<br />
<br />
# pacman -Sc<br />
<br />
Полная очистка кэша пакетов:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Выполняйте это только в том случае, если у вас всё нормально работает и вы уверены, что вам не понадобится [[Downgrade_packages| откатывать]] какой-либо пакет.}}<br />
<br />
# pacman -Scc<br />
<br />
В качестве альтернативы ключам {{ic|-Sc}} и {{ic|-Scc}} - можно использовать пакет {{AUR|Cacheclean}}, доступный в [[AUR]]. Это скрипт на python, который позволяет выборочно очищать кэш pacman'а от старых версий пакетов.<br />
<br />
===Частичные обновления официально не поддерживаются===<br />
Arch Linux постоянно обновляемый дистрибутив и это значит, что в репозиториях всегда находятся новые версии [[Wikipedia:Library (computing)|библиотек]]. Разработчики и доверенные пользователи собирают пакеты для репозиториев с использованием этих библиотек. Для пакетов установленных локально (например пакеты из [[Arch User Repository|AUR]]), нужно самостоятельно решать вопрос с зависимостями согласно данным [[Wikipedia:soname|soname]].<br />
<br />
Именно поэтому частичное обновление '''не поддерживается'''. Не используйте {{ic|pacman -Sy package}} или другие эквиваленты {{ic|pacman -Sy}} и {{ic|pacman -S package}}. Всегда перед установкой пакетов синхронизируйте репозитории и обновляйте систему полностью. По той же самой причине нужно быть осторожными при использовании {{ic|IgnorePkg}} и {{ic|IgnoreGroup}}.<br />
<br />
Если после частичного обновления оказалось, что бинарные файлы не могут найти нужных версий библиотек и проблему '''не возможно "решить" созданием символической ссылки''' (библиотеки не имеют '''обратной совместимости''') - выполните {{ic|pacman -Syu}}, как правило этого будет достаточно для устранения проблемы.<br />
<br />
== Устранение проблем ==<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init, но отсутствуют ssh / X или генераторы случайных чисел. Как мне получить энтропию?<br />
|answer=Для решения проблемы нужно перемещать указатель мыши, нажимать на клавиатуре случайные кнопки или запустить дисковую активность, например с помощью {{ic|updatedb}}. Будьте терпиливы, процесс может затянуться на длительное время. При этом переход в другую консоль, по Alt+F2-6, временно работать не будет.}}<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init через ssh. Как мне получить энтропию?<br />
|answer=На целевой машине соберите и установите пакет {{AUR|rng-tools}} из [[AUR]]. Подключитесь через ssh и выполните следующие команды:<br />
{{bc|# sed -i 's/0/10/' /etc/conf.d/rngd<br />
# rngd -f -r /dev/urandom &<br />
# pacman-key --init}}<br />
<br />
После успешного выполнения pacman-key просто остановите rngd и удалите пакет.<br />
<br />
{{bc|# killall rngd<br />
# pacman -Rns rng-tools}}<br />
}}<br />
<br />
{{FAQ<br />
|question=Pacman не находит PGP ключи для импорта и не обновляет пакеты. Как можно это исправить?<br />
|answer=На самом деле проблема не в pacman. Проблема в сервере ключей, используемом по умолчанию. Измените сервер ключей на более надежный таким способом:<br />
<br />
# sed -i '/keyserver/ s,keys.gnupg.net,pgp.mit.edu,' /etc/pacman.d/gnupg/gpg.conf<br />
Pacman4 теперь готов к использованию.}}<br />
<br />
{{FAQ<br />
|question=Обновление пакета XYZ сломало мою систему!<br />
|answer=Arch Linux - передовой, постоянно обновляемый дистрибутив. Обновления для пакетов становятся доступными тогда, когда их посчитают достаточно стабильными для повседневного использования. Тем не менее, обновления иногда требуют вмешательства пользователя: может потребоваться обновление конфигурационных файлов, могут измениться дополнительные зависимости, и т.д.<br />
<br />
Запомните основное правило - не обновляйте систему "вслепую". Всегда внимательно изучайте список обновляемых пакетов. Обращайте внимание на обновление "критически важных" компонентов ({{ic|linux}}, {{ic|xorg-server}}, и т.д.). Если такие пакеты есть - проверьте наличие новостей на https://www.archlinux.org/ и просмотрите последние сообщения на форуме, возможно кто-то уже столкнулся с проблемами при обновлении.<br />
<br />
Если известно/ожидается, что после обновления могут возникнуть проблемы - pacman выведет соответствующее сообщение. Если вы упустили какую-то информацию, которую вывел pacman, то её можно еще раз просмотреть в ({{ic|/var/log/pacman.log}}). <br />
<br />
Теперь, '''если не было никаких предупреждений от pacman, отсутствуют соответствующие новости на https://www.archlinux.org/ и нет сообщений относительно обновлений на форуме''', имеет смысл обратиться за помощью на форум, [[IRC Channel|IRC-канал]], или [[Downgrading Packages|откатить пакет к работающей версии]].<br />
<br />
Перечитайте последний абзац.}}<br />
<br />
{{FAQ<br />
|question=Я знаю что для пакета ABC доступны обновления, но pacman сообщает мне, что система в актуальном состоянии!<br />
|answer=Зеркала pacman синхронизируются не мгновенно. Иногда может пройти более 24 часов, прежде чем обновления станут доступны вам. <br />
<br />
В качестве решения можно посоветовать сменить зеркало. На [https://www.archlinux.org/mirrors/status/ MirrorStatus] можно посмотреть состояние зеркал.}}<br />
<br />
{{FAQ<br />
|question=При обновлении появляется сообщение об ошибке: "file exists in filesystem" ("файл существует в файловой системе")!<br />
|answer=Дополнительно: ''Взято из https://bbs.archlinux.org/viewtopic.php?id=56373 у Misfit138.''<br />
<br />
error: could not prepare transaction<br />
error: failed to commit transaction (conflicting files)<br />
package: /path/to/file exists in filesystem<br />
Errors occurred, no packages were upgraded.<br />
<br />
Почему это происходит: pacman при обнаружении конфликтующих файлов, по умолчанию, не будет их перезаписывать автоматически. Это не ошибка, так сделано специально.<br />
<br />
Вопрос решается тривиально. Сначала проверьте не принадлежит ли файл другому пакету: ({{ic|pacman -Qo /path/to/file}}). Если принадлежит - создайте [[Reporting Bug Guidelines|отчет об ошибке]]. Если проблемный файл не нужен другим пакетам - переименуйте его и перезапустите команду обновления. Если в дальнейшем проблем не возникнет, то старый файл можно удалить.<br />
<br />
Если программа была установлена вручную, без использования pacman или его оболочек, вам нужно будет удалить программу и все ее файлы, а затем выполнить установку при помощи pacman.<br />
<br />
Информация, о каждом установленном файле, храниться в файле с метаданными пакета {{ic|/var/lib/pacman/local/$package-$version/files}}. При повреждении этого файла (может быть пустым или отсутствовать), во время обновления пакета, и будет получена ошибка - "file exists in filesystem" ("файл существует в файловой системе").<br />
<br />
Обычно такие ошибки возникают во время установки или обновления всего лишь одного пакета, поэтому вместо ручного переименования или удаления конфликтующих файлов, принадлежащих данному пакету, выполните {{ic|pacman -S --force $package}}, после этой команды pacman принудительно перезапишет эти файлы.<br />
<br />
Никогда '''не''' запускайте {{ic|pacman -Syu --force}}.<br />
}}<br />
<br />
{{FAQ<br />
|question=При установке пакета я получаю сообщение об ошибке: "not found in sync db"<br />
|answer=Для начала убедитесь, что пакет вообще существует (и вы нигде не опечатались!). Если пакет не существует, то проблема может быть в том, что ваша база пакетов не синхронизирована с репозиториями или репозитории неправильно настроены. Для принудительного обновления списка пакетов попробуйте выполнить {{ic|pacman -Syy}}.}}<br />
<br />
{{FAQ<br />
|question=pacman несколько раз обновляет один и тот же пакет!<br />
|answer=Это может быть связано с дублированием записей в {{ic|/var/lib/pacman/local/}}, к примеру имеется два экземпляра {{ic|linux}}. {{ic|pacman -Qi}} выведет правильную версию, а {{ic|pacman -Qu}} покажет её как устаревшую и, следовательно, требующую обновления.<br />
<br />
Решение: удалить лишнюю запись из {{ic|/var/lib/pacman/local/}}.<br />
<br />
{{Note|pacman версии 3.4, в случае обнаружения повторяющихся записей, должен вывести сообщение об ошибке.}}}}<br />
<br />
{{FAQ<br />
|question=pacman сбоит при обновлении!<br />
|answer=Если при попытке удаления, переустановки или обновления пакетов pacman падает с ошибкой "database write" ("записи в базу данных"):<br />
#Загрузитесь используя Arch live CD<br />
#Смонтируйте корневую файловую систему<br />
#Обновите базу данных pacman с помощью {{ic|pacman -Syy}}<br />
#Переустановите сломанный пакет через {{ic|pacman -r /путь/к/корневому_разделу -S package}}}}<br />
<br />
{{FAQ<br />
|question=Я установил программу используя {{ic|make install}}; теперь эти файлы не принадлежат ни одному из пакетов!<br />
|answer=При обнаружении "конфликтующих файлов", чтобы их не перезаписывать вручную, можно использовать pacman с ключом {{ic|-f}} ({{ic|pacman -Sf}}).<br />
<br />
Почитайте [[pacman Tips#Identify files not owned by any package]], о скрипте, проверяющем файловую систему на наличие ''брошенных'' файлов.}}<br />
<br />
{{FAQ<br />
|question=Мне нужен пакет с определенным файлом. Как узнать какому пакету это файл принадлежит?<br />
|answer=Установите [[pkgtools]], в его состав входит {{ic|pkgfile}}, использующий отдельную базу данных со всеми файлами и связанными с ними пакетами.}}<br />
<br />
{{FAQ<br />
|question=pacman полностью не работоспособен! Как мне его переустановить?<br />
|answer=Если pacman не работает и не получается его восстановить - скачайте вручную пакеты ({{Pkg|openssl}}, {{Pkg|libarchive}} и {{Pkg|pacman}}) и распакуйте их в корневой раздел. Бинарный pacman будет восстановлен вместе с конфигурационным файлом по умолчанию. Затем, для поддержания целостности базы данных пакетов, переустановите скачанные пакеты стандартными средствами pacman. Дополнительную информацию и пример (устарел) скрипта, автоматизирующего этот процесс, можно найти в [https://bbs.archlinux.org/viewtopic.php?id=95007 этом] сообщении форума.}}<br />
<br />
{{FAQ<br />
|question=После обновления системы получаю следующее сообщение об ошибке - "unable to find root device", после перезагрузки система не загружается.<br />
|answer=Вероятно при обновлении ядра "поломалась" initramfs (например при использовании pacman с опцией {{ic|--force}}). Для восстановления работоспособности выполните следующие действия.<br />
<br />
Загрузитесь с Arch live-cd. После загрузки выполните:<br />
<br />
# mkdir /mnt/arch<br />
# mount /dev/sda''X'' /mnt/arch (ваш корневой раздел)<br />
# cd /mnt/arch<br />
# mount -t proc proc proc/<br />
# mount -t sysfs sys sys/<br />
# mount -o bind /dev dev/<br />
# mount /dev/sda''X'' boot/ (ваш раздел /boot)<br />
# chroot .<br />
# pacman -Syu udev mkinitcpio<br />
# mkinitcpio -p linux<br />
<br />
Затем отмонтируйте смонтированные разделы и перезагрузитесь.}}</div>
Vadik
https://wiki.archlinux.org/index.php?title=E4rat_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=200839
E4rat (Русский)
2012-05-09T10:39:01Z
<p>Vadik: </p>
<hr />
<div>[[Category:Русский]]<br />
[[Category:Загрузка (Русский)]]<br />
{{i18n|e4rat}}<br />
<br />
{{Article summary start|Описание}}<br />
{{Article summary text|Уменьшение времени загрузки системы и входа в X-ы для файловой системы ext4 с использованием [http://e4rat.sourceforge.net/ утиллит e4rat].}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary wiki|Improve Boot Performance}}<br />
{{Article summary wiki|Preload}}<br />
{{Article summary wiki|Readahead}}<br />
{{Article summary wiki|Ureadahead}}<br />
{{Article summary wiki|Ext4}}<br />
{{Article summary heading|Темы форума}}<br />
{{Article summary link|Main discussion|https://bbs.archlinux.org/viewtopic.php?id&#61;115976}}<br />
{{Article summary link|Improved e4rat-preload|https://bbs.archlinux.org/viewtopic.php?id&#61;117776}}<br />
{{Article summary end}}<br />
<br />
e4rat - проект Andreas Rid и Gundolf Kiefer, расшифровывается как e4 'reduced access time' (сокращение времени доступа), применяется только в файловой системе [[ext4]]. В [http://e4rat.sourceforge.net/ набор утилит e4rat] входит: e4rat-collect, e4rat-realloc и e4rat-preload.<br />
<br />
==Описание==<br />
Если взглянуть на статистику [[bootchart]], то можно заметить, что при загрузке системы ни жесткий диск, ни CPU не используются полностью. e4rat позволяет максимально задействовать жесткий диск и CPU, ускоряя таким образом процесс загрузки. Все проводится в три этапа:<br />
* '''e4rat-collect''' - собирает статистику по используемым файлам в течении определенного времени (по умолчанию 120 секунд, но может быть скорректировано)<br />
* '''e4rat-realloc''' - перераспределяет файлы из списка (помещает их в одну область диска)<br />
* '''e4rat-preload''' - заранее загружает нужные файлы в память<br />
<br />
===Кому это нужно, а кому нет===<br />
e4rat может быть полезной в системах с одним пользователем, использующим автозапуск Х-в, при этом также можно ускорить запуск нужных программ. На серверах или при загрузке в CLI - время загрузки системы может снизиться не на много. Для SSD-дисков вообще нет смысла использовать, поскольку у них отсутствуют движущиеся части и, как следствие, отсутствуют (почти) задержки, однако, пользователям таких дисков, может быть полезно ознакомиться с [[Ureadahead]].<br />
<br />
{{Note|'''Пользователям ureadahead следует обратить внимание:''' в [http://e4rat.sourceforge.net/wiki/index.php/Main_Page#Ubuntu_and_ureadahead оффициальном руководстве e4rat] говориться о том, что ureadahead конфликтует с e4rat. Это может быть верным для Ubuntu, но в Arch Linux эти пакеты возможно будут работать нормально, хотя процесс загрузки, скорее всего, и не ускорится.}}<br />
<br />
Перед использованием e4rat рекомендуется сделать резервные копии изменяемых во избежание потери важных данных.<br />
<br />
==Установка==<br />
Пакет {{Pkg|e4rat}} можно найти в репозитории [community] и установить так:<br />
# pacman -S e4rat<br />
<br />
==Использование==<br />
Далее более подробно:<br />
===e4rat-collect===<br />
Чтоб e4rat смог создать список файлов, необходимо отредактировать файл {{ic|/boot/grub/menu.lst}} ([[grub]] legacy) или {{ic|/boot/grub/grub.cfg}} ([[grub2]]), добавив в строку загрузки ядра linux следующее:<br />
<br />
init=/sbin/e4rat-collect<br />
<br />
Данное действие нужно будет выполнить один раз, поэтому также можно просто отредактировать нужную строку в меню grub на этапе загрузки из командной строки.<br />
<br />
После загрузки, в течении 120 секунд, e4rat-collect будет собирать нужную информацию. Поэтому, в течении 2-х минут после загрузки, запустите X-ы, откройте любимый браузер или почтовую программу и т.д., при этом утилита зарегистрирует все запущенные программы и используемые файлы. При необходимости можно изменить стандартное время сбора статистики, для этого отредактируйте файл {{ic|/etc/e4rat.conf}}. Чтобы вручную завершить работу e4rat-collect, выполните:<br />
<br />
# e4rat-collect -k<br />
или<br />
# pkill e4rat-collect<br />
<br />
После загрузки и успешного завершения работы e4rat-collect должен появиться файл: {{ic|/var/lib/e4rat/startup.log}}<br />
<br />
Теперь не забудьте удалить команду запуска e4rat-collect из своего файла {{ic|menu.lst}} или {{ic|grub.cfg}} (не обязательно, если вы ее добавляли из командной строки [[GRUB]] в процессе загрузки системы).<br />
<br />
===e4rat-realloc===<br />
Для запуска процесса перемещения файлов, согласно созданному в предыдущем шаге списку, необходимо перейти в init 1:<br />
# init 1<br />
Авторизоваться в качестве root и выполнить:<br />
# e4rat-realloc /var/lib/e4rat/startup.log<br />
В зависимости от того, сколько файлов перечислено в {{ic|startup.log}}, процесс может затянуться на продолжительное время.<br />
{{Warning|Ни в коем случае не прерывайте процесс перемещения файлов, так как это может привести к порче данных и дальнейшей невозможности загрузки системы!}}<br />
<br />
===e4rat-preload===<br />
Отредактируйте файл {{ic|/boot/grub/menu.lst}} ([[grub]] legacy) или {{ic|/boot/grub/grub.cfg}} ([[grub2]]), добавив в параметры загрузки ядра:<br />
<br />
init=/sbin/e4rat-preload<br />
<br />
:{{Note|1=В случае использования grub2, параметры загрузки ядра добавляйте в строку {{Ic|1=GRUB_CMDLINE_LINUX="..."}} файла {{Ic|/etc/default/grub}}.}}<br />
<br />
Перезагружайтесь и наслаждайтесь.<br />
<br />
{{Note|После обновления системы может понадобиться выполнить заново все описанные для [[#e4rat-collect|e4rat-collect]], [[#e4rat-realloc|e4rat-realloc]] и [[#e4rat-preload|e4rat-preload]] действия.}}<br />
<br />
===Альтернатива: e4rat-preload-lite===<br />
[https://bbs.archlinux.org/viewtopic.php?id=117776&p=1 jlindgren], в качестве альтернативы, разработал бинарный preload, позволяющий сэкономить несколько секунд при загрузке.<br />
<br />
Экономия достигается за счет<br />
* использования чистого C, без каких-либо зависимостей от внешних библиотек, что позволяет уменьшить количество связанных файлов .so с 22 до 3, и<br />
* предварительной загрузки первых 100 файлов (таких как дескрипторы и файлы содержимого) перед запуском /sbin/init, и дальнейшая загрузка остальных файлов как параллельно, так и в определенной последовательности.<br />
<br />
{{AUR|e4rat-preload-lite}} можно установить из [[AUR]].<br />
<br />
Отредактируйте файл {{ic|/boot/grub/menu.lst}} ([[grub]] legacy) или {{ic|/boot/grub/grub.cfg}} ([[grub2]]), добавив в параметры загрузки ядра:<br />
<br />
init=/usr/sbin/e4rat-preload-lite<br />
<br />
Перезагружайтесь и наслаждайтесь.<br />
<br />
==e4rat и различные системы инициализации==<br />
По умолчанию e4rat-collect после завершения будет заменена на /sbin/init. Если вам нужно указать другой PID 1, например /bin/[[systemd]], отредактируйте файл {{ic|/etc/e4rat.conf}}, раскомментировав в нем строку с нужным параметром '''init'''<br />
<br />
==Bootchart==<br />
{{Note|Еще находится в разработке и толком не работает - любые предложения приветствуются}}<br />
<br />
Запустите [[Bootchart]] до и после использования e4rat, а затем сравните полученные результаты. Должны появиться видимые изменения.<br />
<br />
===bootchart 0.9-9===<br />
В этой версии журнал ведется только до запуска *dm. Для обхода данного ограничения можно попробовать выполнить следующее (работает не у всех):<br />
<br />
В файле {{ic|/etc/bootchartd.conf}} установите:<br />
<br />
AUTO_STOP_LOGGER="no"<br />
<br />
Когда будет нужно остановить работу сервиса - выполните:<br />
<br />
# bootchartd stop<br />
<br />
Для запуска e4rat-preload и bootchart добавив в параметры загрузки ядра:<br />
<br />
init=/sbin/bootchartd bootchart_init=/sbin/e4rat-preload<br />
<br />
===bootchart2===<br />
Для совместного использования bootchart2 с e4rat отредактируйте {{ic|/sbin/bootchartd}} и заменить строку {{ic|<nowiki>init="/sbin/init"</nowiki>}} на {{ic|<nowiki>init="/sbin/e4rat-preload"</nowiki>}}.<br />
<br />
{{ic|/etc/bootchartd.conf}} от bootchart2 устроен иначе, а строка<br />
<br />
EXIT_PROC="kdm_greet xterm konsole gnome-terminal metacity mutter compiz ldm icewm-session enlightenment"<br />
<br />
может быть скорректирована таким образом, что можно будет либо завершать программу вручную (если оставить строку пустой), либо, при запуске указанной в строке программы, bootchart2 будет остановлен автоматически.<br />
<br />
==Устранение неполадок==<br />
Если что-то не работает - можно попробовать следующее.<br />
<br />
===startup.log не создается===<br />
*отключите все проверки в {{ic|rc.conf}}<br />
*изучите все сообщения из<br />
# dmesg | grep e4rat<br />
*в {{ic|e4rat.conf}} увеличите значения verbose и loglevel до 31.<br />
<br />
===e4rat - отчеты об ошибках в файловой системе ext2===<br />
*в файле {{ic|grub.cfg}} или {{ic|menu.lst}} добавьте в параметры загрузки ядра:<br />
rootfstype=ext4<br />
<br />
===/var/lib/e4rat/startup.log не доступен===<br />
*это говорит о том, что /var расположен на отдельном разделе и при загрузке еще не был смонтирован. Вам нужно переместить {{ic|startup.log}} на раздел который доступен (лучше всего в /etc/e4rat/) и, для сохранения изменений, перенастроить {{ic|/etc/e4rat.conf}}:<br />
{{bc|startup_log_file /etc/e4rat/startup.log}}</div>
Vadik
https://wiki.archlinux.org/index.php?title=Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=199904
Pacman (Русский)
2012-05-01T11:44:16Z
<p>Vadik: </p>
<hr />
<div>[[Category:Управление пакетами (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|pacman}} {{Lowercase title}}<br />
<br />
{{Article summary start|Описание}}<br />
{{Article summary text|pacman - [[Wikipedia:Package management system|пакетный менеджер]] Arch Linux. Менеджеры пакетов используются для установки, обновления и удаления программного обеспечения. В данной статье рассматриваются основные приемы и советы по устранению неполадок.}}<br />
{{Article summary heading|Обзор}}<br />
{{Article summary text|{{Package management overview}}}}<br />
{{Article summary heading|Дополнительно}}<br />
{{Article summary wiki|Downgrading Packages (Русский)}}<br />
{{Article summary wiki|Improve Pacman Performance (Русский)}}<br />
{{Article summary wiki|pacman GUI Frontends (Русский)}}<br />
{{Article summary wiki|pacman Rosetta}}<br />
{{Article summary wiki|pacman Tips}}<br />
{{Article summary wiki|Pacman package signing}}<br />
{{Article summary wiki|FAQ_(Русский)#Управление_пакетами}}<br />
{{Article summary wiki|pacman-key (Русский)}}<br />
{{Article summary wiki|Pacnew and Pacsave Files}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary link|libalpm(3) Manual Page|https://www.archlinux.org/pacman/libalpm.3.html}}<br />
{{Article summary link|pacman(8) Manual Page|https://www.archlinux.org/pacman/pacman.8.html}}<br />
{{Article summary link|pacman.conf(5) Manual Page|https://www.archlinux.org/pacman/pacman.conf.5.html}}<br />
{{Article summary link|repo-add(8) Manual Page|https://www.archlinux.org/pacman/repo-add.8.html}}<br />
{{Article summary end}}<br />
<br />
<br />
[[Wikipedia:Package management system|Менеджер пакетов]] '''[https://archlinux.org/pacman/ pacman]''' &mdash; является одной из основных особенностей Arch Linux. Он сочетает в себе простой формат бинарных пакетов и легкую в использовании систему сборки (смотрите [[Arch Build System]] и [[makepkg]]). '''Pacman''' позволяет пользователям с легкостью управлять и настраивать под себя пакеты, вне зависимости от того, из официального ли они репозитария Arch или собранные самостоятельно.<br />
<br />
'''Pacman''', синхронизируя пакеты с главным сервером, поддерживает систему в актуальном состоянии. Такая клиент-серверная модель, позволяет скачивать/устанавливать пакеты со всеми требуемыми зависимостями всего одной командой.<br />
<br />
'''Pacman''' написан на языке C и использует формат пакетов {{ic|.pkg.tar.xz}}.<br />
<br />
{{Tip|Официальный пакет {{Pkg|pacman}} включает в себя много дополнительных полезных инсрументов, таких как [[makepkg]], pactree, vercomp и другие. Весь перечень можно получить с помощью {{ic|pacman -Ql pacman <nowiki>|</nowiki> grep bin}} }}<br />
<br />
== Конфигурация ==<br />
<br />
Основные настройки pacman находятся в {{ic|/etc/pacman.conf}}. В этом файле, пользователь может указать все нужные ему настройки программы. Подробнее о конфигурировании можно прочесть в [https://www.archlinux.org/pacman/pacman.conf.5.html man pacman.conf].<br />
<br />
=== Основные Параметры ===<br />
<br />
Основные параметры находятся в секции {{ic|[options]}}. Для получения дополнительной информации о параметрах - прочтите страницу man или изучите установленный по умолчанию файл {{ic|pacman.conf}}.<br />
<br />
==== Пропуск обновления пакетов ====<br />
<br />
Для пропуска обновления какого-либо пакета, добавьте его название в строку:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета</nowiki>}}<br />
<br />
В случае, если необходимо в строке {{ic|IgnorePkg}} перечислить несколько пакетов - разделяйте имена пакетов пробелами:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета1 имя_пакета2 имя_пакета3</nowiki>}}<br />
<br />
==== Пропуск обновления группы пакетов ====<br />
<br />
Как и в случае с пакетом, вы также можете запретить обновления группы пакетов, например так:<br />
<br />
{{bc|<nowiki>IgnoreGroup=имя_группы</nowiki>}}<br />
<br />
=== Репозитории ===<br />
<br />
В этом разделе файла {{ic|pacman.conf}} указываются репозитории, которые будут использоваться. Их можно указать прямо здесь или подключить из другого файла.<br />
<br />
Все официальные репозитории перечислены в одном файле - {{ic|/etc/pacman.d/mirrorlist}}, для доступа к ним используется переменная {{ic|$repo}}, таким образом достаточно поддерживать в актуальном состоянии только один список.<br />
<br />
Далее приведен пример использования [[mirrors|зеркал]] [[Official Repositories|официальных репозиториев]], которые перечислены в {{ic|/etc/pacman.d/mirrorlist}}.<br />
<br />
{{bc|<nowiki><br />
<br />
#[testing]<br />
#SigLevel = PackageRequired <br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
#SigLevel = PackageRequired<br />
Include=/etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#[community-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#Если в вашей x86_64 системе необходимо запускать 32-битные программы,<br />
#раскоментируйте нужные multilib репозитории.<br />
<br />
#[multilib-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[multilib]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# Использование собственного репозитория. Обратитесь к справочной странице pacman для<br />
# получения дополнительной информации по созданию собственных репозиториев.<br />
<br />
#[custom]<br />
#SigLevel = Optional TrustAll<br />
#Server = file:///home/custompkgs<br />
</nowiki>}}<br />
<br />
{{Note|Будьте осторожны при использовании репозитория [testing]. Пакеты в нём активно разрабатываются и обновляются, это может сказаться на стабильности и работоспособности других пакетов или системы в целом. Людям, использующим репозиторий [testing], для своевременного получения информации рекомендуется подписаться на [https://mailman.archlinux.org/mailman/listinfo/arch-dev-public список рассылки arch-dev-public].}}<br />
<br />
=== Безопасность пакетов ===<br />
<br />
В Pacman 4 реализован дополнительный уровень безопасности устанавливаемых пакетов - подписи пакетов. Для включения проверки подписей перейдите [[pacman-key|сюда]].<br />
<br />
== Использование ==<br />
<br />
Чтобы узнать обо всех возможностях pacman - изучите [https://archlinux.org/pacman/pacman.8.html man pacman]. Примеры ниже - это только небольшая подборка доступных операций.<br />
<br />
===Установка Пакетов===<br />
<br />
====Установка определенных пакетов====<br />
Для установки одного пакета или группы пакетов (включая зависимости), используйте следующую команду:<br />
<br />
# pacman -S имя_пакета1 имя_пакета2 ...<br />
<br />
Если пакет имеет несколько версий в разных репозиториях (например в [extra] и [testing]). Можно указать, откуда именно следует установить пакет:<br />
<br />
# pacman -S extra/имя_пакета<br />
<br />
====Установка группы пакетов====<br />
Некоторые пакеты принадлежат к группе пакетов, которые могут быть установлены одновременно. Например, при выполнении команды:<br />
<br />
# pacman -S gnome<br />
будут установлены все пакеты входящие в группу {{ic|gnome}}. Чтобы увидеть список пакетов принадлежащих к группе gnome, выполните:<br />
<br />
# pacman -Sg gnome<br />
<br />
Перечень доступных групп пакетов можно изучить посетив https://www.archlinux.org/groups/.<br />
<br />
{{Note|Если не будет использована опция {{ic|--needed}}, то при установке группы будут переустановлены все ранее установленные в систему и принадлежащие этой группе пакеты (даже если установленные в системе пакеты будут иметь последнюю доступную версию).}}<br />
<br />
{{Warning|1=При установке не достаточно одного обновления списка пакетов (например {{ic|pacman -Sy имя_пакета}}) - могут возникнуть проблемы с зависимостями, смотрите разделы [https://bbs.archlinux.org/viewtopic.php?id=89328] и [[#Частичные обновления официально не поддерживаются|Частичные обновления не поддерживаются]]. В первую очередь, перед установкой новых пакетов, выполняйте полное [[#Обновление Системы|обновление системы]].}}<br />
<br />
=== Удаление Пакетов ===<br />
<br />
Для удаления пакета, без удаления установленных зависимостей:<br />
<br />
# pacman -R имя_пакета<br />
<br />
Для удаления пакета со всеми зависимостями, не используемыми другими установленными пакетами:<br />
<br />
# pacman -Rs имя_пакета<br />
<br />
Для удаления пакета, его зависимостей, и всех пакетов зависящих от целевого пакета:<br />
<br />
{{Warning|Эта операция рекурсивна и должна использоваться с осторожностью, так как появляется риск удалить много потенциально необходимых пакетов.}}<br />
<br />
# pacman -Rsc имя_пакета<br />
<br />
По умолчанию pacman создает резервные копии конфигурационных файлов удаляемых приложений с помощью добавления к ним расширения: {{ic|.pacsave}}. Если вы хотите удалить и эти файлы - используйте ключ {{ic|-n}}:<br />
<br />
# pacman -Rn имя_пакета<br />
<br />
{{Note|pacman не удаляет конфигурационных файлов, созданных самими приложениями (например "dot-файлы" в вашей домашней папке).}}<br />
<br />
===Обновление Системы===<br />
<br />
pacman может обновить все пакеты системы одной командой. Количество пакетов зависит от того, насколько свежие пакеты стоят в вашей системе. Лучший вариант - синхронизация базы данных репозиториев '''И''' обновление вашей системы одной командой:<br />
<br />
# pacman -Syu<br />
<br />
{{Warning|В связи с тем, что Arch является постоянно-обновляемым дистрибутивом, пользователям следует помнить, что после или в процессе обновления могут возникнуть непредвиденные трудности. Поэтому обновляться следует с осторожностью. Это означает, что если, например, ожидаются большие изменения или нововведения в обновляемых пакетах, то обновлять систему лучше тогда, когда у пользователя будет достаточно свободного времени и он будет готов к решению возможных проблем.}}<br />
<br />
pacman является мощным инструментом по управлению пакетами, но он не сможет обработать все возможные ситуации. Если вас это смущает - прочтите [[The Arch Way|Путь Arch Linux]]. Пользователь должен быть внимателен и сам заниматься обеспечением работоспособности своей системы. '''При выполнении обновления системы, крайне важно, читать и осмысливать всю информацию которую выводит pacman.''' Если вы изменяли конфигурационный файл, то при обновлении, во избежание перезаписи, будет создан новый конфигурационный файл {{ic|.pacnew}}. pacman предложит объединить его с вашим конфигурационным файлом. Выполнять объединение файлов придется вручную и, лучше всего, сразу после обновления. Для получения дополнительной информации обратитесь к руководству [[Pacnew and Pacsave Files]].<br />
<br />
{{Tip|Не забывайте, что вывод pacman заносится в {{ic|/var/log/pacman.log}}.}}<br />
<br />
Перед обновлением желательно посетить [https://www.archlinux.org/ главную страницу Arch Linux], [https://www.archlinux.org.ru/ главную страницу русскоязычного сообщества Arch Linux] и проверить там последние новости (или подписаться на канал RSS): для обновлений требующих дополнительного вмешательства (если выполнения указанных pacman-ом действий не достаточно) будут добавлены соответствующие новости.<br />
<br />
Если решить проблемы согласно инструкциям не удаётся - поищите подобные сообщения на форуме. Вполне возможно, что другие пользователи столкнувшиеся с подобными проблемами уже предоставили варианты по её решению.<br />
<br />
=== Запросы к Базе Данных Пакетов ===<br />
<br />
pacman, с помощью флага {{ic|-Q}}, может искать пакеты в локальной базе данных; см.:<br />
<br />
$ pacman -Q --help<br />
<br />
и, с помощью флага {{ic|-S}}, в базе данных (репозитариях); см.:<br />
<br />
$ pacman -S --help<br />
<br />
pacman умеет искать пакеты в базе данных, как по названиям, так и по описаниям:<br />
<br />
$ pacman -Ss условие1 условие2 ...<br />
<br />
Поиск пакета по имени в базе данных (вывод без дополнительной информации):<br />
<br />
$ pacman -Sqs условие1 условие2 ...<br />
<br />
Для поиска среди установленных пакетов:<br />
<br />
$ pacman -Qs условие1 условие2 ...<br />
<br />
Для отображения обширной информации о данном пакете:<br />
<br />
$ pacman -Si имя_пакета<br />
<br />
для установленных пакетов:<br />
<br />
$ pacman -Qi имя_пакета<br />
<br />
Использование сдвоенного флага {{ic|-i}} позволит просмотреть список резервных копий файлов и список измененных файлов:<br />
<br />
$ pacman -Qii имя_пакета<br />
<br />
Для получения списка файлов установленного пакета:<br />
<br />
$ pacman -Ql имя_пакета<br />
<br />
Для получения списка файлов неустановленного пакета можно использовать утилиту {{ic|pkgfile}}, из состава пакета [[pkgtools]], или {{ic|nosr}}, входящую в пакет {{aur|nosr-git}}, который расположен в [[AUR]].<br />
<br />
Чтобы узнать какому пакету принадлежит нужный файл:<br />
<br />
$ pacman -Qo /путь/к/файлу/имя_файла<br />
<br />
Для получения списка пакетов, которые больше не требуются как зависимости (пакеты, которые могут быть безопасно удалены или сироты):<br />
<br />
$ pacman -Qdt<br />
<br />
Для отображения зависимостей в виде дерева:<br />
<br />
$ pactree имя_пакета<br />
<br />
Для получения списка пакетов, которые зависят от вашего пакета - можно воспользоваться утилитой {{ic|whoneeds}} из состава пакета [[pkgtools]]:<br />
<br />
$ whoneeds имя_пакета<br />
<br />
=== Получение Списка Установленных Пакетов для Быстрого Восстановления Системы ===<br />
<br />
Хорошей практикой явлется сохранение списка всех установленых пакетов. Если ваша система "упала" и её сложно восстановить, pacman может легко переустановить эти пакеты.<br />
<br />
Сначала, сохраните в список пакетов (доступных в репозитории):<br />
<br />
pacman -Qqe | grep -v "$(pacman -Qmq)" > pkglist<br />
<br />
# безопасная, но и более сложная альтернатива (во избежание удаления частичных совпадений)<br />
comm -13 <(pacman -Qmq | sort) <(pacman -Qqe | sort) > pkglist<br />
<br />
Сохраните этот файл на флешке или на другом носителе.<br />
<br />
Скопируйте файл pkglist в новую систему, перейдите в эту папку.<br />
<br />
Для восстановления используйте команду:<br />
pacman -S $(cat pkglist)<br />
<br />
=== Получение Списка Файлов не Принадлежащих Любому Пакету ===<br />
<br />
Если вы всегда хотите держать свою систему в чистоте и уважаете [[Путь Arch]], вы должны иногда проверять файлы отсутствующие в базе данных pacman. Эти файлы, зачастую установлены сторонними приложениями с использованием '''./configure; make; make install''' и т.п. Вы можете найти все эти установленные файлы (или симлинки) используя этот простой скрипт:<br />
<br />
#!/bin/bash<br />
time /usr/bin/pacman -Ql | cut -d ' ' -f 2- | sort -u > db.txt<br />
time find /arch /bin /boot /etc /lib /opt /sbin /usr 2>/dev/null | while read i; do<br />
if [ ! -d "$i" ]; then<br />
echo "$i"<br />
fi;<br />
done | sort -u > fs.txt<br />
time comm -23 fs.txt db.txt > non-db.txt<br />
<br />
#для проверки:<br />
#cat non-db.txt | while read i; do pacman -Qo "$i" 2>&1; done | tee test.txt<br />
<br />
заметьте - все файлы указанные в non-db.txt НЕ БУДУТ удалены без подтверждения. Здесь могут находиться конфигурационные файлы, журналы и др. Используйте этот список только если знаете, что вы делаете.<br />
<br />
=== Дополнительные команды ===<br />
<br />
Обновление системы и установка списка пакетов (за одну операцию):<br />
<br />
# pacman -Syu имя_пакета1 имя_пакета2 ...<br />
<br />
Скачать пакет, но не устанавливать его:<br />
<br />
# pacman -Sw имя_пакета<br />
<br />
Установить локальный пакет (не из репозитория):<br />
<br />
# pacman -U /путь/к/пакету/имя_пакета-version.pkg.tar.xz<br />
<br />
Установить 'не локальный' пакет (не из репозитория):<br />
<br />
# pacman -U <nowiki>http://www.example.com/repo/example.pkg.tar.xz</nowiki><br />
<br />
Удалить из кэша ({{ic|/var/cache/pacman/pkg}}) неустановленные пакеты:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Поэтому, в случае возникновения проблем после обновлениий - появятся дополнительные трудности, связанные с откатом версий пакетов.}}<br />
<br />
# pacman -Sc<br />
<br />
Полная очистка кэша пакетов:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Выполняйте это только в том случае, если у вас всё нормально работает и вы уверены, что вам не понадобится [[Downgrade_packages| откатывать]] какой-либо пакет.}}<br />
<br />
# pacman -Scc<br />
<br />
В качестве альтернативы ключам {{ic|-Sc}} и {{ic|-Scc}} - можно использовать пакет {{AUR|Cacheclean}}, доступный в [[AUR]]. Это скрипт на python, который позволяет выборочно очищать кэш pacman'а от старых версий пакетов.<br />
<br />
===Частичные обновления официально не поддерживаются===<br />
Arch Linux постоянно обновляемый дистрибутив и это значит, что в репозиториях всегда находятся новые версии [[Wikipedia:Library (computing)|библиотек]]. Разработчики и доверенные пользователи собирают пакеты для репозиториев с использованием этих библиотек. Для пакетов установленных локально (например пакеты из [[Arch User Repository|AUR]]), нужно самостоятельно решать вопрос с зависимостями согласно данным [[Wikipedia:soname|soname]].<br />
<br />
Именно поэтому частичное обновление '''не поддерживается'''. Не используйте {{ic|pacman -Sy package}} или другие эквиваленты {{ic|pacman -Sy}} и {{ic|pacman -S package}}. Всегда перед установкой пакетов синхронизируйте репозитории и обновляйте систему полностью. По той же самой причине нужно быть осторожными при использовании {{ic|IgnorePkg}} и {{ic|IgnoreGroup}}.<br />
<br />
Если после частичного обновления оказалось, что бинарные файлы не могут найти нужных версий библиотек и проблему '''не возможно "решить" созданием символической ссылки''' (библиотеки не имеют '''обратной совместимости''') - выполните {{ic|pacman -Syu}}, как правило этого будет достаточно для устранения проблемы.<br />
<br />
== Устранение проблем ==<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init, но отсутствуют ssh / X или генераторы случайных чисел. Как мне получить энтропию?<br />
|answer=Для решения проблемы нужно перемещать указатель мыши, нажимать на клавиатуре случайные кнопки или запустить дисковую активность, например с помощью {{ic|updatedb}}. Будьте терпиливы, процесс может затянуться на длительное время. При этом переход в другую консоль, по Alt+F2-6, временно работать не будет.}}<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init через ssh. Как мне получить энтропию?<br />
|answer=На целевой машине соберите и установите пакет {{AUR|rng-tools}} из [[AUR]]. Подключитесь через ssh и выполните следующие команды:<br />
{{bc|# sed -i 's/0/10/' /etc/conf.d/rngd<br />
# rngd -f -r /dev/urandom &<br />
# pacman-key --init}}<br />
<br />
После успешного выполнения pacman-key просто остановите rngd и удалите пакет.<br />
<br />
{{bc|# killall rngd<br />
# pacman -Rns rng-tools}}<br />
}}<br />
<br />
{{FAQ<br />
|question=Pacman не находит PGP ключи для импорта и не обновляет пакеты. Как можно это исправить?<br />
|answer=На самом деле проблема не в pacman. Проблема в сервере ключей, используемом по умолчанию. Измените сервер ключей на более надежный таким способом:<br />
<br />
# sed -i '/keyserver/ s,keys.gnupg.net,pgp.mit.edu,' /etc/pacman.d/gnupg/gpg.conf<br />
Pacman4 теперь готов к использованию.}}<br />
<br />
{{FAQ<br />
|question=Обновление пакета XYZ сломало мою систему!<br />
|answer=Arch Linux - передовой, постоянно обновляемый дистрибутив. Обновления для пакетов становятся доступными тогда, когда их посчитают достаточно стабильными для повседневного использования. Тем не менее, обновления иногда требуют вмешательства пользователя: может потребоваться обновление конфигурационных файлов, могут измениться дополнительные зависимости, и т.д.<br />
<br />
Запомните основное правило - не обновляйте систему "вслепую". Всегда внимательно изучайте список обновляемых пакетов. Обращайте внимание на обновление "критически важных" компонентов ({{ic|linux}}, {{ic|xorg-server}}, и т.д.). Если такие пакеты есть - проверьте наличие новостей на https://www.archlinux.org/ и просмотрите последние сообщения на форуме, возможно кто-то уже столкнулся с проблемами при обновлении.<br />
<br />
Если известно/ожидается, что после обновления могут возникнуть проблемы - pacman выведет соответствующее сообщение. Если вы упустили какую-то информацию, которую вывел pacman, то её можно еще раз просмотреть в ({{ic|/var/log/pacman.log}}). <br />
<br />
Теперь, '''если не было никаких предупреждений от pacman, отсутствуют соответствующие новости на https://www.archlinux.org/ и нет сообщений относительно обновлений на форуме''', имеет смысл обратиться за помощью на форум, [[IRC Channel|IRC-канал]], или [[Downgrading Packages|откатить пакет к работающей версии]].<br />
<br />
Перечитайте последний абзац.}}<br />
<br />
{{FAQ<br />
|question=Я знаю что для пакета ABC доступны обновления, но pacman сообщает мне, что система в актуальном состоянии!<br />
|answer=Зеркала pacman синхронизируются не мгновенно. Иногда может пройти более 24 часов, прежде чем обновления станут доступны вам. <br />
<br />
В качестве решения можно посоветовать сменить зеркало. На [https://www.archlinux.org/mirrors/status/ MirrorStatus] можно посмотреть состояние зеркал.}}<br />
<br />
{{FAQ<br />
|question=При обновлении появляется сообщение об ошибке: "file exists in filesystem" ("файл существует в файловой системе")!<br />
|answer=Дополнительно: ''Взято из https://bbs.archlinux.org/viewtopic.php?id=56373 у Misfit138.''<br />
<br />
error: could not prepare transaction<br />
error: failed to commit transaction (conflicting files)<br />
package: /path/to/file exists in filesystem<br />
Errors occurred, no packages were upgraded.<br />
<br />
Почему это происходит: pacman при обнаружении конфликтующих файлов, по умолчанию, не будет их перезаписывать автоматически. Это не ошибка, так сделано специально.<br />
<br />
Вопрос решается тривиально. Сначала проверьте не принадлежит ли файл другому пакету: ({{ic|pacman -Qo /path/to/file}}). Если принадлежит - создайте [[Reporting Bug Guidelines|отчет об ошибке]]. Если проблемный файл не нужен другим пакетам - переименуйте его и перезапустите команду обновления. Если в дальнейшем проблем не возникнет, то старый файл можно удалить.<br />
<br />
Если программа была установлена вручную, без использования pacman или его оболочек, вам нужно будет удалить программу и все ее файлы, а затем выполнить установку при помощи pacman.<br />
<br />
Информация, о каждом установленном файле, храниться в файле с метаданными пакета {{ic|/var/lib/pacman/local/$package-$version/files}}. При повреждении этого файла (может быть пустым или отсутствовать), во время обновления пакета, и будет получена ошибка - "file exists in filesystem" ("файл существует в файловой системе").<br />
<br />
Обычно такие ошибки возникают во время установки или обновления всего лишь одного пакета, поэтому вместо ручного переименования или удаления конфликтующих файлов, принадлежащих данному пакету, выполните {{ic|pacman -S --force $package}}, после этой команды pacman принудительно перезапишет эти файлы.<br />
<br />
Никогда '''не''' запускайте {{ic|pacman -Syu --force}}.<br />
}}<br />
<br />
{{FAQ<br />
|question=При установке пакета я получаю сообщение об ошибке: "not found in sync db"<br />
|answer=Для начала убедитесь, что пакет вообще существует (и вы нигде не опечатались!). Если пакет не существует, то проблема может быть в том, что ваша база пакетов не синхронизирована с репозиториями или репозитории неправильно настроены. Для принудительного обновления списка пакетов попробуйте выполнить {{ic|pacman -Syy}}.}}<br />
<br />
{{FAQ<br />
|question=pacman несколько раз обновляет один и тот же пакет!<br />
|answer=Это может быть связано с дублированием записей в {{ic|/var/lib/pacman/local/}}, к примеру имеется два экземпляра {{ic|linux}}. {{ic|pacman -Qi}} выведет правильную версию, а {{ic|pacman -Qu}} покажет её как устаревшую и, следовательно, требующую обновления.<br />
<br />
Решение: удалить лишнюю запись из {{ic|/var/lib/pacman/local/}}.<br />
<br />
{{Note|pacman версии 3.4, в случае обнаружения повторяющихся записей, должен вывести сообщение об ошибке.}}}}<br />
<br />
{{FAQ<br />
|question=pacman сбоит при обновлении!<br />
|answer=Если при попытке удаления, переустановки или обновления пакетов pacman падает с ошибкой "database write" ("записи в базу данных"):<br />
#Загрузитесь используя Arch live CD<br />
#Смонтируйте корневую файловую систему<br />
#Обновите базу данных pacman с помощью {{ic|pacman -Syy}}<br />
#Переустановите сломанный пакет через {{ic|pacman -r /путь/к/корневому_разделу -S package}}}}<br />
<br />
{{FAQ<br />
|question=Я установил программу используя {{ic|make install}}; теперь эти файлы не принадлежат ни одному из пакетов!<br />
|answer=При обнаружении "конфликтующих файлов", чтобы их не перезаписывать вручную, можно использовать pacman с ключом {{ic|-f}} ({{ic|pacman -Sf}}).<br />
<br />
Почитайте [[pacman Tips#Identify files not owned by any package]], о скрипте, проверяющем файловую систему на наличие ''брошенных'' файлов.}}<br />
<br />
{{FAQ<br />
|question=Мне нужен пакет с определенным файлом. Как узнать какому пакету это файл принадлежит?<br />
|answer=Установите [[pkgtools]], в его состав входит {{ic|pkgfile}}, использующий отдельную базу данных со всеми файлами и связанными с ними пакетами.}}<br />
<br />
{{FAQ<br />
|question=pacman полностью не работоспособен! Как мне его переустановить?<br />
|answer=Если pacman не работает и не получается его восстановить - скачайте вручную пакеты ({{Pkg|openssl}}, {{Pkg|libarchive}} и {{Pkg|pacman}}) и распакуйте их в корневой раздел. Бинарный pacman будет восстановлен вместе с конфигурационным файлом по умолчанию. Затем, для поддержания целостности базы данных пакетов, переустановите скачанные пакеты стандартными средствами pacman. Дополнительную информацию и пример (устарел) скрипта, автоматизирующего этот процесс, можно найти в [https://bbs.archlinux.org/viewtopic.php?id=95007 этом] сообщении форума.}}<br />
<br />
{{FAQ<br />
|question=После обновления системы получаю следующее сообщение об ошибке - "unable to find root device", после перезагрузки система не загружается.<br />
|answer=Вероятно при обновлении ядра "поломалась" initramfs (например при использовании pacman с опцией {{ic|--force}}). Для восстановления работоспособности выполните следующие действия.<br />
<br />
Загрузитесь с Arch live-cd. После загрузки выполните:<br />
<br />
# mkdir /mnt/arch<br />
# mount /dev/sda''X'' /mnt/arch (ваш корневой раздел)<br />
# cd /mnt/arch<br />
# mount -t proc proc proc/<br />
# mount -t sysfs sys sys/<br />
# mount -o bind /dev dev/<br />
# mount /dev/sda''X'' boot/ (ваш раздел /boot)<br />
# chroot .<br />
# pacman -Syu udev mkinitcpio<br />
# mkinitcpio -p linux<br />
<br />
Затем отмонтируйте смонтированные разделы и перезагрузитесь.}}</div>
Vadik
https://wiki.archlinux.org/index.php?title=Graphical_pacman_frontends_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=199764
Graphical pacman frontends (Русский)
2012-04-30T06:07:47Z
<p>Vadik: </p>
<hr />
<div>[[Category:Управление пакетами (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|Pacman GUI Frontends}}<br />
<br />
Здесь представлен список оболочек для [[pacman]]. В список включены полнофункциональные графические интерфейсы, информационные инструмены и различные уведомители для системного трея.Перечень програмного обеспечения разбит на категории в зависимости от использования Gtk или Qt.<br />
<br />
{{Warning|Ни одна из представленных ниже программ не поддерживается оффициальными разработчиками Arch Linux/Pacman.}}<br />
<br />
== Оболочки для Pacman ==<br />
=== X11 ===<br />
* {{App|1=PacmanXG4|2=Графическая оболочка для pacman. Не требует GTK и QT, только Хorg. Позволяет решать следующие задачи:<br />
:* Установка/удаление/обновление пакетов.<br />
:* Поиск пакетов / фильтр пакетов.<br />
:* Предоставление информации о пакетах, включая скриншоты.<br />
:* Откат пакетов (требуется утилита downgrade из AUR).<br />
:* Обновление базы данных пакетов, синхронизация зеркал.<br />
:* Обновление системы в один клик.<br />
:* Поддержка YAOURT (тестируется).<br />
:'''Скриншоты:''' http://almin-soft.nx0.ru/photo-cat-photo-cat-pacmanxg.html <br><br />
:'''Прямая ссылка на бинарник:''' http://almin-soft.nx0.ru/media/files/binaries/download.php?get=pacmanXG4.tar.bz2<br />
|3=http://almin-soft.nx0.ru/openiandifree/pacmanxg.html|4={{AUR|pacmanxg4-bin}}}}<br />
<br />
=== GNOME/GTK+ ===<br />
* {{App|Wakka|Основанный на gtk пакетный менеджер для Arch Linux, являющийся продолжением GtkPacman. Призван оптимизировать код и доработать программу для увеличения стабильности и расширяемости.<br />
:'''Скриншоты:''' http://mibloglinux.wordpress.com/2011/05/23/wakka-interfaz-grafica-para-pacman/<br />
|https://code.google.com/p/wakka-package-manager/|{{AUR|wakka}}}}<br />
<br />
* {{App|GNOME PackageKit|графическая оболочка для PackageKit - набору утилит для управления пакетами, поддерживающему различные пакетные менеджеры. Использует консольный пакетных менеджер alpm, и поддерживает следующий функционал:<br />
:* Установка и удаление пакетов из репозиториев.<br />
:* Периодическая синхронизация базы данных пакетов и запрос на обновление.<br />
:* Установка пакетов из архивов.<br />
:* Поиск пакетов по названию, описанию, категории или файлам.<br />
:* Отображение зависимостей пакетов, файлов и обратных зависимостей.<br />
:* Игнорирование с IgnorePkgs и "заморозка" с HoldPkgs.<br />
:* Показ дополнительных зависимостей, файлов .pacnew, и т.д.<br />
:Для изменения ключа для удаления с -Rc на -Rsc, следует в DConf установить ключь org.gnome.packagekit.enable-autoremove.<br />
:{{Tip|Вместо PulseAudio можно установить из AUR пакет {{AUR|gnome-settings-daemon-nopulse}}.}}<br />
|http://packagekit.org/|{{Pkg|gnome-packagekit}}}}<br />
<br />
=== KDE/Qt ===<br />
* {{App|1=KPackageKit/Apper|2=графическая оболочка для [http://www.packagekit.org/ PackageKit]. Интеграция с pacman осуществляется с пакетом {{Pkg|packagekit}}, получившего поддержку со стороны pacman. Из системных настроек KDE, с помощью данного графического инструмента, можно выполнить следующее:<br />
:* Установка/удаление/обновление пакетов.<br />
:* Поиск пакетов / фильтр пакетов.<br />
:* Предоставление информации о пакетах.<br />
:* Обновление базы данных пакетов.<br />
:* Выбор репозиториев для обновления.<br />
:* Автоматическое обновление базы данных (ежечасно, ежедневно и т.д.)<br />
:* Автоматическое обновление пакетов.<br />
:Несмотря на то, что pacman поддерживает PackageKit недавно, серьезных проблем замечено небыло, при этом обеспечивается простота в использовании и хорошая интеграция с KDE (и PolicyKit).<br />
:'''Скриншоты:''' http://kde-apps.org/content/show.php/Apper?content=84745<br />
|3=http://kde-apps.org/content/show.php/Apper?content=84745|4={{Pkg|apper}}}}<br />
<br />
* {{App|1=AppSet|2=современная и функциональная графическая оболочка для пакетных менеджеров. AppSet имеет следующие особенности:<br />
:* Сортировка программ по разделам (игры, оффис, мультимедиа, интернет и т.д.)<br />
:* Показ во встроенном веб-браузере домашних страниц выбранных пакетов.<br />
:* Отображение новостей.<br />
:* Обновление, установка и удаление пакетов.<br />
:* Иконка в трее для вывода информации о доступных обновлениях.<br />
:* Периодическое обновление базы данных<br />
:* Информирование о зависимостях (например, при попытке удаления пакета, который требуется другому пакету).<br />
:* Команда очистки кэша (освобождение дискового пространства).<br />
:* Умное определение программы для получения администраторских привилегий, т.е. используется установленная в системе kdesu, gksu или, в случае использования xterm, команда sudo).<br />
:* Поддержка AUR с помощью бэкэнда Packer.<br />
:AppSet зависит только от библиотеки Qt. Может использоваться в любом окружении. В настоящее время работает только в Archlinux только с pacman.<br />
:'''Скриншоты''' http://sourceforge.net/project/screenshots.php?group_id=376825<br />
|3=http://appset.sourceforge.net/|4={{AUR|appset-qt}}}}<br />
<br />
=== NCurses ===<br />
* {{App|1=pcurses|2=оболочка к пакетному менеджеру на curses, позволяет:<br />
:* фильтрация и поиск любых пакетов по регулярным выражениям и свойствам.<br />
:* настраиваемая цветовая кодировка.<br />
:* настраиваемая сортировка.<br />
:* выполнение внешних команд.<br />
:* поддержка пользовательских макросов и горячих клавиш.<br />
:'''Скриншоты''' https://bbs.archlinux.org/viewtopic.php?id=122749<br />
|3=https://github.com/schuay/pcurses|4={{AUR|pcurses}}}}<br />
<br />
== Браузер пакетов Pacman / AUR ==<br />
* {{App|1=PkgBrowser|2=приложение для поиска и просмотра пакетов для Arch, отображает подробную информацию о выбранных пакетах.<br />
:* Поиск и просмотр пакетов для Arch, которые находятся в AUR.<br />
:* Чисто информационное приложение, которое не может быть использовано для установки, удаления и обновления пакетов. <br />
:* По сути относится к CLI-у управления пакетами в pacman.<br />
:* Более подробную информацию по использованию можно получить в меню помощи.<br />
:'''Тема на форуме:''' https://bbs.archlinux.org/viewtopic.php?id=117297 <br><br />
|3=https://code.google.com/p/pkgbrowser/|4={{AUR|pkgbrowser}}}}<br />
<br />
* {{App|Pacinfo|приложение для просмотра установленных пакетов и показа такой информации как скриншоты, установленные файлы, дата установки и прочее. Написано на Mono/GTK#<br />
|https://code.google.com/p/pacinfo/|{{AUR|pacinfo}}}}<br />
<br />
== Вывод оповещений в системном трее ==<br />
* {{App|1=Aarchup|2=форк archup. Имеет те же возможности, что и archup, плюс некоторые дополнительные. Для поиска различий между ними изучите [https://bbs.archlinux.org/viewtopic.php?id=119129 changelog].<br />
:'''Скриншоты''': http://i.imgur.com/yTNvg.png<br />
|3=https://github.com/aericson/aarchup/|4={{AUR|aarchup}}}}<br />
<br />
* {{App|pacman-notifier|Написан на Ruby, использует Gtk. Отображает иконку в системном трее и, для новых пакетов, всплывающие уведомления (используется libnotify).<br />
:'''Скриншоты''': https://github.com/v01d/pacman-notifier/wiki<br />
|https://github.com/v01d/pacman-notifier/wiki|{{AUR|pacman-notifier}}}}<br />
<br />
* {{App|Pacupdate|маленькое приложение уведомляющее пользователя о доступности обновлений для Arch Linux. Если Pacupdate обнаружит, что доступны обновления - будет выведено уведомление в системном трее|https://code.google.com/p/pacupdate/|{{AUR|pacupdate-svn}}}}<br />
<br />
* {{App|1=Yapan (Yet Another Package mAnager Notifier)|2=написан на C++ и Qt. Поддерживает другие пакетные менеджеры, такие как clyde или yaourt, отображает значок в системном трее, и, при доступности обновлений, показывает соответствующее всплывающее уведомление.<br />
:'''Скриншоты''': https://bitbucket.org/otsug/yapan/wiki/Home<br />
:'''Тема на форуме''': https://bbs.archlinux.org/viewtopic.php?id=113078<br />
|3=https://bitbucket.org/otsug/yapan/wiki/Home|4={{AUR|yapan}}}}<br />
<br />
* {{App|1=ZenMan|2=оболочка для PacMan (уведомлялка в трее об обновлениях) для GTK/GNOME/zenity/libnotify.<br />
:'''Скриншоты''': http://show.harvie.cz/screenshots/zenman-screenshot-2.png<br />
|3=https://aur.archlinux.org/packages.php?ID=25948|4={{AUR|zenman}}}}<br />
<br />
* {{App|1=pkgnotify.sh|2=простой 14-ти строчный скрипт, показывающий количество доступных обновлений в заголовке окна dzen2, список обновлений - во вспомогательном окне. Зависит от dzen2, inotify-tools, package-query и, опционально, приложение для работы с AUR (по умолчанию yaourt).<br />
:'''Скриншоты''': http://andreasbwagner.tumblr.com/post/853471635/arch-linux-update-notifier-for-dzen2<br />
|3=http://pointfree.net/repo/?r=dzen2_scripts;a=headblob;f=/src/pkgnotify/pkgnotify.sh|4=pkgnotify}}<br />
<br />
* {{App|1=kalu|2=маленькое приложение на C, добавляет иконку в системный трей и выводит уведомления о новостях Arch Linux, обновлениях пакетов из репозиториев, обновлениях пакетов из AUR, и следит за обновлением самого AUR (обновления для неустановленных пакетов). Также имеет графический интерфейс для обновления системы.<br />
:'''Скриншоты''': http://mywaytoarch.tumblr.com/post/19350380240/keep-arch-linux-up-to-date-with-kalu<br />
:'''Тема на форуме''': https://bbs.archlinux.org/viewtopic.php?id=135773<br />
|3=https://bitbucket.org/jjacky/kalu|4={{AUR|kalu}}}}<br />
<br />
== Неактивные программы ==<br />
*[http://gtkpacman.berlios.de/ GtkPacman]<br />
*[http://guzuta.berlios.de/ Guzuta]<br />
*[http://chakra-project.org/wiki/index.php/Shaman Shaman]<br />
*[http://code.google.com/p/pacmon/ pacmon]<br />
*[https://gna.org/projects/paku/ Paku]<br />
*[http://www.kde-apps.org/content/show.php/YAPG+-+Yet+Another+Pacman+Gui+?content=60052 YAPG]<br />
*[http://sourceforge.net/projects/zenitypacgui/ zenity_pacgui]</div>
Vadik
https://wiki.archlinux.org/index.php?title=Fluxbox_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=198842
Fluxbox (Русский)
2012-04-24T15:15:47Z
<p>Vadik: /* Вкладки и Группировка */</p>
<hr />
<div>[[Category:Desktop environments (Русский)]]<br />
[[Category:Руководства (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|Fluxbox}}<br />
<br />
Fluxbox - это еще один оконный менеджер для X-ов. Он основан на кодовой базе Blackbox 0.61.1. Fluxbox выглядит как blackbox и управляет стилями, цветами, расположением окон и прочими подобными вещами аналогично blackbox (100% совместимость тем/стилей). <br />
==Установка Fluxbox==<br />
Для установки {{pkg|fluxbox}} и {{pkg|fluxconf}} (графический конфигуратор) выполните:<br />
# pacman -S fluxbox fluxconf<br />
<br />
==Полное руководство==<br />
Спасибо narada - автору этого руководства.<br />
Найти его можно здесь:<br />
[http://bbs.archlinux.org/viewtopic.php?id=77729]<br />
<br />
==Запуск Fluxbox==<br />
===Способ № 1: Логин менеджеры KDM/GDM/LightDM===<br />
Если у вас установлен экранный менеджер [[KDM]], [[GDM]] или [[LightDM]], то fluxbox будет автоматически добавлен в его меню. Далее, для запуска fluxbox, будет достаточно просто выбрать соответствующий пункт в меню.<br />
Инструкции по настройке менеджеров можно найти [[Добавление экранного менеджера входа в систему (KDM, GDM или XDM) в автозагрузку|здесь]].<br />
<br />
===Способ № 2: ~/.xinitrc===<br />
Отредактируйте {{ic|~/.xinitrc}}, добавив в него следующий код:<br />
exec fluxbox <br />
Или, если вы захотите использовать файл ''startfluxbox'', замените код на следующий:<br />
exec startfluxbox <br />
Запуск с помощью {{ic|startfluxbox}} является более предпочтительным, так как при использовании этой команды будет прочитан и выполнен файл {{ic|~/.fluxbox/startup}} (список команд автозагрузки).<br />
<br />
При использовании '''polkit''' и [[D-Bus]] (например для автомонтирования), для запуска следует использовать такой код:<br />
exec ck-launch-session startfluxbox<br />
или<br />
exec ck-launch-session dbus-launch startfluxbox<br />
<br />
{{Note | в файле {{ic|~/.xinitrc}} команда {{ic|exec}} может встречаться только один раз!}}<br />
<br />
''Примечание'' : если fluxbox "падает" при запуске, то это может быть связано с локалью. Установив переменную LC_ALL в значение по умолчанию, "C", можно избежать "падений"[http://bbs.archlinux.org/viewtopic.php?t=25797 1].<br />
<br />
После добавления нужной строки в {{ic|~/.xinitrc}}, fluxbox можно запустить командой startx.<br />
<br />
==Настройка==<br />
Общесистемные конфигурационные файлы fluxbox расположены в {{ic|/usr/share/fluxbox}}, а пользовательские в {{ic|~/.fluxbox}}. К пользовательским конфигурационным файлам относятся:<br />
<ul><br />
<li>{{ic|init}}: основной конфигурационный файл fluxbox. Подробнее [http://fluxbox-wiki.org/index.php?title=Editing_the_init_file Editing the init file]<br />
<li>{{ic|menu}}: файл настройки меню fluxbox. См. ниже и [http://fluxbox-wiki.org/index.php?title=Editing_the_menu Editing the menu file]<br />
<li>{{ic|keys}}: файл настройки клавиатурных сочетаний fluxbox (hotkeys). См. ниже и [http://fluxbox-wiki.org/index.php?title=Keyboard_shortcuts здесь]<br />
<li>{{ic|startup}}: файл предназначенный для запуска приложений. Читать далее о [[xinitrc]] и [http://fluxbox-wiki.org/index.php?title=Editing_the_startup_file здесь]<br />
<li>{{ic|overlay}}: конфигурационный файл переопределения элементов стиля. Подробнее [http://fluxbox-wiki.org/index.php?title=Style_overlay здесь].<br />
<li>{{ic|apps}}: конфигурационный файл для настройки отображения конкретных приложений. Подробнее [http://fluxbox-wiki.org/index.php?title=Editing_the_apps_file здесь]<br />
<li>{{ic|windowmenu}}: конфигурационный файл самого Window Menu: [http://fluxbox-wiki.org/index.php?title=Editing_the_windowmenu читать здесь]<br />
</ul><br />
В этой директории имеются и другие, менее важные, конфигурационные файлы. Основными же являются файлы init, menu, keys и, возможно, startup.<br />
<br />
===Меню===<br />
====Встроенный метод====<br />
Встроенная команда<br />
$ fluxbox-generate_menu<br />
данная команда, исходя из установленных у вас программ, автоматически сгенерирует файл меню {{ic|~/.fluxbox/menu}}. Эту команду можно выполнить выбрав в меню fluxbox пункт "helper / regenerate menu".<br />
<br />
====MenuMaker====<br />
Программа [http://menumaker.sourceforge.net/ MenuMaker] является мощными инструментом по созданию меню для различных менеджеров окон, в том числе и для Fluxbox, из файлов основывающихся на XML. MenuMaker просканирует систему на наличие исполняемых программ, и, по результатам сканирования, создаст файл меню. Ее можно настроить таким образом, чтоб из результатов были исключены приложения для Legacy X, GNOME, KDE, или Xfce.<br />
<br />
MenuMaker расположен в [community] и устанавливается при помощи [[pacman]]:<br />
# pacman -S menumaker<br />
<br />
После установки, вы можете создать полное меню, выполнив:<br />
$ mmaker -v Fluxbox<br />
<br />
Для получения полного списка опций, запустите '''mmaker --help'''.<br />
<br />
====Arch Linux xdg menu====<br />
Установить [[XdgMenu]] можно с помощью pacman:<br />
# pacman -S archlinux-xdg-menu<br />
<br />
Создать файл меню fluxbox следующей командой:<br />
$ xdg_menu --fullmenu --format fluxbox --root-menu /etc/xdg/menus/arch-applications.menu >~/.fluxbox/menu<br />
<br />
'''Совет:''' замена по умолчанию xterm/urxvt:<br />
$ sed -i 's/xterm/urxvt/g' ~/.fluxbox/menu<br />
<br />
Дополнительная информация о программе:<br />
$ xdg_menu --help<br />
<br />
====Создание меню вручную с помощью fluxconf====<br />
Чтобы запустить редактор меню, входящий в состав программы fluxconf, наберите:<br />
$ fluxmenu<br />
Окно редактора разбито на три колонки: Type, Title и Command/Comment.<br><br />
Для редактирования полей нужно кликнуть по нужным.<br><br />
Кнопка "Add sub" позволяет добавить подменю.<br><br />
Кнопка "Add exec" откроет поле для добавления команды.<br><br />
<br />
Колонка Type может принимать следующие значения:<br />
#begin, необходимо для открытия и загрузки, собственно, файла меню. Поле Title в этом случае - заголовок меню.<br><br />
#submenu, подменю в составе меню. Title - отображаемое название данного подменю.<br><br />
#exec, строка команды. Title - название пункта меню, Command/Comment - команда для запуска.<br />
#separator, разделитель пунктов меню, без дополнительных аргументов.<br />
#workspaces, список рабочих столов и приложений, которые на них запущены. Title - название пункта меню.<br />
#stylesdir, отображает список стилей fluxbox. Title должен принимать значение пути к директории со стилями (например - {{ic|/usr/share/fluxbox/styles}}, {{ic|~/.fluxbox/styles}}).<br />
#config, меню с настройками для конфигурации fluxbox. В поле Title помещается название данного меню.<br />
#reconfig, повторная загрузка файла конфигурации. Title - название данного пункта меню.<br />
#restart, перезапустить fluxbox. Поле Title аналогично предыдущему.<br />
#exit, выход из fluxbox к окну логина экранного менеджера или к консоли, в зависимости от способа настройки . Title - аналогично предыдущему.<br />
<br />
Не забудьте нажать кнопку Save перед выходом из редактора.<br />
<br />
====Создание/Редактирование файла меню вручную====<br />
Воспользуйтесь командой:<br />
$ nano ~/.fluxbox/menu<br />
Приступайте к редактированию, добавьте новые строки в меню:<br />
[exec] (name) {command} <path to icon><br />
... где "name" это название, которое будет отображаться в данном пункте меню, "command" - путь к исполняемому файлу, а "<path to icon>" - путь к файлу с иконкой, например:<br />
[exec] (Firefox Browser) {/usr/bin/firefox} <path to firefox icon><br />
Обратите внимание, что "<path to icon>" не является обязательным параметром.<br />
<br />
Для создания подменю:<br />
[submenu] (Name)<br />
...<br />
...<br />
[end]<br />
Когда закончите редактирование, сохраните файл и выйдите из редактора. Перезапускать fluxbox нет необходимости. Для получения дополнительной информации обратитесь к [http://fluxbox-wiki.org/index.php?title=Editing_the_menu руководству по настройке меню fluxbox].<br />
<br />
===Init===<br />
Файл {{ic|~/.fluxbox/init}} - основной конфигурационный файл FluxBox. В нем можно настроить основную функциональность fluxbox, окон, панели инструментов, фокусировку, и т.д. Некоторые из этих настроек доступны через Configuration Menu Fluxbox. Для получения дополнительной информации почитайте о [http://fluxbox-wiki.org/index.php?title=Editing_the_init_file Редактировании файла init].<br />
<br />
===Горячие клавиши===<br />
Горячие клавиши во fluxbox описываются в файле {{ic|~/.fluxbox/keys}}.<br />
Клавиша Control задается текстом "Control", Alt - "Mod1", а Meta - "Mod4". Meta - это не стандартная клавиша, но многие привязывают ее к клавише win key.<br><br />
<br />
Например, вот быстрый способ контроля уровня звука с помощью комбинации CTRL-ALT+ Стрелка вниз или вверх:<br />
Control Mod1 Up :Exec amixer sset Master,0 5%+ <br />
Control Mod1 Down :Exec amixer sset Master,0 5%- <br />
<br />
Если у вас установлен fluxconf, то вы можете настроить горячие клавиши через графический интерфейс, для этого выполните команду:<br />
$ fluxkeys<br />
<br />
Первое текстовое поле - для названия клавиши, второе - для действия, совершаемого по нажатию на эту клавишу. Выберите execCommand и впишите название команды в третье поле. Во втором текстовом поле доступны различные функции (выбирать в выпадающем меню).<br />
<br />
===Рабочие столы===<br />
По умолчанию во fluxbox используются четыре рабочих стола, по которым можно переключаться при помощи Alt+F1-4 или с помощью стрелок на панели.<br><br />
Вызвав меню, кликнув правой кнопкой мыши, можно выбрать пункт Workspaces и увидеть в нем список рабочих столов.<br />
<br />
===Вкладки и Группировка===<br />
Когда на вашем рабочем столе открыто по крайней мере два окна - зажмите ctrl + левую кнопку мыши на верхней вкладке одного из окон и перетащите его на второе окно. Окна будут сгруппированы, и переключаться между ними можно будет через верхнюю панель вкладок. Теперь любое изменение активного окна будет применяться ко всем окнам входящим в "группу". Для отмены группировки - зажмите ctrl + левую кнопку мыши на нужной вкладке и перетащите ее на свободное пространство рабочего стола.<br />
<br />
===Фон рабочего стола===<br />
Для установки фона необходима специальная программа, например:<br />
*{{pkg|eterm}} <br />
*{{pkg|feh}} (не поддерживает прозрачность меню)<br />
<br />
Есть и другие, но эти - самые часто-используемые. Список других программ можно получить в документации к fbsetbg в секции "Дополнительных ссылок".<br />
Для установки фона выполните:<br />
$ fbsetbg /путь/к/изображению<br />
<br />
Также, для автоматической установки фона при логине, можно добавить или изменить нижеследующую строчку в файле {{ic|~/.fluxbox/init}}:<br />
session.screen0.rootCommand: fbsetbg /путь/к/изображению<br />
<br />
Или:<br />
session.screen0.rootCommand: fbsetbg -l<br />
<br />
Теперь в качестве фона будет использовано последнее, заданное с помощью fbsetbg, изображение.<br />
<br />
====Тем, кто любит часто менять фоновое изображение====<br />
Можно добавить следующее подменю в файл меню {{ic|~/.fluxbox/menu}}:<br />
<br />
[submenu] (Backgrounds)<br />
[wallpapers] (~/.fluxbox/backgrounds)<br />
[wallpapers] (/usr/share/fluxbox/backgrounds)<br />
[end]<br />
Затем разместите нужные обои в {{ic|~/.fluxbox/backgrounds}} или в том каталоге, который был указан в файле меню.<br />
<br />
====Feh====<br />
Установите {{pkg|feh}}:<br />
# pacman -S feh<br />
Также можно добавить подменю в файл {{ic|~/.fluxbox/menu}} для быстрой смены фона:<br />
[submenu] (Wallpaper)<br />
[wallpapers] (/path/to/your/wallpapers) {feh --bg-scale}<br />
[end]<br />
<br />
Теперь нужно убедится в том, что fluxbox при следующем запуске загрузит feh в фоновом режиме:<br />
<br />
'''1.''' Сделайте {{ic|~/.fehbg}} исполняемым:<br />
$ chmod 770 ~/.fehbg<br />
<br />
'''2.''' Добавьте (или измените) следующую строчку в файле {{ic|~/.fluxbox/init}}:<br />
session.screen0.rootCommand: ~/.fehbg<br />
<br />
'''3.''' Добавьте (или измените) следующую строчку в файле {{ic|~/.fluxbox/startup}}:<br />
~/.fehbg<br />
<br />
===Темы оформления===<br />
Чтобы установить тему, нужно распаковать архив с ней в одну из следующих директорий:<br />
*глобальная установка (для всех пользователей) - {{ic|/usr/share/fluxbox/styles}} <br />
*только для вашего пользователя - {{ic|~/.fluxbox/styles}}<br />
На данный момент в [[AUR]] по запросу "fluxbox-styles" можно найти множество красивых тем оформления. Расположены он здесь [https://aur.archlinux.org/packages.php?ID=28743]. Просто установите этот пакет. При правильной установке новые темы появятся в разделе Styles меню Fluxbox.<br />
<br />
Для создания собственных тем оформления ознакомьтесь с [[Fluxbox_Style_Guide]] и с этим руководством [http://tenr.de/howto/style_fluxbox/style_fluxbox.html].<br />
<br />
===Автозапуск программ===<br />
Существуют два способа автозапуска: помещение названий соответствующих команд в системный файл {{ic|~/.xinitrc}} (выполняется при запуске X.Org) или в специальный файл fluxbox - {{ic|~/.fluxbox/startup}}.<br />
<br />
{{ic|~/.fluxbox/startup}} это сценарий для автозапуска приложений и самого fluxbox-а. Строки комментируются символом #.<br />
<br />
Например:<br />
fbsetbg -l <nowiki>#</nowiki> устанавливает последнее заданное фоновое изображение;<br />
<nowiki>#</nowiki> данная команда очень часто используется пользователями fluxbox<br />
<nowiki>#</nowiki> важно помнить, что для запуска тех программ, которые не завершаются сразу (менеджер рабочего стола и т.п.),<br />
<nowiki>#</nowiki> следует указывать амперсанд (&) в конце строки. <br />
idesk & <br />
xterm &<br />
<nowiki>#</nowiki> для запуска, собственно, самого fluxbox используется следующая команда (без амперсанда)<br />
exec /usr/bin/fluxbox<br />
<nowiki>#</nowiki> также можно сохранять лог работы fluxbox следующей командой вместо предыдущей:<br />
exec /usr/bin/fluxbox -log ~/.fluxbox/log<br />
<br />
<br />
====Настройка клавиатуры====<br />
Просто добавьте следующую строку в файл {{ic|~/.fluxbox/startup}}:<br />
setxkbmap us -variant intl & # включение специальных символов клавиатуры (подобно éóíáú)<br />
<br />
Вместо 'us' можно использовать свой вариант языка. Для получения дополнительной информации обратитесь к man setxkbmap.<br />
<br />
Для добавления в меню возможности включения дополнительных символов - добавьте в файл {{ic|~/.fluxbox/menu}} следующий код:<br />
[submenu] (Keyboard)<br />
[exec] (normal) {setxkbmap us}<br />
[exec] (international) {setxkbmap us -variant intl}<br />
[end]<br />
<br />
====Отключение энергосбережения====<br />
У вас имеется проблема с отключением экрана при просмотре фильмов? Поздравляем, Xorg обнаружил ваше бездействие :). Если вам не нужен режим энергосбережения, его можно полностью отключить. Но, когда вы не будете пользоваться монитором, - вам придется отключать его самостоятельно, вручную.<br />
<br />
Просто добавьте эту строку в начало файла {{ic|~/.fluxbox/startup}}:<br />
xset s off -dpms &<br />
<br />
=== Поддержка русского языка ===<br />
Для отображения русского языка в окнах и меню стоит установить подходящий шрифт в выбранной вами теме. Например (если установлен пакет {{pkg|ttf-dejavu}}):<br />
*Font: -*-dejavu sans-*<br />
Теперь fluxbox поддерживает русские названия, даже если вы используете локаль en_US.UTF-8.<br />
<br />
=Ссылки=<br />
<br />
* [http://fluxbox.org/ Официальный сайт fluxbox]<br />
* [http://en.gentoo-wiki.com/wiki/Fluxbox настройка fluxbox в gentoo-wiki]<br />
* [http://www.gentoo.org/doc/en/fluxbox-config.xml документация fluxbox в gentoo]<br />
* [http://box-look.org/ темы для fluxbox]<br />
* [http://fluxbox-wiki.org/ Fluxbox Wiki]<br />
* [http://wiki.archlinux.org/index.php/Fluxbox_Style_Guide Fluxbox Style Guide]<br />
* [http://bbs.archlinux.org/viewtopic.php?id=77729 Narada's Fluxbox Guide]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=90260 Archlinux-FluxBox screenshots]<br />
* The fluxbox man pages: fluxbox, fluxbox-menu, fluxbox-style, fluxbox-keys, fluxbox-apps, fluxbox-remote, fbsetroot, fbsetbg, fbrun, startfluxbox.</div>
Vadik
https://wiki.archlinux.org/index.php?title=CUPS_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=195789
CUPS (Русский)
2012-04-22T12:19:26Z
<p>Vadik: </p>
<hr />
<div>[[Category:Принтеры (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|CUPS}}<br />
{{Article summary start|Описание}}<br />
{{Article summary text|Установка и настройка CUPS}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary wiki|CUPS printer sharing}}<br />
{{Article summary wiki|CUPS printer-specific problems}}<br />
{{Article summary wiki|Samba}}<br />
{{Article summary end}}<br />
<br />
:"''Common UNIX Printing System ([[Wikipedia:CUPS|CUPS]], общая UNIX система печати) - это кроссплатформенное решение для печати для всех UNIX систем. Оно основано на "Internet Printing Protocol" (IPP, интернет-протокол печати) и предоставляет полный спектр возможностей для печати для большинства Postscript и растровых принтеров. CUPS распространяется под GNU GPL....''"<br />
Хотя существуют другие пакеты печати, такие как LPRNG, CUPS более популярен и довольно прост в использовании. Это система печати по умолчанию как в Arch Linux, так и во многих других Linux-дистрибутивах.<br />
<br />
<br />
= Установка =<br />
<br />
Вам скорее всего потребуются пакеты {{Pkg|cups}}, {{Pkg|ghostscript}} и {{Pkg|gsfonts}}. [[pacman|Установить]] их можно из [[Official repositories|оффициального репозитория]].<br />
<br />
Если стандартный cups не работает, то можно попробовать установить пакет {{AUR|cups-usblp}}, находящийся в [[AUR]].<br />
<br />
* '''cups''' - собственно пакет CUPS<br />
* '''ghostscript''' - интерпретатор для языка Postscript<br />
* '''gsfonts''' - стандартные Type1 шрифты GhostScript<br />
* '''hpoj''' - при использовании HP Officejet, во избежание проблем, установите этот пакет согласно инструкциям. Почитайте [http://answers.launchpad.net/hplip/+question/133425 обсуждение на launchpad/hplip] для получения дополнительной информации.<br />
<br />
<br />
Если ваша система подключена к сетевому принтеру с использованием протокола samba, или система является сервером печати для Windows клиентов - установите {{Pkg|samba}}.<br />
<br />
===Драйвера принтеров===<br />
Некоторые из пакетов с драйверами для принтеров, зависит от используемого вами принтера. Если не уверены, установите gutenprint.<br />
<br />
* '''{{Pkg|gutenprint}}''' - Набор высококачественных драйверов для принтеров Canon, Epson, Lexmark, Sony, Olympus и PCL использующихся с GhostSscript, CUPS, Foomatic и [[GIMP]].<br />
* '''{{Pkg|foomatic-db}}, {{Pkg|foomatic-db-engine}}, {{Pkg|foomatic-db-nonfree}} и {{Pkg|foomatic-filters}}''' - Foomatic - это система под управлением базы данных для интеграции открытых драйверов для принтера с обычными спулерами под Unix. Установка foomatic-filters должна разрешить ваши проблемы, если в error.log от CUPS будут записи: "stopped with status 22!"<br />
* '''{{AUR|foo2zjs}}''' - драйвер для принтеров использующих протокол ZjStream, например таких как HP Laserjet 1018. Дополнительная информация [http://foo2zjs.rkkda.com здесь]. Для использования Foo2zsj - установите {{AUR|foo2zjs}}.<br />
* '''{{Pkg|hplip}}''' - HP GNU/Linux драйвер. Обеспечивает поддержку DeskJet, OfficeJet, Photosmart, Business Inkjet и других принтеров моделей LaserJet, a также ряд принтеров Brother.<br />
* '''{{Pkg|splix}}''' - драйвера Samsung для принтеров SPL (Samsung Printer Language). (для USB принтеров возможно понадобится пакет {{AUR|cups-usblp}} доступный в [[AUR]])<br />
* '''{{AUR|ufr2}}''' - Canon UFR2 драйвер, обеспечивающий поддержку принтеров серии LBP, iR и MF. Пакет доступен в [[AUR]]. <br />
* '''{{Pkg|cups-pdf}}''' - пакет, позволяющий настроить виртуальный PDF принтер, который будет создавать PDF из всего, что будет отправлено на принтер.<br />
<br />
Если вы не уверены в работоспособности драйвера для вашего принтера или он не работает - то, возможно, стоит установить все доступные драйверы, поскольку для вашей модели принтера может подойти драйвер от другого производителя. Например, для Brother HL-2140 необходимо установить драйвер hplip.<br />
<br />
====Загрузка PPD для принтера====<br />
<br />
Так как CUPS в стандартной установке уже содержит множество PPD (Postscript Printer Description) файлов, и в зависимости от вашего принтера, этот пункт является необязательным и может быть пропущен. Более того, в пакетах <i>foomatic-filters</i>, <i>gimp-print</i> и <i>hplip</i> уже имеется большое количество PPD файлов, которые будут автоматически определены CUPS.<br />
<br />
Вот объяснение с сайта Linux Printing того, что такое PPD файл:<br />
:"''Для каждого PostScript принтера производитель предоставляет PPD файл, содержащий всю уникальную информацию об этой модели принтера: основные возможности принтера (цветной он или нет, шрифты, уровень PostScript и т. д.) и особенно настройки, которые может изменять пользователь, такие как размер бумаги, разрешение печати и т. д.''"<br />
<br />
Если в CUPS для вашего принтера отсутствует нужный PPD файл, то:<br />
*Поищите пакеты для вашего принтера/производителя в [[AUR]].<br />
*Посетите [http://www.openprinting.org/printers базу данных OpenPrinting] и выберите своего производителя и модель принтера.<br />
*Поищите драйверы под GNU/Linux на сайте производителя.<br />
<br />
<br />
{{Note|Поместите PPD файлы в {{ic|/usr/share/cups/model/}}}}<br />
<br />
= Настройка CUPS =<br />
Итак, после установки CUPS, у вас есть множество способов его настройки. Вы всегда можете использовать старую добрую командную строку. Некоторые DE, такие как Gnome и KDE, предоставляют удобные программы, которые могут вам помочь в управлении принтерами. Однако, для того чтобы сделать этот процесс максимально доступным обыкновенному пользователю, мы будем использовать web-интерфейс, предоставляемый CUPS.<br />
<br />
Если планируется подключение не к локальному, а к сетевому принтеру, то, возможно, вначале стоит почитать о настройке [[CUPS printer sharing|общего доступа к принтерам в CUPS]]. Настройка общего доступа к принтерам внутри GNU/Linux довольно проста и имеет малое количество опций, а вот организация общего доступа к принтерам между Windows и GNU/Linux является немного более сложной.<br />
<br />
=== Модули ядра ===<br />
<br />
Перед использованием веб-интерфейса CUPS, вам понадобится загрузить соответствующие модули ядра. Далее описаны шаги, взятые из руководства по установке принтера в Gentoo.<br />
<br />
Данный раздел может понадобиться в зависимости от используемого ядра. После подключения принтера нужный модуль ядра может быть загружен автоматически. Воспользуйтесь командой {{ic|tail}} (описана далее) для того, чтобы определить обнаружен ли принтер. Для просмотра загруженных модулей ядра также можно воспользоваться утилитой {{ic|lsmod}}.<br />
<br />
==== USB-принтеры ====<br />
Для использования USB-принтера может потребоваться внести в черный список модуль {{ic|usblp}}. Учтите, что насчет добавления {{ic|usblp}} в черный список имеется некоторая [http://bbs.archlinux.org/viewtopic.php?pid=660601 неопределенность], так как некоторые USB-принтеры, в частности некоторые серии принтеров Canon и Epson, не определяются без этого модуля. Несколько пользователей принтеров Samsung, после добавления в черный список модуля {{ic|usblp}}, сообщили о проблемах с {{ic|cups}}, в качестве решения предлагается повторное включение модуля {{ic|usblp}} и установка из [[AUR]] пакета {{ic|cups-usblp}} вместо стандартного пакета {{ic|cups}} (https://bbs.archlinux.org/viewtopic.php?pid=778104). С февраля 2012, ранее работавший с cups-usblp USB-принтер Samsung ML2010, работает с cups и внесением в черный список usblp.<br />
<br />
Добавление модуля в черный список:<br />
<br />
{{hc|/etc/modprobe.d/blacklist.conf|blacklist usblp}}<br />
<br />
либо создав в {{ic|/etc/modprobe.d/}} свой файл, например {{ic|usblp_blacklist.conf}}, со следующим содержимым:<br />
<br />
{{hc|/etc/modprobe.d/usblp_blacklist.conf|blacklist usblp}}<br />
<br />
При использовании ядра собранного самостоятельно, возможно придется вручную загрузить модуль {{ic|usbcore}}:<br />
# modprobe usbcore<br />
<br />
После загрузки всех необходимых модулей - включите принтер и проверьте обнаружен ли он ядром, для этого выполните следующее:<br />
# tail /var/log/messages.log<br />
или<br />
# dmesg<br />
<br />
При использовании {{ic|usblp}}, сообщение об обнаружении принтера будет выглядеть примерно так:<br />
Feb 19 20:17:11 kernel: printer.c: usblp0: USB Bidirectional<br />
printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E<br />
Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920<br />
Feb 19 20:17:11 kernel: printer.c: v0.13: USB Printer Device Class driver<br />
<br />
Если {{ic|usblp}} находится в черном списке, то будет выведено примерно следующее:<br />
usb 3-2: new full speed USB device using uhci_hcd and address 3<br />
usb 3-2: configuration #1 chosen from 1 choice<br />
<br />
==== Принтеры с параллельным портом ====<br />
Если вы желаете использовать принтер с параллельным портом, настройка в общем-то такая же, за исключением модулей:<br />
<br />
# modprobe lp<br />
# modprobe parport<br />
# modprobe parport_pc<br />
<br />
Еще раз проверьте настройки выполнив команду:<br />
# tail /var/log/messages.log<br />
Должно быть показано что-то вроде этого:<br />
lp0: using parport0 (polling)<br />
<br />
При использовании адаптера с USB на параллельный порт, CUPS не сможет обнаружить принтер. В качестве обходного пути - добавьте принтер используя другие типы соединений, а затем измените DeviceID в файле {{ic|/etc/cups/printers.conf}}:<br />
DeviceID = parallel:/dev/usb/lp0<br />
<br />
==== Автозагрузка ====<br />
Возможно, вам будет удобнее если соответствующий модуль будет загружен при старте системы. Для этого откройте в текстовом редакторе файл {{ic|/etc/[[rc.conf]]}}, и добавьте нужный модуль в строку {{ic|1=MODULES=()}}. Например, так:<br />
MODULES=(!usbserial scsi_mod sd_mod snd-ymfpci snd-pcm-oss '''lp parport parport_pc''' ide-scsi)<br />
<br />
===Демон CUPS===<br />
<br />
После установки соответствующих модулей ядра, можно приступать к [[Daemon#Performing daemon actions manually|запуску демона CUPS]]. Для автоматического запуска демона при старте системы следует добавить cupsd в [[daemons#Starting on Boot|строку DAEMONS]].<br />
<br />
=== Web-интерфейс и средства управления ===<br />
<br />
После запуска демона откройте браузер и зайдите на: http://localhost:631 (''Строку '''localhost''', возможно, придется заменить на имя хоста из'' {{ic|/etc/hosts}}).<br />
<br />
Теперь для добавления принтера можно использовать различные мастера. Для запуска обыкновенной процедуры установки кликните ''Добавление принтеров и групп'', затем ''Добавить принтер''. При запросе имени пользователя и пароля нужно будет войти в качестве root. Далее будет представлен список устройств для выбора. Фактическое имя принтера отображается рядом с меткой ( например, USB-принтеры напротив ''USB Printer #1''). Принтеру можно присваивать любое имя, аналогично для пунктов 'Расположение' и 'Описание'. После выбора соответствующего драйвера настройки будут окончены.<br />
<br />
<br />
Убедитесь в правильности настроек, нажав на кнопку ''Print Test Page'' (''Печать тестовой страницы'') в выпадающем меню ''Maintenance'' (''Обслуживание''). Если принтер не печатает, но вы уверены в правильности всех настроек, попытайтесь сменить драйвер принтера на другой.<br />
<br />
{{Tip|Ознакомьтесь с другими программами в разделе [[#Альтернативные интерфейсы CUPS]].}}<br />
{{Note|При установке USB-принтер должен отображаться в списке устройств на странице ''Добавить принтер''. Если будет доступен только вариант "SCSI printer", то это означает, что CUPS не смог распознать ваш принтер.}}<br />
<br />
==== Администрирование CUPS ====<br />
<br />
При администрировании принтера через веб-интерфейс (например для: добавления или удаления принтеров, остановки заданий печати, и т.д) понадобятся имя пользователя и пароль. Пользователем по-умолчанию может быть пользователь из группы ''sys'' или root (для изменения измените значение в строке ''SystemGroup'' файла {{ic|/etc/cups/cupsd.conf}}). <br />
<br />
При заблокированной учетной записи root (т.е. используя sudo) будет невозможно войти в веб-интерфейс управления CUPS с именем пользователя по умолчанию и его паролем. В этом случае придерживайтесь [http://www.cups.org/articles.php?L237+T+Qprintadmin инструкций] из CUPS FAQ. Дополнительно прочтите [http://bbs.archlinux.org/viewtopic.php?id=35567 это сообщение].<br />
<br />
====Удаленный доступ к веб-интерфейсу====<br />
По умолчанию, доступ к веб-интерфейсу CUPS разрешен только ''localhost''; т.е. компьютеру на котором он установлен. Для разрешения удаленного доступа нужно внести следующие изменения в файл {{ic|/etc/cups/cupsd.conf}}. Замените строку:<br />
Listen localhost:631<br />
на строку<br />
Port 631<br />
для того, чтобы CUPS мог слушать входящие запросы.<br />
<br />
Можно предоставить три уровня доступа:<br />
<Location /> #доступ к серверу<br />
<Location /admin> #доступ к странице администрирования<br />
<Location /admin/conf> #доступ к конфигурационным файлам<br />
<br />
Для разрешения удаленного доступа к одному из уровней, добавьте параметр {{ic|Allow}} в секцию соответствующую выбранному уровню. Параметр {{ic|Allow}} может принимать одно или несколько из перечисленных ниже значений:<br />
Allow all<br />
Allow host.domain.com<br />
Allow *.domain.com<br />
Allow ip-address<br />
Allow ip-address/netmask<br />
<br />
Параметр также может быть использован для запрета. Например, если нужно дать полный доступ всем хостам подсети 192.168.1.0/255.255.255.0, файл {{ic|/etc/cups/cupsd.conf}} должен содержать следующее:<br />
# Ограничение доступа к серверу...<br />
# По умолчанию возможны только локальные подключения<br />
<Location /><br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
# Ограничение доступа к странице администрирования...<br />
<Location /admin><br />
# Encryption disabled by default<br />
#Encryption Required<br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
# Ограничение доступа к конфигурационным файлам...<br />
<Location /admin/conf><br />
AuthType Basic<br />
Require user @SYSTEM<br />
Order allow,deny<br />
Allow From localhost<br />
'''Allow From 192.168.1.0/255.255.255.0'''<br />
</Location><br />
<br />
Также вам потребуется добавить:<br />
<br />
DefaultEncryption Never<br />
<br />
Для того, чтоб избежать получения ошибки: 426 - Upgrade Required when using the CUPS web interface from a remote machine.<br />
<br />
= Устранение проблем =<br />
<br />
Наилучший способ борьбы с неисправностями - это выставить 'LogLevel' в файле {{ic|/etc/cups/cupsd.conf}} в:<br />
LogLevel debug<br />
<br />
А потом посмотреть вывод из файла {{ic|/var/log/cups/error_log}} например так:<br />
# tail -n 100 -f /var/log/cups/error_log<br />
<br />
Символы слева от вывода означают следующее:<br />
*D=Debug (отладка)<br />
*E=Error (ошибка)<br />
*I=Information (информация)<br />
*И так далее<br />
<br />
Следующие файлы также могут быть полезны:<br />
*{{ic|/var/log/cups/page_log}} - каждый раз при успешной печати, пишет новую запись<br />
*{{ic|/var/log/cups/access_log}} - записывает всю активность на cupsd http1.1 сервере<br />
<br />
Также, если вы хотите решить свои проблемы, важно понимать, как вообще работает CUPS. Вот краткая информация об этом:<br />
# Когда вы жмёте 'печать' приложение отправляет .ps-файл (PostScript, язык-скрипт, который описывает, как выглядит страница) в систему CUPS (так происходит в большинстве программ).<br />
# CUPS смотрит на PPD-файл (файл описания принтера) и находит, фильтры которые ему нужно использовать для преобразования .ps-файла в файл, который понимает ваш принтер (например, PJL,PCL). Обычно для этого ему требуется ghostscript.<br />
# GhostScript принимает ввод и решает, какие фильтры ему использовать, потом применяет их и преобразовывает .ps-файл в формат, который понимает принтер.<br />
# Затем файл передается бэкенду. Например, если у вас принтер подключен к usb порту, то используется usb бэкенд<br />
<br />
===Проблемы в результате обновления===<br />
''Проблемы возникшие после обновления CUPS и сопутствующего ему набора программ''<br />
<br />
====CUPS останавливается====<br />
Существует вероятность, что для правильной работы в обновленной версии понадобится новый файл конфигурации. Например, получение сообщения "404 - page not found" при попытке входа в панель управления CUPS через localhost:631.<br />
<br />
Для того, чтобы воспользоваться новым конфигом, скопируйте {{ic|/etc/cups/cupsd.conf.default}} в {{ic|/etc/cups/cupsd.conf}} (при необходимости сделайте резервную копию старого конфига):<br />
# cp /etc/cups/cupsd.conf.default /etc/cups/cupsd.conf<br />
и, чтобы новые настройки вступили в силу, перезапустите CUPS.<br />
<br />
====Ошибка gnutls====<br />
При получении следующей ошибки:<br />
/usr/sbin/cupsd: error while loading shared libraries: libgnutls.so.13: cannot open shared object file: No such file or directory<br />
следует обновить gnutls:<br />
# pacman -S gnutls<br />
<br />
После обновления в {{ic|/etc/cups}} появится файл {{ic|cupsd.conf.pacnew}}. Это стандартный конфигурационный файл. Сравните его со своим конфигурационным файлом и, при необходимости, добавьте новые опции.<br />
<br />
====Для всех заданий - "остановлено" ("stopped")====<br />
Если для всех отправленных на печать заданий установился статус "остановлено" ("stopped"), - удалите принтер и установите его заново.<br />
Для этого войдите в [http://localhost:631 веб-интерфейс CUPS], перейдите Принтеры > Удалить Принтер.<br />
<br />
Для проверки настроек принтера перейдите во вкладку ''Принтеры'', затем ''Администрирование''. В выпадающем списке кликните 'Изменить принтер', перейдите к следующей странице (ам), и так далее.<br />
<br />
====Для всех заданий - "Принтер не отвечает" ("The printer is not responding")====<br />
Для сетевых принтеров, поскольку CUPS подключается через URI, необходимо убедиться, что в DNS настроен доступ к принтерам по IP. Например, если принтер подключен следующим образом:<br />
lpd://BRN_020554/BINARY_P1<br />
то имени хоста 'BRN_020554' должны соответствовать IP принтеров, управляемых сервером CUPS.<br />
<br />
====Версия PPD не совместима с gutenprint====<br />
Запустите:<br />
# /usr/sbin/cups-genppdupdate<br />
<br />
И перезагрузите CUPS (будет выведено соответствующее сообщение после установки gutenprint).<br />
<br />
===USB-принтеры под CUPS 1.4.x===<br />
Новый CUPS 1.4.x принес множество изменений:<br />
<br />
====Конфигурационный файл====<br />
Изменился синтаксис конфигурационного файла cupsd.conf. Начните с нового конфигурационного фала {{ic|cupsd.conf}}, созданного из {{ic|/etc/cups/cupsd.conf.default}}.<br />
<br />
====Занесение в черный список usblp====<br />
Теперь CUPS, вместо генерирования устройств /dev/usb/lpX с помощью usblp, использует устройства libusb и USB-принтеры (из /dev/bus/usb/). Для того, чтобы заработали USB-принтеры - необходимо выключить модуль usblp.<br />
Выключить можно либо добавив в {{ic|/etc/modprobe.d/modprobe.conf}}:<br />
<br />
{{hc|/etc/modprobe.d/modprobe.conf|blacklist usblp}}<br />
<br />
либо создав в {{ic|/etc/modprobe.d/}} свой файл, например {{ic|usblp_blacklist.conf}}, со следующим содержимым:<br />
<br />
{{hc|/etc/modprobe.d/usblp_blacklist.conf|blacklist usblp}}<br />
<br />
Некоторым пользователям, возможно, прийдется переустановить принтер.<br />
<br />
====Определение устройства====<br />
В дополнение к отключению загрузки usblp, CUPS могут понадобится права на файл устройства USB-принтера - root:lp, и должны быть 660. Например.<br />
$ ls -l /dev/bus/usb/003/002<br />
crw-rw---- 1 root lp 189, 257 20. Okt 10:32 /dev/bus/usb/003/002<br />
<br />
Этого можно добиться добавлением двумя правилами udev в {{ic|/lib/udev/rules.d/50-udev-default.rules}}:<br />
# hplip and cups 1.4+ use raw USB devices, so permissions should be similar to<br />
# the ones from the old usblp kernel module<br />
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="", IMPORT{program}="usb_id --export %p"<br />
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}==":0701*:", GROUP="lp", MODE="660"<br />
<br />
Тем не менее, для некоторых устройств, например, многофункциональных устройств принтер/сканер, эти правила либо не используются, либо перекрываются правилами пакета 'sane'. В этом случае нужно будет добавлять пользовательские правила udev. Смотри далее.<br />
<br />
=====Устранение неполадок при определении устройств=====<br />
Узнаем файл устройства принтера и права доступа к нему: <br />
$ lsusb<br />
...<br />
Bus 003 Device 002: ID 04b8:0841 Seiko Epson Corp.<br />
$ ls -l /dev/bus/usb/003/002<br />
crw-rw---- 1 root lp 189, 257 20. Okt 10:32 /dev/bus/usb/003/002<br />
<br />
Если права доступа не root:lp 660, придется создать пользовательское правило [[udev]] для этого устройства, пример<br />
{{hc|cat /etc/udev/rules.d/10-usbprinter.rules|<nowiki>ATTR{idVendor}=="04b8", ATTR{idProduct}=="0841", MODE:="0660", GROUP:="lp"</nowiki>}}<br />
<br />
Для многофункциональных устройств (принтер+сканер), для того, чтоб [[sane]] определил его корректно:<br />
{{hc|cat /etc/udev/rules.d/10-usbprinter.rules|<nowiki>ATTR{idVendor}=="04b8", ATTR{idProduct}=="0841", MODE:="0660", GROUP:="lp", ENV{libsane_matched}:="yes"</nowiki>}}<br />
<br />
Обратите внимание на то, что значения idVendor и idProduct взяты из вывода команды lsusb показанного выше.<br><br />
Также обратите внимание - некоторым принтерам понадобятся права доступа 666.<br />
<br />
=====Загрузка прошивки (firmware)=====<br />
<br />
Для некоторых принтеров и драйверов понадобится загрузка прошивки принтера (таким как, использующие foo2zjs, принтеры HP LaserJet 10xx) и сделать это будет нужно путем записи прямо на устройство lp, такие функциональные возможности предоставляет usblp. Для обхода этого ограничения нужно будет загрузить модуль usblp при загрузке прошивки, а затем, для нормальной работы CUPS, удалить модуль. Для ручной загрузки модуля выполните<br />
$ modprobe usblp<br />
загрузка прошивки, затем:<br />
$ rmmod usblp<br />
Также можно обойтись без добавления usblp в черный список, добавьте "rmmod usblp" в {{ic|/etc/rc.local}}, при этом прошивка будет загружена при старте системы, а затем, при чтении {{ic|rc.local}}, модуль usblp будет выгружен.<br />
<br />
В случае если принтер окажется подключенным или на нем будет включено питание уже на работающей системе - файл {{ic|/etc/rc.local}} не будет использован и модуль usblp останется подгруженным. Обойти это можно изменив {{ic|/etc/udev/rules.d/11-hpj10xx.rules}}, созданный для foo2zjs, таким образом чтоб при добавлении устройства выполнялось нужное событие, например: 15 секунд для загрузки прошивки и автоматического удаления usblp. Следующий пример для HP LaserJet 1018. Для других моделей значения ATTRS{idProduct} должны быть изменены, соответственно модели принтера.<br />
<br />
Найдите в {{ic|/etc/udev/rules.d/11-hpj10xx.rules}} строку соответствующую вашему принтеру:<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/sbin/foo2zjs-loadfw 1018 $tempnode"<br />
Добавьте после нее следующие строки, при этом убедитесь, что соответствуют IDs продукта и производителя:<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/usr/bin/sleep 15"<br />
ACTION=="add", KERNEL=="lp*", SUBSYSTEM=="usb", ATTRS{idVendor}=="03f0", \<br />
ATTRS{idProduct}=="4117", RUN+="/usr/bin/rmmod usblp"<br />
<br />
===Остальное===<br />
<br />
=====Устранение ошибок CUPS=====<br />
*Пользователям, регулярно получающим ошибки вида 'NT_STATUS_ACCESS_DENIED' (Windows-клиенты), следует слегка изменить синтаксис:<br />
smb://workgroup/username:password@hostname/printer_name<br />
<br />
*Иногда, блочные устройства могут иметь не правильные права:<br />
# ls /dev/usb/<br />
lp0<br />
# chgrp lp /dev/usb/lp0<br />
<br />
====Принтер HPLIP выдает ошибку "/usr/lib/cups/backend/hp failed"====<br />
Убедитесь, что dbus установлен и запущен, для этого или проверьте секцию DAEMONS в {{ic|/etc/rc.conf}}, или выполните {{ic|ls /var/run/daemons}}.<br />
<br />
Если демон dbus запущен, но ошибка все равно повторяется - нужен avahi-daemon.<br />
<br />
====hp-toolbox выдает ошибку "Unable to communicate with device" ("Невозможно соединиться с устройством")====<br />
Если в результате запуска hp-toolbox от обычного пользователя получаете сообщение:<br />
# hp-toolbox<br />
# error: Unable to communicate with device (code=12): hp:/usb/<printer id><br />
или, "{{ic|Unable to communicate with device"}}", значит следует добавить пользователя в группу lp, для этого выполните следующую команду:<br />
# gpasswd -a <username> lp<br />
<br />
====CUPS с принтером HP возвращает '"foomatic-rip" not available/stopped with status 3' ('"foomatic-rip" не используется/остановлен со статусом 3')====<br />
Если, во время использования принтера HP, задания появляются в очереди, но все завершаются со статусом 'stopped', а в {{ic|/var/log/cups/error_log}} возникает одно из следующих сообщений об ошибках:<br />
Filter "foomatic-rip" for printer "<printer_name>" not available: No such file or director<br />
или:<br />
PID 5771 (/usr/lib/cups/filter/foomatic-rip) stopped with status 3!<br />
Убедитесь, что установлен '''hplip''', также может понадобится пакет '''net-snmp'''. Прочитайте [http://bbs.archlinux.org/viewtopic.php?id=65615 эти сообщения на форуме].<br />
# pacman -S hplip<br />
<br />
====Завершение печати из-за ошибок авторизации====<br />
Если пользователь уже добавлен в группу lp, и ему разрешена печать (настраивается в {{ic|cupsd.conf}}), то проблему следует искать в файле {{ic|/etc/cups/printers.conf}}. Проблема может заключаться в следующей строке:<br />
AuthInfoRequired negotiate<br />
<br />
Закомментируйте ее и перезапустите CUPS.<br />
<br />
====Неактивна кнопка Печать в диалогах приложений GNOME====<br />
:''<small>Источник: [http://bbs.archlinux.org/viewtopic.php?id=70418 I can't print from gnome applications. - Arch Forums]</small>''<br />
<br />
Убедитесь, что установлен пакет: '''libgnomeprint'''<br />
<br />
Отредактируйте {{ic|/etc/cups/cupsd.conf}} добавив в него<br />
# HostNameLookups Double<br />
<br />
Перезапустите CUPS:<br />
# /etc/rc.d/cupsd restart<br />
<br />
====Не найдена поддержка формата: application/postscript====<br />
Закомментируйте строки:<br />
application/octet-stream application/vnd.cups-raw 0 -<br />
в {{ic|/etc/cups/mime.convs}}, и:<br />
application/octet-stream<br />
в {{ic|/etc/cups/mime.types}}.<br />
<br />
====Определение URIs для Windows Print Servers====<br />
<br />
Иногда Windows предоставляет не полную информацию об URI (расположение устройств). Если в CUPS возникли проблемы с указанием местоположения устройств - необходимо выполнить команду получения списка всех ресурсов, которые доступны данному windows-пользователю:<br />
$ smbtree -U ''windowsusername''<br />
Если [[Samba]] работает и настроена правильно, то будут отображены все, доступные выбранному Windows-пользователю, ресурсы локальной сети. Команда должна отобразить что-то, типа этого:<br />
{{bc| WORKGROUP<br />
\\REGULATOR-PC <br />
\\REGULATOR-PC\Z <br />
\\REGULATOR-PC\Public <br />
\\REGULATOR-PC\print$ Printer Drivers<br />
\\REGULATOR-PC\G <br />
\\REGULATOR-PC\EPSON Stylus CX8400 Series EPSON Stylus CX8400 Series}}<br />
Нам понадобится первая часть последней строки -ресурс соответствующий описанию принтера. Таким образом, для получения возможности печатать на принтере EPSON Stylus, в качестве URI в CUPS следует ввести:<br />
smb://username.password@REGULATOR-PC/EPSON Stylus CX8400 Series<br />
Обратите внимание на то, что в URI допускаются пробелы, а знаки "\\" следует заменять на "//".<br />
<br />
====Ошибка задания для печати client-error-document-format-not-supported====<br />
Нужно установить пакет foomatic и использовать драйвер foomatic.<br />
<br />
====Не работает /usr/lib/cups/backend/hp====<br />
В {{ic|/etc/cups/cupsd.conf}} замените:<br />
<br />
SystemGroup sys root<br />
на<br />
SystemGroup lp root<br />
<br />
====Принтер Samsung не печатает некоторые документы====<br />
<br />
Бывает, что принтер Samsung прекрасно работает с {{ic|cups}}, но не печатает некоторые документы (файлы Inkscape с текстом) и даже сбоит. В качестве решения можно посоветовать использовать пакет {{AUR|cups-usblp}} с добавлением модуля {{ic|usblp}} в черный список (как было описано ранее).<br />
<br />
====Не отображается локальный USB-принтер====<br />
<br />
Если ваш usb-принтер не отображается - попробуйте заменить {{pkg|cups}} на {{AUR|cups-usblp}} (пакет можно найти в [[AUR]]). Затем проверьте работоспособность сначала с загруженным модулем {{ic|usblp}}, а затем, если не поможет, - с добавленным в черный список.<br />
<br />
===="Не удается получить список драйверов для принтеров"====<br />
Попробуйте удалить драйверы Foomatic.<br />
<br />
=Приложение=<br />
<br />
===Альтернативные интерфейсы CUPS===<br />
<br />
В среде [[GNOME]], вы можете конфингурировать ваш принтер с помощью system-config-printer-gnome. С помощью pacman можно установить этот пакет:<br />
# pacman -S system-config-printer-gnome<br />
<br />
Для нормальной работы system-config-printer понадобиться или запуск с правами администратора, или, если от обычного пользователя, то такому пользователю должно быть разрешено администрировать CUPS (если это так - '''выполните шаги 1-3''')<br />
<br />
* 1. Создайте группу и внесите в нее нужного пользователя:<br />
# groupadd lpadmin<br />
# usermod -aG lpadmin <username><br />
<br />
* 2. Добавьте "lpadmin" (без кавычек) в следующую строку файла {{ic|/etc/cups/cupsd.conf}}<br />
SystemGroup sys root <insert here><br />
<br />
* 3. Перезапустите cups, выйдите и снова войдите в систему (или перезагрузите компьютер)<br />
{{bc|# rc.d restart cupsd}}<br />
<br />
Пользователи [[KDE]] могут изменять настройки из "Control Center" (kcontrol). Для получения дополнительной информации, обратитесь к документации вашего рабочего окружения (DE).<br />
<br />
Также в [[AUR]] можно найти пакет [https://aur.archlinux.org/packages.php?ID=43505 gtklp]<br />
<br />
===Виртуальный PDF-принтер===<br />
<br />
Существует прекрасный пакет - CUPS-PDF. Этот пакет позволяет настроить виртуальный принтер, генерирующий PDF-файлы из того, что отправлено на печать на этот принтер. Возможно этот пакет вам и не понадобиться, но иногда он может быть очень полезен.<br />
<br />
Созданные PDF-документы можно найти в {{ic|var/spool/cups-pdf}}. Обычно, более удобно такие документы добавлять в домашнюю директорию пользователя. Настроить такое поведение не сложно. В файле /etc/cups/cups-pdf.conf найдите и строку:<br />
#Out /var/spool/cups-pdf/${USER}<br />
<br />
и приведите ее к такому виду:<br />
<br />
Out /home/${USER}<br />
<br />
<br />
Установить этот пакет можно командой:<br />
# pacman -S cups-pdf<br />
<br />
После установки пакета, настройте PDF-принтер аналогично обычному принтеру, например с помощью веб-интерфейса. В Device (Оборудование) выберите - '''CUPS-PDF (Virtual PDF Printer)'''; Make/Manufacturer (Марка/Производитель) выберите - '''Generic'''; Model/Driver (Модель/Драйвер) выберите - '''Generic postscript color printer''' или '''Generic Cups-PDF Printer'''. В качестве альтернативы, [http://www.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/cups-pdf-CURRENT/extra/CUPS-PDF.ppd по этой ссылке] можно найти другой PPD-файл.<br />
<br />
==== Печать в postscript: тонкости использования виртуального CUPS-PDF-принтера ====<br />
<br />
Для большинства приложений, таких как OpenOffice, печать в PDF не является проблемой; достаточно просто нажать кнопку. Для печати в postscript, потребуется выполнить небольшой дополнительный объем работ. CUPS-PDF (Виртуальный PDF-принтер) на самом деле создает postscript-файл, а затем уже с помощью утилиты ps2pdf, преобразовывает его в PDF. Для печати в postscript, необходимо сначала передать созданные CUPS-PDF postscript-файлы. Для этого в диалоге печати нужно выбрать вариант "print to file" ("печатать в файл"). (выберите расширение для файла или .ps, или .eps). После того, как будет отмечен флажок "print to file" ("печатать в файл"), введите имя файла и нажмите "print" ("печать").<br />
<br />
=====Настройка виртуального CUPS-PDF-принтера=====<br />
#Прочтите инструкция по настройке демона cups.<br />
#Установите {{Pkg|cups-pdf}} из [extra].<br />
#Запустите менеджер печати cups: http://localhost:631 и выберите:<br />
Administration -> Add Printer<br />
Select CUPS-PDF (Virtual PDF), выберите марку и модель:<br />
Make: Generic<br />
Driver: Generic CUPS-PDF Printer<br />
<br />
Теперь, для печати в postscript, в диалоговом окне печати установите "CUPS-PDF" в качестве принтера, установите флажок на "print to file" ("печатать в файл"), нажмите печать, введите имя_файла.ps и кликните сохранить. Метод удобен при обработке факсов и т.д...<br />
<br />
===Другие источники драйверов для принтеров===<br />
<br />
[http://www.turboprint.de/english.html Turboprint] - проприетарный драйвер для многих моделей принтеров, которые до сих пор не поддерживаются в GNU/Linux (например Canon i*). Единственная проблема в том, что высококачественная печать будет либо с водяным знаком, либо за отдельную плату...<br />
<br />
=Дополнение=<br />
<br />
Список вебсайтов, которые могут быть вам полезны:<br />
<br />
* <b>Official CUPS documentation on your computer</b> http://localhost:631/documentation.html<br />
* <b>Official CUPS Website</b> - http://www.cups.org/<br />
* <b>Linux Printing</b> - http://www.linuxprinting.org/<br />
* <b>Tips and Suggestions on common CUPS problems</b> - http://home.nyc.rr.com/computertaijutsu/cups.html<br />
* <b>Gentoo's Printing Guide</b> - http://www.gentoo.org/doc/en/printing-howto.xml<br />
* <b>Arch Linux User Forums</b> - http://bbs.archlinux.org/<br />
<br />
==Особые случаи==<br />
<br />
Дальнейшее описание посвящено специфическим проблемам и их решениям. Если вы сталкивались с какой-либо ''необычной'' работой принтера, пожалуйста, поместите решение проблемы здесь.<br />
<br />
=== Принтеры с параллельным портом HP (hplip) ===<br />
{{Note|Действия проводились для настройки HP LaserJet 6L}}<br />
Если HP принтер подключен через параллельный порт, то потребуется пересобрать пакет '''hplip''' с опцией '''--enable-pp-build'''.<br />
Для этого устанавливаем и обновляем ABS:<br />
<pre><br />
# pacman -S abs<br />
# abs<br />
</pre><br />
Копируем необходимые файлы для сборки<br />
<pre><br />
# cp -r /var/abs/extra/hplip /tmp<br />
</pre><br />
Правим файл {{ic|/tmp/hplip/PKGBUILD}} и добавляем опцию '''--enable-pp-build''' для '''./configure''':<br />
<pre><br />
[...]<br />
./configure --prefix=/usr \<br />
--enable-qt4 \<br />
--enable-pp-build \<br />
--enable-foomatic-rip-hplip-install \<br />
--enable-foomatic-ppd-install \<br />
--enable-hpcups-install \<br />
--enable-cups-drv-install \<br />
--enable-hpijs-install \<br />
--enable-foomatic-drv-install \<br />
--enable-udev-acl-rules<br />
[...]<br />
</pre><br />
Собираем и ставим пакет:<br />
<pre><br />
cd /tmp/hplip<br />
makepkg -s<br />
pacman -U hplip-3.10.6-1-i686.pkg.tar.xz<br />
</pre><br />
Далее принтер настраивается обычным путем через web-интерфейс '''CUPS''' [http://localhost:631 http://localhost:631].<br />
<br />
Если принтер правильно настроен для работы с '''hplip''', то строка подключения в '''CUPS''' будет начинаться с '''hp:'''<br />
<pre><br />
hp:/par/HP_LaserJet_6L?device=/dev/parport0<br />
</pre><br />
<br />
{{Note|Действия проводились для настройки HP LaserJet 5L, x86_64}}<br />
Устанавливаем hplip (пересобирать пакет не надо, он уже собран с --enable-pp-build)<br />
<pre><br />
# pacman -S hplip<br />
</pre><br />
Далее запускаем<br />
<pre><br />
# hp-setup -i -a -x /dev/parport0<br />
</pre><br />
для автоматического добавления принтера в CUPS, либо добавляем "ручками" через веб-интерфейс [http://localhost:631 http://localhost:631].<br />
<br />
===Печать не работает/прерывается на принтерах HP Deskjet 700===<br />
<br />
Проблема решается установкой фильтра pnm2ppa для принтеров HP Deskjet 700 series. Без этого задания на печать будут отменяться системой. [[Arch Build System (Русский)| PKGBUILD]] для pnm2ppa можно найти здесь: [https://aur.archlinux.org/index.php?setlang=ru AUR].<br />
<br />
===Заставить работать HP LaserJet 1010===<br />
Мне для этого пришлось самому собрать ghostscript, потому что gs ESP в репозитории был версии 7.07 и имел некоторые ошибки, исправленные в ESP 8.15.1. Я никогда не пользовался пакетом 'foomatic' из репозитория. Я думаю что этот пакет устарел.<br />
<pre><br />
$ pacman -Qs cups a2ps psutils foo ghost<br />
local/cups 1.1.23-3<br />
The CUPS Printing System<br />
local/a2ps 4.13b-3<br />
a2ps is an Any to PostScript filter<br />
local/psutils p17-3<br />
A set of postscript utilities.<br />
local/foomatic-db 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-db-engine 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-db-ppd 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/foomatic-filters 3.0.2-1<br />
Foomatic is a system for using free software printer drivers with common<br />
spoolers on Unix<br />
local/espgs 8.15.1-1<br />
ESP Ghostscript<br />
</pre><br />
Также я был вынужден выставить LogLevel в /etc/cups/cupsd.conf в debug2 для того чтобы обнаружить отсутствие некоторых шрифтов "Nimbus". Затем я переименовал их и положил туда, куда мне подсказывал лог. Тут нужно привести хитрый способ поиска в google, [http://www.google.com/search?q=n019003l+filetype%3Apfb например] т.к. шрифты являются проприетарными (уверен что в windows это по умолчанию). В любом случае, после скачивания шрифтов (около 7) и помещения их в правильную директорию печать заработала.<br />
<br />
До этого я получал ошибки описанные [http://linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1010 здесь]: 'Unsupport PCL' и т.п...<br />
<br />
Уверен что это работало бы и с gs ESP 7.07 (в репозитории) если бы у меня раньше хватило ума включить DebugLevel2 :-/<br />
<br />
''Обновление:'' да, это работает... может быть эта информация окажется полезной для кого-либо ещё... извините за неудобства.<br />
<br />
===Заставить работать HP LaserJet 1020 (1018 и похожие)===<br />
После множества попыток связанных с hplib и gutenprint я наконец нашёл решение как заставить мой HP Laserjet 1020 печатать. <br />
<br />
Первым делом вам надо уставить cups и ghostscript. Затем пройдите по ссылке <br />
http://www.linuxprinting.org/show_printer.cgi?recnum=HP-LaserJet_1020 на страницу драйверов печати http://foo2zjs.rkkda.com/ и следуйте интрукциям по установке. Залогиньтесь как root. После скачивания и распаковки архива переместитесь в распакованную директорию foo2zjs. Теперь вы можете делать всё по оригинальной инструкции по установке, лишь с небольшой модификацией для изменения userid пользователя для печати:<br />
<pre><br />
$ make<br />
$ ./getweb 1020<br />
</pre><br />
Откройте ''Makefile''<br />
<pre>$ nano Makefile</pre><br />
найдите там строку<br />
<pre># LPuid=-olp</pre><br />
и модифицируйте её таки образом:<br />
<pre># LPuid=-oroot</pre><br />
дальше выполняйте сборку<br />
<pre><br />
$ make install<br />
$ make install-hotplug<br />
$ make cups<br />
</pre><br />
Сейчас в этих действиях нет необходимости. Теперь строка '''LPuid=-oroot''' стоит по умолчанию.<br />
<br />
Вы также можете взять пакет foo2zjs из [https://aur.archlinux.org/index.php?setlang=ru AUR] и модифицировать [[Arch Build System (Русский)| PKGBUILD]]: измените строку<br />
<pre>./getweb all</pre><br />
на<br />
<pre>./getweb 1020</pre><br />
(или, если устанавливаете другой принтер, измените эту строку на что, что вам нужно).<br />
<br />
Последним шагом является добавление и конфигурирование принтера в CUPS manager. Принтер должен определиться автоматически. Это отлично работает для root'а и всех ползователей. Когда ОС загружается, принтер инициализируется и сигнализирует о том, что он работает.<br />
Так же строку<br />
<pre>./getweb 1020</pre><br />
можно изменять на необходимые 1018 (для работы принтера Hewlett-Packard 1018) и т.д.<br />
<pre>./getweb 1018</pre><br />
Список поддерживаемы моделей тут: http://foo2zjs.rkkda.com/<br />
<br />
====HPLIP====<br />
<br />
Больше нет необходимости устанавливать драйвер foo2zjs для работы принтера HP LJ 1018/1020, поскольку в последних версиях hplip он работает "из коробки". Вам следует установить hplip, gnomesu или gksu, qt и pyqt4, после чего запустить <br />
<pre>sudo hp-setup</pre><br />
CUPS-сервер должен быть запущен. Мастер установки hplip автоматически установит ваш принтер. После следует установить плагин к принтеру. Для этого запустить от пользователя программу hp-toolbox и выберите "install required plugin". Плагин автоматически загрузится с сайта производителя.<br />
Никаких дополнительных действий (вроде внесения usblp и MODULES_BLACKLIST) выполнять не надо.<br />
<br />
===Выполнение сервисных операций на принтерах Epson===<br />
====Escputil====<br />
<br />
Здесь объясняется как выполнить некоторые вспомогательные операции, такие как очистка и проверка сопел на принтерах Epson. Для этого мы будем использовать утилиту escputil, которая входит в состав пакета gutenprint.<br />
<br />
Man-страница этой утилиты ("man escputil") содержит очень полезную информацию, но не включает в себя необходимых сведений о том как идентифицировать ваш принтер. Для этого могут быть использованы два параметра. Первый из них --printer; он принимает имя принтера, которое вы использовали при его конфигурировании. Другой &mdash --raw-device. Эта опция примаетпуть к устройству. Если ваш принтер подключен к последовательному порту, то устройство будет выглядеть примерно как "/dev/lp0". Если же ваш принтер подключен к USB, по устройство будет "/dev/usb/lp0". Если у вас более одного принтера они будут иметь имена файлов устройств "lp1", "lp2" и т.д.<br />
<br />
* очистка печатающей головки:<br />
<pre>escputil -u --clean-head</pre><br />
<br />
* проверка сопел:<br />
<pre>escputil -u --nozzle-check</pre><br />
<br />
Если вам необходимо произвести операцию, которая требует двухстороннего общения с принтером вы должны использовать спецификацию "--raw-device", а ваш пользователь должен состоять в группе "lp" или быть root'ом.<br />
<br />
* получение внутреннего имени принтера:<br />
<br />
sudo escputil --raw-device=/dev/usb/lp0 --identify<br />
<br />
* получение уровня чернил:<br />
<br />
sudo escputil --raw-device=/dev/usb/lp0 --ink-level<br />
<br />
====Mtink====<br />
<br />
Это монитор состояния принтера, который позволяет получить количество оставшихся чернил, печатать тестовые страницы, сбрасывать принтер и очищать сопла. Он использует интуитивный графический интерфейс пользователя. Пакет можно скачать [https://aur.archlinux.org/packages.php?ID=476 отсюда].<br />
<br />
=Источники=<br />
* [http://localhost:631/documentation.html Официальная документация CUPS documentation], ''локальная установка''<br />
* [http://www.cups.org/ Официальный Веб-сайт CUPS]<br />
* [http://www.linuxprinting.org/ Linux Printing], ''[http://www.linuxfoundation.org Linux Foundation]''<br />
* [http://www.gentoo.org/doc/en/printing-howto.xml Руководство по печати в Gentoo], ''[http://www.gentoo.org/doc/en Источники Документации Gentoo]''<br />
* [http://bbs.archlinux.org/ Форум пользователей Arch Linux]</div>
Vadik
https://wiki.archlinux.org/index.php?title=Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=195788
Pacman (Русский)
2012-04-22T12:16:15Z
<p>Vadik: </p>
<hr />
<div>[[Category:Управление пакетами (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|pacman}} {{Lowercase title}}<br />
<br />
{{Article summary start|Описание}}<br />
{{Article summary text|pacman - [[Wikipedia:Package management system|пакетный менеджер]] Arch Linux. Менеджеры пакетов используются для установки, обновления и удаления программного обеспечения. В данной статье рассматриваются основные приемы и советы по устранению неполадок.}}<br />
{{Article summary heading|Обзор}}<br />
{{Article summary text|{{Package management overview}}}}<br />
{{Article summary heading|Дополнительно}}<br />
{{Article summary wiki|Downgrading Packages (Русский)}}<br />
{{Article summary wiki|Improve Pacman Performance (Русский)}}<br />
{{Article summary wiki|pacman GUI Frontends (Русский)}}<br />
{{Article summary wiki|pacman Rosetta}}<br />
{{Article summary wiki|pacman Tips}}<br />
{{Article summary wiki|Pacman package signing}}<br />
{{Article summary wiki|FAQ_(Русский)#Управление_пакетами}}<br />
{{Article summary wiki|pacman-key (Русский)}}<br />
{{Article summary wiki|Pacnew and Pacsave Files}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary link|libalpm(3) Manual Page|https://www.archlinux.org/pacman/libalpm.3.html}}<br />
{{Article summary link|pacman(8) Manual Page|https://www.archlinux.org/pacman/pacman.8.html}}<br />
{{Article summary link|pacman.conf(5) Manual Page|https://www.archlinux.org/pacman/pacman.conf.5.html}}<br />
{{Article summary link|repo-add(8) Manual Page|https://www.archlinux.org/pacman/repo-add.8.html}}<br />
{{Article summary end}}<br />
<br />
<br />
[[Wikipedia:Package management system|Менеджер пакетов]] '''[https://archlinux.org/pacman/ pacman]''' &mdash; является одной из основных особенностей Arch Linux. Он сочетает в себе простой формат бинарных пакетов и легкую в использовании систему сборки (смотрите [[Arch Build System]] и [[makepkg]]). '''Pacman''' позволяет пользователям с легкостью управлять и настраивать под себя пакеты, вне зависимости от того, из официального ли они репозитария Arch или собранные самостоятельно.<br />
<br />
'''Pacman''', синхронизируя пакеты с главным сервером, поддерживает систему в актуальном состоянии. Такая клиент-серверная модель, позволяет скачивать/устанавливать пакеты со всеми требуемыми зависимостями всего одной командой.<br />
<br />
'''Pacman''' написан на языке C и использует формат пакетов {{ic|.pkg.tar.xz}}.<br />
<br />
{{Tip|Официальный пакет {{Pkg|pacman}} включает в себя много дополнительных полезных инсрументов, таких как [[makepkg]], pactree, vercomp и другие. Весь перечень можно получить с помощью {{ic|pacman -Ql pacman <nowiki>|</nowiki> grep bin}} }}<br />
<br />
== Конфигурация ==<br />
<br />
Основные настройки pacman находятся в {{ic|/etc/pacman.conf}}. В этом файле, пользователь может указать все нужные ему настройки программы. Подробнее о конфигурировании можно прочесть в [https://www.archlinux.org/pacman/pacman.conf.5.html man pacman.conf].<br />
<br />
=== Основные Параметры ===<br />
<br />
Основные параметры находятся в секции {{ic|[options]}}. Для получения дополнительной информации о параметрах - прочтите страницу man или изучите установленный по умолчанию файл {{ic|pacman.conf}}.<br />
<br />
==== Пропуск обновления пакетов ====<br />
<br />
Для пропуска обновления какого-либо пакета, добавьте его название в строку:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета</nowiki>}}<br />
<br />
В случае, если необходимо в строке {{ic|IgnorePkg}} перечислить несколько пакетов - разделяйте имена пакетов пробелами:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета1 имя_пакета2 имя_пакета3</nowiki>}}<br />
<br />
==== Пропуск обновления группы пакетов ====<br />
<br />
Как и в случае с пакетом, вы также можете запретить обновления группы пакетов, например так:<br />
<br />
{{bc|<nowiki>IgnoreGroup=имя_группы</nowiki>}}<br />
<br />
=== Репозитории ===<br />
<br />
В этом разделе файла {{ic|pacman.conf}} указываются репозитории, которые будут использоваться. Их можно указать прямо здесь или подключить из другого файла.<br />
<br />
Все официальные репозитории перечислены в одном файле - {{ic|/etc/pacman.d/mirrorlist}}, для доступа к ним используется переменная {{ic|$repo}}, таким образом достаточно поддерживать в актуальном состоянии только один список.<br />
<br />
Далее приведен пример использования [[mirrors|зеркал]] [[Official Repositories|официальных репозиториев]], которые перечислены в {{ic|/etc/pacman.d/mirrorlist}}.<br />
<br />
{{bc|<nowiki><br />
<br />
#[testing]<br />
#SigLevel = PackageRequired <br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
#SigLevel = PackageRequired<br />
Include=/etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#[community-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#Если в вашей x86_64 системе необходимо запускать 32-битные программы,<br />
#раскоментируйте нужные multilib репозитории.<br />
<br />
#[multilib-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[multilib]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# Использование собственного репозитория. Обратитесь к справочной странице pacman для<br />
# получения дополнительной информации по созданию собственных репозиториев.<br />
<br />
#[custom]<br />
#SigLevel = Optional TrustAll<br />
#Server = file:///home/custompkgs<br />
</nowiki>}}<br />
<br />
{{Note|Будьте осторожны при использовании репозитория [testing]. Пакеты в нём активно разрабатываются и обновляются, это может сказаться на стабильности и работоспособности других пакетов или системы в целом. Людям, использующим репозиторий [testing], для своевременного получения информации рекомендуется подписаться на [https://mailman.archlinux.org/mailman/listinfo/arch-dev-public список рассылки arch-dev-public].}}<br />
<br />
=== Безопасность пакетов ===<br />
<br />
В Pacman 4 реализован дополнительный уровень безопасности устанавливаемых пакетов - подписи пакетов. Для включения проверки подписей перейдите [[pacman-key|сюда]].<br />
<br />
== Использование ==<br />
<br />
Чтобы узнать обо всех возможностях pacman - изучите [https://archlinux.org/pacman/pacman.8.html man pacman]. Примеры ниже - это только небольшая подборка доступных операций.<br />
<br />
===Установка Пакетов===<br />
<br />
====Установка определенных пакетов====<br />
Для установки одного пакета или группы пакетов (включая зависимости), используйте следующую команду:<br />
<br />
# pacman -S имя_пакета1 имя_пакета2 ...<br />
<br />
Если пакет имеет несколько версий в разных репозиториях (например в [extra] и [testing]). Можно указать, откуда именно следует установить пакет:<br />
<br />
# pacman -S extra/имя_пакета<br />
<br />
====Установка группы пакетов====<br />
Некоторые пакеты принадлежат к группе пакетов, которые могут быть установлены одновременно. Например, при выполнении команды:<br />
<br />
# pacman -S gnome<br />
будут установлены все пакеты входящие в группу {{ic|gnome}}. Чтобы увидеть список пакетов принадлежащих к группе gnome, выполните:<br />
<br />
# pacman -Sg gnome<br />
<br />
Перечень доступных групп пакетов можно изучить посетив https://www.archlinux.org/groups/.<br />
<br />
{{Note|Если не будет использована опция {{ic|--needed}}, то при установке группы будут переустановлены все ранее установленные в систему и принадлежащие этой группе пакеты (даже если установленные в системе пакеты будут иметь последнюю доступную версию).}}<br />
<br />
{{Warning|1=При установке не достаточно одного обновления списка пакетов (например {{ic|pacman -Sy имя_пакета}}) - могут возникнуть проблемы с зависимостями, смотрите разделы [https://bbs.archlinux.org/viewtopic.php?id=89328] и [[#Частичные обновления официально не поддерживаются|Частичные обновления не поддерживаются]]. В первую очередь, перед установкой новых пакетов, выполняйте полное [[#Обновление Системы|обновление системы]].}}<br />
<br />
=== Удаление Пакетов ===<br />
<br />
Для удаления пакета, без удаления установленных зависимостей:<br />
<br />
# pacman -R имя_пакета<br />
<br />
Для удаления пакета со всеми зависимостями, не используемыми другими установленными пакетами:<br />
<br />
# pacman -Rs имя_пакета<br />
<br />
Для удаления пакета, его зависимостей, и всех пакетов зависящих от целевого пакета:<br />
<br />
{{Warning|Эта операция рекурсивна и должна использоваться с осторожностью, так как появляется риск удалить много потенциально необходимых пакетов.}}<br />
<br />
# pacman -Rsc имя_пакета<br />
<br />
По умолчанию pacman создает резервные копии конфигурационных файлов удаляемых приложений с помощью добавления к ним расширения: {{ic|.pacsave}}. Если вы хотите удалить и эти файлы - используйте ключ {{ic|-n}}:<br />
<br />
# pacman -Rn имя_пакета<br />
<br />
{{Note|pacman не удаляет конфигурационных файлов, созданных самими приложениями (например "dot-файлы" в вашей домашней папке).}}<br />
<br />
===Обновление Системы===<br />
<br />
pacman может обновить все пакеты системы одной командой. Количество пакетов зависит от того, насколько свежие пакеты стоят в вашей системе. Лучший вариант - синхронизация базы данных репозиториев '''И''' обновление вашей системы одной командой:<br />
<br />
# pacman -Syu<br />
<br />
{{Warning|В связи с тем, что Arch является постоянно-обновляемым дистрибутивом, пользователям следует помнить, что после или в процессе обновления могут возникнуть непредвиденные трудности. Поэтому обновляться следует с осторожностью. Это означает, что если, например, ожидаются большие изменения или нововведения в обновляемых пакетах, то обновлять систему лучше тогда, когда у пользователя будет достаточно свободного времени и он будет готов к решению возможных проблем.}}<br />
<br />
pacman является мощным инструментом по управлению пакетами, но он не сможет обработать все возможные ситуации. Если вас это смущает - прочтите [[The Arch Way|Путь Arch Linux]]. Пользователь должен быть внимателен и сам заниматься обеспечением работоспособности своей системы. '''При выполнении обновления системы, крайне важно, читать и осмысливать всю информацию которую выводит pacman.''' Если вы изменяли конфигурационный файл, то при обновлении, во избежание перезаписи, будет создан новый конфигурационный файл {{ic|.pacnew}}. pacman предложит объединить его с вашим конфигурационным файлом. Выполнять объединение файлов придется вручную и, лучше всего, сразу после обновления. Для получения дополнительной информации обратитесь к руководству [[Pacnew and Pacsave Files]].<br />
<br />
{{Tip|Не забывайте, что вывод pacman заносится в {{ic|/var/log/pacman.log}}.}}<br />
<br />
Перед обновлением желательно посетить [https://www.archlinux.org/ главную страницу Arch Linux], [https://www.archlinux.org.ru/ главную страницу русскоязычного сообщества Arch Linux] и проверить там последние новости (или подписаться на канал RSS): для обновлений требующих дополнительного вмешательства (если выполнения указанных pacman-ом действий не достаточно) будут добавлены соответствующие новости.<br />
<br />
Если решить проблемы согласно инструкциям не удаётся - поищите подобные сообщения на форуме. Вполне возможно, что другие пользователи столкнувшиеся с подобными проблемами уже предоставили варианты по её решению.<br />
<br />
=== Запросы к Базе Данных Пакетов ===<br />
<br />
pacman, с помощью флага {{ic|-Q}}, может искать пакеты в локальной базе данных; см.:<br />
<br />
$ pacman -Q --help<br />
<br />
и, с помощью флага {{ic|-S}}, в базе данных (репозитариях); см.:<br />
<br />
$ pacman -S --help<br />
<br />
pacman умеет искать пакеты в базе данных, как по названиям, так и по описаниям:<br />
<br />
$ pacman -Ss условие1 условие2 ...<br />
<br />
Поиск пакета по имени в базе данных (вывод без дополнительной информации):<br />
<br />
$ pacman -Sqs условие1 условие2 ...<br />
<br />
Для поиска среди установленных пакетов:<br />
<br />
$ pacman -Qs условие1 условие2 ...<br />
<br />
Для отображения обширной информации о данном пакете:<br />
<br />
$ pacman -Si имя_пакета<br />
<br />
для установленных пакетов:<br />
<br />
$ pacman -Qi имя_пакета<br />
<br />
Использование сдвоенного флага {{ic|-i}} позволит просмотреть список резервных копий файлов и список измененных файлов:<br />
<br />
$ pacman -Qii имя_пакета<br />
<br />
Для получения списка файлов установленного пакета:<br />
<br />
$ pacman -Ql имя_пакета<br />
<br />
Для получения списка файлов неустановленного пакета можно использовать утилиту {{ic|pkgfile}}, из состава пакета [[pkgtools]], или {{ic|nosr}}, входящую в пакет {{aur|nosr-git}}, который расположен в [[AUR]].<br />
<br />
Чтобы узнать какому пакету принадлежит нужный файл:<br />
<br />
$ pacman -Qo /путь/к/файлу/имя_файла<br />
<br />
Для получения списка пакетов, которые больше не требуются как зависимости (пакеты, которые могут быть безопасно удалены или сироты):<br />
<br />
$ pacman -Qdt<br />
<br />
Для отображения зависимостей в виде дерева:<br />
<br />
$ pactree имя_пакета<br />
<br />
Для получения списка пакетов, которые зависят от вашего пакета - можно воспользоваться утилитой {{ic|whoneeds}} из состава пакета [[pkgtools]]:<br />
<br />
$ whoneeds имя_пакета<br />
<br />
=== Получение Списка Установленных Пакетов для Быстрого Восстановления Системы ===<br />
<br />
Хорошей практикой явлется сохранение списка всех установленых пакетов. Если ваша система "упала" и её сложно восстановить, pacman может легко переустановить эти пакеты.<br />
<br />
Сначала, сохраните в список пакетов (доступных в репозитории):<br />
<br />
pacman -Qqe | grep -v "$(pacman -Qmq)" > pkglist<br />
<br />
# безопасная, но и более сложная альтернатива (во избежание удаления частичных совпадений)<br />
comm -13 <(pacman -Qmq | sort) <(pacman -Qqe | sort) > pkglist<br />
<br />
Сохраните этот файл на флешке или на другом носителе.<br />
<br />
Скопируйте файл pkglist в новую систему, перейдите в эту папку.<br />
<br />
Для восстановления используйте команду:<br />
pacman -S $(cat pkglist)<br />
<br />
=== Получение Списка Файлов не Принадлежащих Любому Пакету ===<br />
<br />
Если вы всегда хотите держать свою систему в чистоте и уважаете [[Путь Arch]], вы должны иногда проверять файлы отсутствующие в базе данных pacman. Эти файлы, зачастую установлены сторонними приложениями с использованием '''./configure; make; make install''' и т.п. Вы можете найти все эти установленные файлы (или симлинки) используя этот простой скрипт:<br />
<br />
#!/bin/bash<br />
time /usr/bin/pacman -Ql | cut -d ' ' -f 2- | sort -u > db.txt<br />
time find /arch /bin /boot /etc /lib /opt /sbin /usr 2>/dev/null | while read i; do<br />
if [ ! -d "$i" ]; then<br />
echo "$i"<br />
fi;<br />
done | sort -u > fs.txt<br />
time comm -23 fs.txt db.txt > non-db.txt<br />
<br />
#для проверки:<br />
#cat non-db.txt | while read i; do pacman -Qo "$i" 2>&1; done | tee test.txt<br />
<br />
заметьте - все файлы указанные в non-db.txt НЕ БУДУТ удалены без подтверждения. Здесь могут находиться конфигурационные файлы, журналы и др. Используйте этот список только если знаете, что вы делаете.<br />
<br />
=== Дополнительные команды ===<br />
<br />
Обновление системы и установка списка пакетов (за одну операцию):<br />
<br />
# pacman -Syu имя_пакета1 имя_пакета2 ...<br />
<br />
Скачать пакет, но не устанавливать его:<br />
<br />
# pacman -Sw имя_пакета<br />
<br />
Установить локальный пакет (не из репозитория):<br />
<br />
# pacman -U /путь/к/пакету/имя_пакета-version.pkg.tar.xz<br />
<br />
Установить 'не локальный' пакет (не из репозитория):<br />
<br />
# pacman -U <nowiki>http://www.example.com/repo/example.pkg.tar.xz</nowiki><br />
<br />
Удалить из кэша ({{ic|/var/cache/pacman/pkg}}) неустановленные пакеты:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Поэтому, в случае возникновения проблем после обновлениий - появятся дополнительные трудности, связанные с откатом версий пакетов.}}<br />
<br />
# pacman -Sc<br />
<br />
Полная очистка кэша пакетов:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Выполняйте это только в том случае, если у вас всё нормально работает и вы уверены, что вам не понадобится [[Downgrade_packages| откатывать]] какой-либо пакет.}}<br />
<br />
# pacman -Scc<br />
<br />
В качестве альтернативы ключам {{ic|-Sc}} и {{ic|-Scc}} - можно использовать пакет {{AUR|Cacheclean}}, доступный в [[AUR]]. Это скрипт на python, который позволяет выборочно очищать кэш pacman'а от старых версий пакетов.<br />
<br />
===Частичные обновления официально не поддерживаются===<br />
Arch Linux постоянно обновляемый дистрибутив и это значит, что в репозиториях всегда находятся новые версии [[Wikipedia:Library (computing)|библиотек]]. Разработчики и доверенные пользователи собирают пакеты для репозиториев с использованием этих библиотек. Для пакетов установленных локально (например пакеты из [[Arch User Repository|AUR]]), нужно самостоятельно решать вопрос с зависимостями согласно данным [[Wikipedia:soname|soname]].<br />
<br />
Именно поэтому частичное обновление '''не поддерживается'''. Не используйте {{ic|pacman -Sy package}} или другие эквиваленты {{ic|pacman -Sy}} и {{ic|pacman -S package}}. Всегда перед установкой пакетов синхронизируйте репозитории и обновляйте систему полностью. По той же самой причине нужно быть осторожными при использовании {{ic|IgnorePkg}} и {{ic|IgnoreGroup}}.<br />
<br />
Если после частичного обновления оказалось, что бинарные файлы не могут найти нужных версий библиотек и проблему '''не возможно "решить" созданием символической ссылки''' (библиотеки не имеют '''обратной совместимости''') - выполните {{ic|pacman -Syu}}, как правило этого будет достаточно для устранения проблемы.<br />
<br />
== Устранение проблем ==<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init, но отсутствуют ssh / X или генераторы случайных чисел. Как мне получить энтропию?<br />
|answer=Для решения проблемы нужно перемещать указатель мыши, нажимать на клавиатуре случайные кнопки или запустить дисковую активность, например с помощью {{ic|updatedb}}. Будьте терпиливы, процесс может затянуться на длительное время. При этом переход в другую консоль, по Alt+F2-6, временно работать не будет.}}<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init через ssh. Как мне получить энтропию?<br />
|answer=На целевой машине соберите и установите пакет {{AUR|rng-tools}} из [[AUR]]. Подключитесь через ssh и выполните следующие команды:<br />
{{bc|# sed -i 's/0/10/' /etc/conf.d/rngd<br />
# rngd -f -r /dev/urandom &<br />
# pacman-key --init}}<br />
<br />
После успешного выполнения pacman-key просто остановите rngd и удалите пакет.<br />
<br />
{{bc|# killall rngd<br />
# pacman -Rns rng-tools}}<br />
}}<br />
<br />
{{FAQ<br />
|question=Pacman не находит PGP ключи для импорта и не обновляет пакеты. Как можно это исправить?<br />
|answer=На самом деле проблема не в pacman. Проблема в сервере ключей, используемом по умолчанию. Измените сервер ключей на более надежный таким способом:<br />
<br />
# sed -i '/keyserver/ s,keys.gnupg.net,pgp.mit.edu,' /etc/pacman.d/gnupg/gpg.conf<br />
Pacman4 теперь готов к использованию.}}<br />
<br />
{{FAQ<br />
|question=Обновление пакета XYZ сломало мою систему!<br />
|answer=Arch Linux - передовой, постоянно обновляемый дистрибутив. Обновления для пакетов становятся доступными тогда, когда их посчитают достаточно стабильными для повседневного использования. Тем не менее, обновления иногда требуют вмешательства пользователя: может потребоваться обновление конфигурационных файлов, могут измениться дополнительные зависимости, и т.д.<br />
<br />
Запомните основное правило - не обновляйте систему "вслепую". Всегда внимательно изучайте список обновляемых пакетов. Обращайте внимание на обновление "критически важных" компонентов ({{ic|linux}}, {{ic|xorg-server}}, и т.д.). Если такие пакеты есть - проверьте наличие новостей на https://www.archlinux.org/ и просмотрите последние сообщения на форуме, возможно кто-то уже столкнулся с проблемами при обновлении.<br />
<br />
Если известно/ожидается, что после обновления могут возникнуть проблемы - pacman выведет соответствующее сообщение. Если вы упустили какую-то информацию, которую вывел pacman, то её можно еще раз просмотреть в ({{ic|/var/log/pacman.log}}). <br />
<br />
Теперь, '''если не было никаких предупреждений от pacman, отсутствуют соответствующие новости на https://www.archlinux.org/ и нет сообщений относительно обновлений на форуме''', имеет смысл обратиться за помощью на форум, [[IRC Channel|IRC-канал]], или [[Downgrading Packages|откатить пакет к работающей версии]].<br />
<br />
Перечитайте последний абзац.}}<br />
<br />
{{FAQ<br />
|question=Я знаю что для пакета ABC доступны обновления, но pacman сообщает мне, что система в актуальном состоянии!<br />
|answer=Зеркала pacman синхронизируются не мгновенно. Иногда может пройти более 24 часов, прежде чем обновления станут доступны вам. <br />
<br />
В качестве решения можно посоветовать сменить зеркало. На [https://www.archlinux.org/mirrors/status/ MirrorStatus] можно посмотреть состояние зеркал.}}<br />
<br />
{{FAQ<br />
|question=При обновлении появляется сообщение об ошибке: "file exists in filesystem" ("файл существует в файловой системе")!<br />
|answer=Дополнительно: ''Взято из https://bbs.archlinux.org/viewtopic.php?id=56373 у Misfit138.''<br />
<br />
error: could not prepare transaction<br />
error: failed to commit transaction (conflicting files)<br />
package: /path/to/file exists in filesystem<br />
Errors occurred, no packages were upgraded.<br />
<br />
Почему это происходит: pacman при обнаружении конфликтующих файлов, по умолчанию, не будет их перезаписывать автоматически. Это не ошибка, так сделано специально. (узнать какому пакету принадлежит файл, если таковой имеется, можно с помощью {{ic|pacman -Qo}}.)<br />
<br />
Вопрос решается тривиально. Сначала проверьте не принадлежит ли файл другому пакету: ({{ic|pacman -Qo /path/to/file}}). Если принадлежит - создайте [[Reporting Bug Guidelines|отчет об ошибке]]. Если проблемный файл не нужен другим пакетам - переименуйте его и перезапустите команду обновления. Если в дальнейшем проблем не возникнет, то старый файл можно удалить.}}<br />
<br />
{{FAQ<br />
|question=При установке пакета я получаю сообщение об ошибке: "not found in sync db"<br />
|answer=Для начала убедитесь, что пакет вообще существует (и вы нигде не опечатались!). Если пакет не существует, то проблема может быть в том, что ваша база пакетов не синхронизирована с репозиториями или репозитории неправильно настроены. Для принудительного обновления списка пакетов попробуйте выполнить {{ic|pacman -Syy}}.}}<br />
<br />
{{FAQ<br />
|question=pacman несколько раз обновляет один и тот же пакет!<br />
|answer=Это может быть связано с дублированием записей в {{ic|/var/lib/pacman/local/}}, к примеру имеется два экземпляра {{ic|linux}}. {{ic|pacman -Qi}} выведет правильную версию, а {{ic|pacman -Qu}} покажет её как устаревшую и, следовательно, требующую обновления.<br />
<br />
Решение: удалить лишнюю запись из {{ic|/var/lib/pacman/local/}}.<br />
<br />
{{Note|pacman версии 3.4, в случае обнаружения повторяющихся записей, должен вывести сообщение об ошибке.}}}}<br />
<br />
{{FAQ<br />
|question=pacman сбоит при обновлении!<br />
|answer=Если при попытке удаления, переустановки или обновления пакетов pacman падает с ошибкой "database write" ("записи в базу данных"):<br />
#Загрузитесь используя Arch live CD<br />
#Смонтируйте корневую файловую систему<br />
#Обновите базу данных pacman с помощью {{ic|pacman -Syy}}<br />
#Переустановите сломанный пакет через {{ic|pacman -r /путь/к/корневому_разделу -S package}}}}<br />
<br />
{{FAQ<br />
|question=Я установил программу используя {{ic|make install}}; теперь эти файлы не принадлежат ни одному из пакетов!<br />
|answer=При обнаружении "конфликтующих файлов", чтобы их не перезаписывать вручную, можно использовать pacman с ключом {{ic|-f}} ({{ic|pacman -Sf}}).<br />
<br />
Почитайте [[pacman Tips#Identify files not owned by any package]], о скрипте, проверяющем файловую систему на наличие ''брошенных'' файлов.}}<br />
<br />
{{FAQ<br />
|question=Мне нужен пакет с определенным файлом. Как узнать какому пакету это файл принадлежит?<br />
|answer=Установите [[pkgtools]], в его состав входит {{ic|pkgfile}}, использующий отдельную базу данных со всеми файлами и связанными с ними пакетами.}}<br />
<br />
{{FAQ<br />
|question=pacman полностью не работоспособен! Как мне его переустановить?<br />
|answer=Если pacman не работает и не получается его восстановить - скачайте вручную пакеты ({{Pkg|openssl}}, {{Pkg|libarchive}} и {{Pkg|pacman}}) и распакуйте их в корневой раздел. Бинарный pacman будет восстановлен вместе с конфигурационным файлом по умолчанию. Затем, для поддержания целостности базы данных пакетов, переустановите скачанные пакеты стандартными средствами pacman. Дополнительную информацию и пример (устарел) скрипта, автоматизирующего этот процесс, можно найти в [https://bbs.archlinux.org/viewtopic.php?id=95007 этом] сообщении форума.}}<br />
<br />
{{FAQ<br />
|question=После обновления системы получаю следующее сообщение об ошибке - "unable to find root device", после перезагрузки система не загружается.<br />
|answer=Вероятно при обновлении ядра "поломалась" initramfs (например при использовании pacman с опцией {{ic|--force}}). Для восстановления работоспособности выполните следующие действия.<br />
<br />
Загрузитесь с Arch live-cd. После загрузки выполните:<br />
<br />
# mkdir /mnt/arch<br />
# mount /dev/sda''X'' /mnt/arch (ваш корневой раздел)<br />
# cd /mnt/arch<br />
# mount -t proc proc proc/<br />
# mount -t sysfs sys sys/<br />
# mount -o bind /dev dev/<br />
# mount /dev/sda''X'' boot/ (ваш раздел /boot)<br />
# chroot .<br />
# pacman -Syu udev mkinitcpio<br />
# mkinitcpio -p linux<br />
<br />
Затем отмонтируйте смонтированные разделы и перезагрузитесь.}}</div>
Vadik
https://wiki.archlinux.org/index.php?title=Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=194358
Pacman (Русский)
2012-04-15T14:50:44Z
<p>Vadik: /* Устранение проблем */</p>
<hr />
<div>[[Category:Управление пакетами (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|pacman}} {{Lowercase title}}<br />
<br />
{{Article summary start|Описание}}<br />
{{Article summary text|pacman - [[Wikipedia:Package management system|пакетный менеджер]] Arch Linux. Менеджеры пакетов используются для установки, обновления и удаления программного обеспечения. В данной статье рассматриваются основные приемы и советы по устранению неполадок.}}<br />
{{Article summary heading|Обзор}}<br />
{{Article summary text|{{Package management overview}}}}<br />
{{Article summary heading|Дополнительно}}<br />
{{Article summary wiki|Downgrading Packages (Русский)}}<br />
{{Article summary wiki|Improve Pacman Performance (Русский)}}<br />
{{Article summary wiki|pacman GUI Frontends (Русский)}}<br />
{{Article summary wiki|pacman Rosetta}}<br />
{{Article summary wiki|pacman Tips}}<br />
{{Article summary wiki|Pacman package signing}}<br />
{{Article summary wiki|FAQ_(Русский)#Управление_пакетами}}<br />
{{Article summary wiki|pacman-key (Русский)}}<br />
{{Article summary wiki|Pacnew and Pacsave Files}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary link|libalpm(3) Manual Page|https://www.archlinux.org/pacman/libalpm.3.html}}<br />
{{Article summary link|pacman(8) Manual Page|https://www.archlinux.org/pacman/pacman.8.html}}<br />
{{Article summary link|pacman.conf(5) Manual Page|https://www.archlinux.org/pacman/pacman.conf.5.html}}<br />
{{Article summary link|repo-add(8) Manual Page|https://www.archlinux.org/pacman/repo-add.8.html}}<br />
{{Article summary end}}<br />
<br />
<br />
[[Wikipedia:Package management system|Менеджер пакетов]] '''[https://archlinux.org/pacman/ pacman]''' &mdash; является одной из основных особенностей Arch Linux. Он сочетает в себе простой формат бинарных пакетов и легкую в использовании систему сборки (смотрите [[Arch Build System]] и [[makepkg]]). '''Pacman''' позволяет пользователям с легкостью управлять и настраивать под себя пакеты, вне зависимости от того, из официального ли они репозитария Arch или собранные самостоятельно.<br />
<br />
'''Pacman''', синхронизируя пакеты с главным сервером, поддерживает систему в актуальном состоянии. Такая клиент-серверная модель, позволяет скачивать/устанавливать пакеты со всеми требуемыми зависимостями всего одной командой.<br />
<br />
'''Pacman''' написан на языке C и использует формат пакетов {{ic|.pkg.tar.xz}}.<br />
<br />
{{Tip|Официальный пакет {{Pkg|pacman}} включает в себя много дополнительных полезных инсрументов, таких как [[makepkg]], pactree, vercomp и другие. Весь перечень можно получить с помощью {{ic|pacman -Ql pacman <nowiki>|</nowiki> grep bin}} }}<br />
<br />
== Конфигурация ==<br />
<br />
Основные настройки pacman находятся в {{ic|/etc/pacman.conf}}. В этом файле, пользователь может указать все нужные ему настройки программы. Подробнее о конфигурировании можно прочесть в [https://www.archlinux.org/pacman/pacman.conf.5.html man pacman.conf].<br />
<br />
=== Основные Параметры ===<br />
<br />
Основные параметры находятся в секции {{ic|[options]}}. Для получения дополнительной информации о параметрах - прочтите страницу man или изучите установленный по умолчанию файл {{ic|pacman.conf}}.<br />
<br />
==== Пропуск обновления пакетов ====<br />
<br />
Для пропуска обновления какого-либо пакета, добавьте его название в строку:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета</nowiki>}}<br />
<br />
В случае, если необходимо в строке {{ic|IgnorePkg}} перечислить несколько пакетов - разделяйте имена пакетов пробелами:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета1 имя_пакета2 имя_пакета3</nowiki>}}<br />
<br />
==== Пропуск обновления группы пакетов ====<br />
<br />
Как и в случае с пакетом, вы также можете запретить обновления группы пакетов, например так:<br />
<br />
{{bc|<nowiki>IgnoreGroup=имя_группы</nowiki>}}<br />
<br />
=== Репозитории ===<br />
<br />
В этом разделе файла {{ic|pacman.conf}} указываются репозитории, которые будут использоваться. Их можно указать прямо здесь или подключить из другого файла.<br />
<br />
Все официальные репозитории перечислены в одном файле - {{ic|/etc/pacman.d/mirrorlist}}, для доступа к ним используется переменная {{ic|$repo}}, таким образом достаточно поддерживать в актуальном состоянии только один список.<br />
<br />
Далее приведен пример использования [[mirrors|зеркал]] [[Official Repositories|официальных репозиториев]], которые перечислены в {{ic|/etc/pacman.d/mirrorlist}}.<br />
<br />
{{bc|<nowiki><br />
<br />
#[testing]<br />
#SigLevel = PackageRequired <br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
#SigLevel = PackageRequired<br />
Include=/etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#[community-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#Если в вашей x86_64 системе необходимо запускать 32-битные программы,<br />
#раскоментируйте нужные multilib репозитории.<br />
<br />
#[multilib-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[multilib]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# Использование собственного репозитория. Обратитесь к справочной странице pacman для<br />
# получения дополнительной информации по созданию собственных репозиториев.<br />
<br />
#[custom]<br />
#SigLevel = Optional TrustAll<br />
#Server = file:///home/custompkgs<br />
</nowiki>}}<br />
<br />
{{Note|Будьте осторожны при использовании репозитория [testing]. Пакеты в нём активно разрабатываются и обновляются, это может сказаться на стабильности и работоспособности других пакетов или системы в целом. Людям, использующим репозиторий [testing], для своевременного получения информации рекомендуется подписаться на [https://mailman.archlinux.org/mailman/listinfo/arch-dev-public список рассылки arch-dev-public].}}<br />
<br />
=== Безопасность пакетов ===<br />
<br />
В Pacman 4 реализован дополнительный уровень безопасности устанавливаемых пакетов - подписи пакетов. Для включения проверки подписей перейдите [[pacman-key|сюда]].<br />
<br />
== Использование ==<br />
<br />
Чтобы узнать обо всех возможностях pacman - изучите [https://archlinux.org/pacman/pacman.8.html man pacman]. Примеры ниже - это только небольшая подборка доступных операций.<br />
<br />
===Установка Пакетов===<br />
<br />
====Установка определенных пакетов====<br />
Для установки одного пакета или группы пакетов (включая зависимости), используйте следующую команду:<br />
<br />
# pacman -S имя_пакета1 имя_пакета2 ...<br />
<br />
Если пакет имеет несколько версий в разных репозиториях (например в [extra] и [testing]). Можно указать, откуда именно следует установить пакет:<br />
<br />
# pacman -S extra/имя_пакета<br />
# pacman -S testing/имя_пакета<br />
<br />
{{Note|По умолчанию pacman всегда устанавливает последнюю доступную версию.}}<br />
<br />
====Установка группы пакетов====<br />
Некоторые пакеты принадлежат к группе пакетов, которые могут быть установлены одновременно. Например, при выполнении команды:<br />
<br />
# pacman -S gnome<br />
будут установлены все пакеты входящие в группу {{ic|gnome}}. Чтобы увидеть список пакетов принадлежащих к группе gnome, выполните:<br />
<br />
# pacman -Sg gnome<br />
<br />
Перечень доступных групп пакетов можно изучить посетив https://www.archlinux.org/groups/.<br />
<br />
{{Note|Если не будет использована опция {{ic|--needed}}, то при установке группы будут переустановлены все ранее установленные в систему и принадлежащие этой группе пакеты (даже если установленные в системе пакеты будут иметь последнюю доступную версию).}}<br />
<br />
{{Warning|1=При установке не достаточно одного обновления списка пакетов (например {{ic|pacman -Sy имя_пакета}}) - могут возникнуть проблемы с зависимостями, смотрите разделы [https://bbs.archlinux.org/viewtopic.php?id=89328] и [[#Частичные обновления официально не поддерживаются|Частичные обновления не поддерживаются]]. В первую очередь, перед установкой новых пакетов, выполняйте полное [[#Обновление Системы|обновление системы]].}}<br />
<br />
=== Удаление Пакетов ===<br />
<br />
Для удаления пакета, без удаления установленных зависимостей:<br />
<br />
# pacman -R имя_пакета<br />
<br />
Для удаления пакета со всеми зависимостями, не используемыми другими установленными пакетами:<br />
<br />
# pacman -Rs имя_пакета<br />
<br />
Для удаления пакета, его зависимостей, и всех пакетов зависящих от целевого пакета:<br />
<br />
{{Warning|Эта операция рекурсивна и должна использоваться с осторожностью, так как появляется риск удалить много потенциально необходимых пакетов.}}<br />
<br />
# pacman -Rsc имя_пакета<br />
<br />
По умолчанию pacman создает резервные копии конфигурационных файлов удаляемых приложений с помощью добавления к ним расширения: {{ic|.pacsave}}. Если вы хотите удалить и эти файлы - используйте ключ {{ic|-n}}:<br />
<br />
# pacman -Rn имя_пакета<br />
<br />
{{Note|pacman не удаляет конфигурационных файлов, созданных самими приложениями (например "dot-файлы" в вашей домашней папке).}}<br />
<br />
===Обновление Системы===<br />
<br />
pacman может обновить все пакеты системы одной командой. Количество пакетов зависит от того, насколько свежие пакеты стоят в вашей системе. Лучший вариант - синхронизация базы данных репозиториев '''И''' обновление вашей системы одной командой:<br />
<br />
# pacman -Syu<br />
<br />
{{Warning|В связи с тем, что Arch является постоянно-обновляемым дистрибутивом, пользователям следует помнить, что после или в процессе обновления могут возникнуть непредвиденные трудности. Поэтому обновляться следует с осторожностью. Это означает, что если, например, ожидаются большие изменения или нововведения в обновляемых пакетах, то обновлять систему лучше тогда, когда у пользователя будет достаточно свободного времени и он будет готов к решению возможных проблем.}}<br />
<br />
pacman является мощным инструментом по управлению пакетами, но он не сможет обработать все возможные ситуации. Если вас это смущает - прочтите [[The Arch Way|Путь Arch Linux]]. Пользователь должен быть внимателен и сам заниматься обеспечением работоспособности своей системы. '''При выполнении обновления системы, крайне важно, читать и осмысливать всю информацию которую выводит pacman.''' Если вы изменяли конфигурационный файл, то при обновлении, во избежание перезаписи, будет создан новый конфигурационный файл {{ic|.pacnew}}. pacman предложит объединить его с вашим конфигурационным файлом. Выполнять объединение файлов придется вручную и, лучше всего, сразу после обновления. Для получения дополнительной информации обратитесь к руководству [[Pacnew and Pacsave Files]].<br />
<br />
{{Tip|Не забывайте, что вывод pacman заносится в {{ic|/var/log/pacman.log}}.}}<br />
<br />
Перед обновлением желательно посетить [https://www.archlinux.org/ главную страницу Arch Linux], [https://www.archlinux.org.ru/ главную страницу русскоязычного сообщества Arch Linux] и проверить там последние новости (или подписаться на канал RSS): для обновлений требующих дополнительного вмешательства (если выполнения указанных pacman-ом действий не достаточно) будут добавлены соответствующие новости.<br />
<br />
Если решить проблемы согласно инструкциям не удаётся - поищите подобные сообщения на форуме. Вполне возможно, что другие пользователи столкнувшиеся с подобными проблемами уже предоставили варианты по её решению.<br />
<br />
=== Запросы к Базе Данных Пакетов ===<br />
<br />
pacman, с помощью флага {{ic|-Q}}, может искать пакеты в локальной базе данных; см.:<br />
<br />
$ pacman -Q --help<br />
<br />
и, с помощью флага {{ic|-S}}, в базе данных (репозитариях); см.:<br />
<br />
$ pacman -S --help<br />
<br />
pacman умеет искать пакеты в базе данных, как по названиям, так и по описаниям:<br />
<br />
$ pacman -Ss условие1 условие2 ...<br />
<br />
Поиск пакета по имени в базе данных (вывод без дополнительной информации):<br />
<br />
$ pacman -Sqs условие1 условие2 ...<br />
<br />
Для поиска среди установленных пакетов:<br />
<br />
$ pacman -Qs условие1 условие2 ...<br />
<br />
Для отображения обширной информации о данном пакете:<br />
<br />
$ pacman -Si имя_пакета<br />
<br />
для установленных пакетов:<br />
<br />
$ pacman -Qi имя_пакета<br />
<br />
Использование сдвоенного флага {{ic|-i}} позволит просмотреть список резервных копий файлов и список измененных файлов:<br />
<br />
$ pacman -Qii имя_пакета<br />
<br />
Для получения списка файлов установленного пакета:<br />
<br />
$ pacman -Ql имя_пакета<br />
<br />
Для получения списка файлов неустановленного пакета можно использовать утилиту {{ic|pkgfile}}, из состава пакета [[pkgtools]], или {{ic|nosr}}, входящую в пакет {{aur|nosr-git}}, который расположен в [[AUR]].<br />
<br />
Чтобы узнать какому пакету принадлежит нужный файл:<br />
<br />
$ pacman -Qo /путь/к/файлу/имя_файла<br />
<br />
Для получения списка пакетов, которые больше не требуются как зависимости (пакеты, которые могут быть безопасно удалены или сироты):<br />
<br />
$ pacman -Qdt<br />
<br />
Для отображения зависимостей в виде дерева:<br />
<br />
$ pactree имя_пакета<br />
<br />
Для получения списка пакетов, которые зависят от вашего пакета - можно воспользоваться утилитой {{ic|whoneeds}} из состава пакета [[pkgtools]]:<br />
<br />
$ whoneeds имя_пакета<br />
<br />
=== Получение Списка Установленных Пакетов для Быстрого Восстановления Системы ===<br />
<br />
Хорошей практикой явлется сохранение списка всех установленых пакетов. Если ваша система "упала" и её сложно восстановить, pacman может легко переустановить эти пакеты.<br />
<br />
Сначала, сохраните в список пакетов (доступных в репозитории):<br />
<br />
pacman -Qqe | grep -v "$(pacman -Qmq)" > pkglist<br />
<br />
# безопасная, но и более сложная альтернатива (во избежание удаления частичных совпадений)<br />
comm -13 <(pacman -Qmq | sort) <(pacman -Qqe | sort) > pkglist<br />
<br />
Сохраните этот файл на флешке или на другом носителе.<br />
<br />
Скопируйте файл pkglist в новую систему, перейдите в эту папку.<br />
<br />
Для восстановления используйте команду:<br />
pacman -S $(cat pkglist)<br />
<br />
=== Получение Списка Файлов не Принадлежащих Любому Пакету ===<br />
<br />
Если вы всегда хотите держать свою систему в чистоте и уважаете [[Путь Arch]], вы должны иногда проверять файлы отсутствующие в базе данных pacman. Эти файлы, зачастую установлены сторонними приложениями с использованием '''./configure; make; make install''' и т.п. Вы можете найти все эти установленные файлы (или симлинки) используя этот простой скрипт:<br />
<br />
#!/bin/bash<br />
time /usr/bin/pacman -Ql | cut -d ' ' -f 2- | sort -u > db.txt<br />
time find /arch /bin /boot /etc /lib /opt /sbin /usr 2>/dev/null | while read i; do<br />
if [ ! -d "$i" ]; then<br />
echo "$i"<br />
fi;<br />
done | sort -u > fs.txt<br />
time comm -23 fs.txt db.txt > non-db.txt<br />
<br />
#для проверки:<br />
#cat non-db.txt | while read i; do pacman -Qo "$i" 2>&1; done | tee test.txt<br />
<br />
заметьте - все файлы указанные в non-db.txt НЕ БУДУТ удалены без подтверждения. Здесь могут находиться конфигурационные файлы, журналы и др. Используйте этот список только если знаете, что вы делаете.<br />
<br />
=== Дополнительные команды ===<br />
<br />
Обновление системы и установка списка пакетов (за одну операцию):<br />
<br />
# pacman -Syu имя_пакета1 имя_пакета2 ...<br />
<br />
Скачать пакет, но не устанавливать его:<br />
<br />
# pacman -Sw имя_пакета<br />
<br />
Установить локальный пакет (не из репозитория):<br />
<br />
# pacman -U /путь/к/пакету/имя_пакета-version.pkg.tar.xz<br />
<br />
Установить 'не локальный' пакет (не из репозитория):<br />
<br />
# pacman -U <nowiki>http://www.example.com/repo/example.pkg.tar.xz</nowiki><br />
<br />
Удалить из кэша ({{ic|/var/cache/pacman/pkg}}) неустановленные пакеты:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Поэтому, в случае возникновения проблем после обновлениий - появятся дополнительные трудности, связанные с откатом версий пакетов.}}<br />
<br />
# pacman -Sc<br />
<br />
Полная очистка кэша пакетов:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Выполняйте это только в том случае, если у вас всё нормально работает и вы уверены, что вам не понадобится [[Downgrade_packages| откатывать]] какой-либо пакет.}}<br />
<br />
# pacman -Scc<br />
<br />
В качестве альтернативы ключам {{ic|-Sc}} и {{ic|-Scc}} - можно использовать пакет {{AUR|Cacheclean}}, доступный в [[AUR]]. Это скрипт на python, который позволяет выборочно очищать кэш pacman'а от старых версий пакетов.<br />
<br />
===Частичные обновления официально не поддерживаются===<br />
Arch Linux постоянно обновляемый дистрибутив и это значит, что в репозиториях всегда находятся новые версии [[Wikipedia:Library (computing)|библиотек]]. Разработчики и доверенные пользователи собирают пакеты для репозиториев с использованием этих библиотек. Для пакетов установленных локально (например пакеты из [[Arch User Repository|AUR]]), нужно самостоятельно решать вопрос с зависимостями согласно данным [[Wikipedia:soname|soname]].<br />
<br />
Именно поэтому частичное обновление '''не поддерживается'''. Не используйте {{ic|pacman -Sy package}} или другие эквиваленты {{ic|pacman -Sy}} и {{ic|pacman -S package}}. Всегда перед установкой пакетов синхронизируйте репозитории и обновляйте систему полностью. По той же самой причине нужно быть осторожными при использовании {{ic|IgnorePkg}} и {{ic|IgnoreGroup}}.<br />
<br />
Если после частичного обновления оказалось, что бинарные файлы не могут найти нужных версий библиотек и проблему '''не возможно "решить" созданием символической ссылки''' (библиотеки не имеют '''обратной совместимости''') - выполните {{ic|pacman -Syu}}, как правило этого будет достаточно для устранения проблемы.<br />
<br />
== Устранение проблем ==<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init, но отсутствуют ssh / X или генераторы случайных чисел. Как мне получить энтропию?<br />
|answer=Для решения проблемы нужно перемещать указатель мыши, нажимать на клавиатуре случайные кнопки или запустить дисковую активность, например с помощью {{ic|updatedb}}. Будьте терпиливы, процесс может затянуться на длительное время. При этом переход в другую консоль, по Alt+F2-6, временно работать не будет.}}<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init через ssh. Как мне получить энтропию?<br />
|answer=На целевой машине соберите и установите пакет {{AUR|rng-tools}} из [[AUR]]. Подключитесь через ssh и выполните следующие команды:<br />
{{bc|# sed -i 's/0/10/' /etc/conf.d/rngd<br />
# rngd -f -r /dev/urandom &<br />
# pacman-key --init}}<br />
<br />
После успешного выполнения pacman-key просто остановите rngd и удалите пакет.<br />
<br />
{{bc|# killall rngd<br />
# pacman -Rns rng-tools}}<br />
}}<br />
<br />
{{FAQ<br />
|question=Pacman не находит PGP ключи для импорта и не обновляет пакеты. Как можно это исправить?<br />
|answer=На самом деле проблема не в pacman. Проблема в сервере ключей, используемом по умолчанию. Измените сервер ключей на более надежный таким способом:<br />
<br />
# sed -i '/keyserver/ s,keys.gnupg.net,pgp.mit.edu,' /etc/pacman.d/gnupg/gpg.conf<br />
Pacman4 теперь готов к использованию.}}<br />
<br />
{{FAQ<br />
|question=Обновление пакета XYZ сломало мою систему!<br />
|answer=Arch Linux - передовой, постоянно обновляемый дистрибутив. Обновления для пакетов становятся доступными тогда, когда их посчитают достаточно стабильными для повседневного использования. Тем не менее, обновления иногда требуют вмешательства пользователя: может потребоваться обновление конфигурационных файлов, могут измениться дополнительные зависимости, и т.д.<br />
<br />
Запомните основное правило - не обновляйте систему "вслепую". Всегда внимательно изучайте список обновляемых пакетов. Обращайте внимание на обновление "критически важных" компонентов ({{ic|linux}}, {{ic|xorg-server}}, и т.д.). Если такие пакеты есть - проверьте наличие новостей на https://www.archlinux.org/ и просмотрите последние сообщения на форуме, возможно кто-то уже столкнулся с проблемами при обновлении.<br />
<br />
Если известно/ожидается, что после обновления могут возникнуть проблемы - pacman выведет соответствующее сообщение. Если вы упустили какую-то информацию, которую вывел pacman, то её можно еще раз просмотреть в ({{ic|/var/log/pacman.log}}). <br />
<br />
Теперь, '''если не было никаких предупреждений от pacman, отсутствуют соответствующие новости на https://www.archlinux.org/ и нет сообщений относительно обновлений на форуме''', имеет смысл обратиться за помощью на форум, [[IRC Channel|IRC-канал]], или [[Downgrading Packages|откатить пакет к работающей версии]].<br />
<br />
Перечитайте последний абзац.}}<br />
<br />
{{FAQ<br />
|question=Я знаю что для пакета ABC доступны обновления, но pacman сообщает мне, что система в актуальном состоянии!<br />
|answer=Зеркала pacman синхронизируются не мгновенно. Иногда может пройти более 24 часов, прежде чем обновления станут доступны вам. <br />
<br />
В качестве решения можно посоветовать сменить зеркало. На [https://www.archlinux.org/mirrors/status/ MirrorStatus] можно посмотреть состояние зеркал.}}<br />
<br />
{{FAQ<br />
|question=При обновлении появляется сообщение об ошибке: "file exists in filesystem" ("файл существует в файловой системе")!<br />
|answer=Дополнительно: ''Взято из https://bbs.archlinux.org/viewtopic.php?id=56373 у Misfit138.''<br />
<br />
error: could not prepare transaction<br />
error: failed to commit transaction (conflicting files)<br />
package: /path/to/file exists in filesystem<br />
Errors occurred, no packages were upgraded.<br />
<br />
Почему это происходит: pacman при обнаружении конфликтующих файлов, по умолчанию, не будет их перезаписывать автоматически. Это не ошибка, так сделано специально. (узнать какому пакету принадлежит файл, если таковой имеется, можно с помощью {{ic|pacman -Qo}}.)<br />
<br />
Вопрос решается тривиально. Сначала проверьте не принадлежит ли файл другому пакету: ({{ic|pacman -Qo /path/to/file}}). Если принадлежит - создайте [[Reporting Bug Guidelines|отчет об ошибке]]. Если проблемный файл не нужен другим пакетам - переименуйте его и перезапустите команду обновления. Если в дальнейшем проблем не возникнет, то старый файл можно удалить.}}<br />
<br />
{{FAQ<br />
|question=При установке пакета я получаю сообщение об ошибке: "not found in sync db"<br />
|answer=Для начала убедитесь, что пакет вообще существует (и вы нигде не опечатались!). Если пакет не существует, то проблема может быть в том, что ваша база пакетов не синхронизирована с репозиториями или репозитории неправильно настроены. Для принудительного обновления списка пакетов попробуйте выполнить {{ic|pacman -Syy}}.}}<br />
<br />
{{FAQ<br />
|question=pacman несколько раз обновляет один и тот же пакет!<br />
|answer=Это может быть связано с дублированием записей в {{ic|/var/lib/pacman/local/}}, к примеру имеется два экземпляра {{ic|linux}}. {{ic|pacman -Qi}} выведет правильную версию, а {{ic|pacman -Qu}} покажет её как устаревшую и, следовательно, требующую обновления.<br />
<br />
Решение: удалить лишнюю запись из {{ic|/var/lib/pacman/local/}}.<br />
<br />
{{Note|pacman версии 3.4, в случае обнаружения повторяющихся записей, должен вывести сообщение об ошибке.}}}}<br />
<br />
{{FAQ<br />
|question=pacman сбоит при обновлении!<br />
|answer=Если при попытке удаления, переустановки или обновления пакетов pacman падает с ошибкой "database write" ("записи в базу данных"):<br />
#Загрузитесь используя Arch live CD<br />
#Смонтируйте корневую файловую систему<br />
#Обновите базу данных pacman с помощью {{ic|pacman -Syy}}<br />
#Переустановите сломанный пакет через {{ic|pacman -r /путь/к/корневому_разделу -S package}}}}<br />
<br />
{{FAQ<br />
|question=Я установил программу используя {{ic|make install}}; теперь эти файлы не принадлежат ни одному из пакетов!<br />
|answer=При обнаружении "конфликтующих файлов", чтобы их не перезаписывать вручную, можно использовать pacman с ключом {{ic|-f}} ({{ic|pacman -Sf}}).<br />
<br />
Почитайте [[pacman Tips#Identify files not owned by any package]], о скрипте, проверяющем файловую систему на наличие ''брошенных'' файлов.}}<br />
<br />
{{FAQ<br />
|question=Мне нужен пакет с определенным файлом. Как узнать какому пакету это файл принадлежит?<br />
|answer=Установите [[pkgtools]], в его состав входит {{ic|pkgfile}}, использующий отдельную базу данных со всеми файлами и связанными с ними пакетами.}}<br />
<br />
{{FAQ<br />
|question=pacman полностью не работоспособен! Как мне его переустановить?<br />
|answer=Если pacman не работает и не получается его восстановить - скачайте вручную пакеты ({{Pkg|openssl}}, {{Pkg|libarchive}} и {{Pkg|pacman}}) и распакуйте их в корневой раздел. Бинарный pacman будет восстановлен вместе с конфигурационным файлом по умолчанию. Затем, для поддержания целостности базы данных пакетов, переустановите скачанные пакеты стандартными средствами pacman. Дополнительную информацию и пример (устарел) скрипта, автоматизирующего этот процесс, можно найти в [https://bbs.archlinux.org/viewtopic.php?id=95007 этом] сообщении форума.}}<br />
<br />
{{FAQ<br />
|question=После обновления системы получаю следующее сообщение об ошибке - "unable to find root device", после перезагрузки система не загружается.<br />
|answer=Вероятно при обновлении ядра "поломалась" initramfs (например при использовании pacman с опцией {{ic|--force}}). Для восстановления работоспособности выполните следующие действия.<br />
<br />
Загрузитесь с Arch live-cd. После загрузки выполните:<br />
<br />
# mkdir /mnt/arch<br />
# mount /dev/sdx /mnt/arch (ваш корневой раздел)<br />
# cd /mnt/arch<br />
# mount -t proc proc proc/<br />
# mount -t sysfs sys sys/<br />
# mount -o bind /dev dev/<br />
# mount /dev/sdx boot/ (ваш раздел /boot)<br />
# chroot . /bin/bash<br />
# pacman -Syu<br />
# pacman -S udev<br />
# pacman -S mkinitcpio<br />
# mkinitcpio -p linux<br />
<br />
<br />
Затем отмонтируйте смонтированные разделы и перезагрузитесь.}}</div>
Vadik
https://wiki.archlinux.org/index.php?title=Downgrading_packages_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=194195
Downgrading packages (Русский)
2012-04-14T18:24:00Z
<p>Vadik: /* ARM */</p>
<hr />
<div>[[Category:Package management (Русский)]]<br />
{{i18n|Downgrading Packages}}<br />
<br />
{{Article summary start|Описание}}<br />
{{Article summary text|Возврат к более старым версиям пакетов: как и зачем.}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary wiki|Arch Build System}}<br />
{{Article summary wiki|pacman}}<br />
{{Article summary text|[[LVM]] &ndash; how to enable snapshots and how to revert to their state}}<br />
{{Article summary end}}<br />
<br />
В этом руководстве описывается процесс отката установленного пакета к его предыдущей версии. Обычно откат версии пакета не рекомендуется и применяется в том случае, когда в текущем пакете обнаружена ошибка.<br />
<br />
Прежде чем откатить пакет, подумайте, нужно ли это делать. Если необходимость отката вызвана ошибками, пожалуйста, помогите сообществу Arch и разработчикам этого ПО, потратьте несколько минут на составление отчета об ошибке и отправке его в трекер ошибок Arch или на сайт самого проекта. В связи с безрилизной моделью развития Arch, и при продолжительном его использовании, Вы, возможно, периодически будете сталкиваться с ошибками в новых пакетах.<br />
Наше сообщество и разработчики ПО будут признательны Вам за приложенные усилия. Дополнительная информация может не только спасти нас от часов тестирования и отладки, но также позволит повысить стабильность программного обеспечения.<br />
<br />
== Причины ==<br />
Процесс отката (понижения) версии пакета заключается в удалении текущей версии пакета и установке вместо нее предыдущей. Откат может выполняться как до предыдущей версии, так и до любой доступной.<br />
<br />
Причины понижения версии (среди прочих) могут быть следующие: ошибка в текущей версии, отсутствие требуемой функциональности, или установка пакета с целью эксперимента. В любом из этих случаев, пользователю, возможно будет менее проблематично вернуться к старой версии пакета, чем ожидать нового релиза..<br />
<br />
Откат версии одного пакета может повлечь за собой необходимость понижения версий других пакетов. При наличии большого количества экспериментальных и тестовых пакетов, а так же отредактированных конфигурационных файлов, полная переустановка системы может оказаться предпочтительнее откату версий.<br />
<br />
== Подробности ==<br />
Тем не менее, пользователю нужно учесть следующие моменты:<br />
<br />
*Во-первых, понадобится решить вопрос с зависимостями каждой из программ. Необходимые библиотеки могут изменяться с каждой новой версией, функционально связанные с ними файлы, также могут полностью отличаться от предыдущих. Поэтому, возможно, потребуется их замена на более ранние версии.<br />
<br />
*Во-вторых, в случае удаления необходимых версий пакетов из системы, необходимо убедиться, в их доступности из другого источника. Это связано с безрелизной моделью развития системы Arch Linux, репозитории автоматически обновляются без сохранения старых версий пакетов. Подробнее об этой проблеме ниже.<br />
<br />
*В-третьих, следует соблюдать осторожность при внесении изменений в конфигурационные файлы и сценарии. На данный момент, во избежание возможных проблем, лучше использовать pacman, хотя и он имеет некоторые ограничения.<br />
<br />
Сейчас находится в разработке концепция Машины Отката Arch (Arch Rollback Machine) и при готовности она будет включена в стандартные средства pacman. Как только это произойдет, процесс станет автоматизированным.<br />
<br />
А пока, пожалуйста, следуйте инструкциям идущим далее.<br />
<br />
== Инструкция по откату пакетов ==<br />
* В: Я только что выполнил {{Ic|pacman -Syu}} и пакет ''XYZ'' с версии М был обновлен до версии N. Обновление пакета вызывает проблемы на моем компьютере, как я могу откатить версию N к старой версии M?<br />
* О: Версию пакета можно понизить элементарно, для этого найдите старую версию нужного пакета в директории {{ic|/var/cache/pacman/pkg}} (если ранее не запускали {{Ic|pacman -Scc}}, то нужный пакет будет там). Если пакет есть, то его можно установить, выполнив {{Ic|pacman -U /var/cache/pacman/pkg/pkgname-olderpkgver.pkg.tar.gz}}. Если нужный пакет был скачан вручную, то понадобится указать полный путь к пакету.<br />
<br />
Эта команда удалит существующий пакет, проверив при этом все изменяющиеся зависимости, и установит более старую версию пакета.<br />
<br />
{{Note| При изменении основных компонентов операционной системы, может возникнуть с необходимость замены десятков пакетов на более старые версии.<br />
Или же пакеты могут у вас просто отсутствовать, и тогда их придется разыскивать самостоятельно, следя при этом, чтоб при обновлении повторно не были установлены нежелательные версии пакетов.}}<br />
<br />
В [[AUR]] доступен пакет под названием {{AUR|downgrade}}. Это простой скрипт на Bash который ищет в кэше старые версии пакета. Если в кэше пакет не будет найден, то он может искать в [[#ARM|A.R.M.]]. Затем понадобиться выбрать пакет для установки. Здесь описаны основные возможности пакета по автоматизации процесса. Для получения дополнительной информации выполните: {{Ic|downgrade --help}}.<br />
<br />
Также, для отката пакетов Вы можете воспользоваться программой {{AUR|downgrader}} - это мощная программа написанная на C++, работает с логами pacman, кэшем пакетов и ARM. Она поможет откатить пакет к предыдущей версии по данным из логов, сама найдет, скачает и установит нужный пакет. Также она умеет работать с несколькими пакетами одновременно, например если система стала нестабильна после большого обновления. Для получения дополнительной информации обратитесь к [http://archlinux.org.ru/forum/viewtopic.php?f=29&t=6456 этой] теме форума.<br />
<br />
== Поиск старых версий ==<br />
Существует три способа поиска.<br />
<br />
==== Зеркала Out-Of-Sync ====<br />
При отсутствии старых версий пакетов, нужно проверить, не синхронизировалось ли одно из зеркал, и получить пакет оттуда.<br />
Нажмите здесь, чтобы посмотреть [http://users.archlinux.de/~gerbra/mirrorcheck.html статус зеркал].<br />
<br />
Также нужные пакеты можно поискать на этом зеркале:<br />
* http://schlunix.org/?page_id=11<br />
<br />
====ARM====<br />
[http://arm.konnichi.com/ Arch Rollback Machine] (ARM ) содержит архив снимков (snapshots) всех репозиториев начиная с 1 ноября 2009.<br />
Содержимое сайта постоянно изменяется, поэтому если вы заинтересованы в ARM, то лучше будет, регулярно просмотривать объявления и обсуждения на форуме, для того, чтобы быть в курсе текущего состояния проекта. Последние обсуждения на форуме можно почитать [https://bbs.archlinux.org/viewtopic.php?id=53665 здесь].<br />
<br />
URL-адреса задуманы таким образом, чтоб при помощи скриптов wget+pacman было максимально просто "откатить" систему до определенной даты.<br />
Автоматизация процесса пока не объяснена.<br />
Для упрощения ручного поиска отдельного пакета, можно использовать страницу поиска, расположенную в [http://arm.konnichi.com/search/ ARM Search].<br />
<br />
==== Re-компиляция пакетов ====<br />
В худшем случае, если пакет не найден в другом месте, вам придется самостоятельно собирать себе старую версию. Для этого нужен файл [[PKGBUILD]], можно для изменения взять существующий PKGBUILD из [[ABS]], или найти нужный пакет на http://www.archlinux.org/packages/. После того как вы его нашли, нажмите кнопку "Открыть логи SVN" и выберите "Просмотр журнала". Найдите нужный вариант, и нажмите на ссылку. Далее просто скачайте файлы, расположенные в этом каталоге, и создайте пакет с помощью с makepkg.<br />
<br />
== Дополнительная информация ==<br />
Изменение основных настроек менеджера пакетов [[pacman]] осуществляется с помощью редактирования файла {{ic|pacman.conf}}, для редактироваия файла понадобятся права root. Для правки файла следует набрать в командной строке <br />
nano /etc/pacman.conf<br />
(Конечно можно редактировать файл и с помощью графических утилит, например Shaman, но чаще намного быстрее и безопаснее выполнять такие действия из командной строки.)<br />
<br />
Достаточно просто изменить адреса репозиториев, в которых '''pacman''' осуществляет поиск программ. Для скрытия от '''pacman''' и системы управления пакетами определенного репозитория нужно в начало строки репозитория, добавить знак фунта (#). <br />
<br />
Например, для добавления репозитория с ARM, нужно закомментировать старую строку, и добавить новую с соответствующими путями, формат:<br />
[core]<br />
#<nowiki>Server=http://mirrors.gigenet.com/archlinux/core/os/i686</nowiki><br />
<nowiki>Server=http://arm.konnichi.com/2009/11/01/core/os/i686</nowiki><br />
<br />
В этом примере, дата в имени раздела указывает на то, что в нем расположены все пакеты, которые были доступны на 1 ноября 2009 года. Обратите внимание, что все репозитории являются снимками (snapshots) официального репозитория. Далее нужно разместить зеркало ARM в самом верху {{ic|/etc/pacman.d/mirrorlist}}. Так для синхронизации всех официальных репозиториев ARM, перечисленных в {{ic|/etc/pacman.conf}}, нужно выбрать на зеркале http://arm.konnichi.com/2009/11/01/, например, $repo/os/i686, и выполнить:<br />
pacman -Syy # получить список пакетов<br />
pacman -Suu # откатить все пакеты до версии в репозитории<br />
<br />
Но все это не гарантирует полностью автоматического отката, так как иногда имеющаяся версия пакета не совпадает с требующейся. В таком случае можно поискать нужную версию пакета на глобальном зеркале, например http://arm.konnichi.com/core/os/i686, обратите внимание на отсутствие даты в пути.<br />
<br />
Для получения дополнительной информации - изучите [[pacman]].<br />
<br />
{{FAQ<br />
|question=Я не могу откатить пакет, из-за зависимостей.<br />
|answer=При обновлении или удалении с помощью {{ic|pacman -Ud pkgpkgname-olderpkgver.pkg.tar.gz}}, можно игнорировать зависимости, но учитывайте, что в дальнейшем это может привести к проблемам в системе.}}<br />
<br />
{{FAQ<br />
|question=Как я могу запретить pacman обновлять некоторые пакеты?<br />
|answer=Добавить название пакета в строку "IgnorePkg" файла {{ic|/etc/pacman.conf}}.<br />
{{Ic|<nowiki>IgnorePkg = package1 package2 ...</nowiki>}} в {{ic|pacman.conf}} запретит pacman, при выполнении {{ic|--sysupgrade}}, устанавливать обновления для выбранных пакетов.}}<br />
<br />
{{FAQ<br />
|question=Я хочу вернуться ко вчерашнему состоянию своей системы.<br />
|answer=Легко осуществимо при использовании механизма периодических снимков (snapshots) [[LVM]].}}</div>
Vadik
https://wiki.archlinux.org/index.php?title=Downgrading_packages_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=194194
Downgrading packages (Русский)
2012-04-14T18:22:54Z
<p>Vadik: /* Инструкция по откату пакетов */</p>
<hr />
<div>[[Category:Package management (Русский)]]<br />
{{i18n|Downgrading Packages}}<br />
<br />
{{Article summary start|Описание}}<br />
{{Article summary text|Возврат к более старым версиям пакетов: как и зачем.}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary wiki|Arch Build System}}<br />
{{Article summary wiki|pacman}}<br />
{{Article summary text|[[LVM]] &ndash; how to enable snapshots and how to revert to their state}}<br />
{{Article summary end}}<br />
<br />
В этом руководстве описывается процесс отката установленного пакета к его предыдущей версии. Обычно откат версии пакета не рекомендуется и применяется в том случае, когда в текущем пакете обнаружена ошибка.<br />
<br />
Прежде чем откатить пакет, подумайте, нужно ли это делать. Если необходимость отката вызвана ошибками, пожалуйста, помогите сообществу Arch и разработчикам этого ПО, потратьте несколько минут на составление отчета об ошибке и отправке его в трекер ошибок Arch или на сайт самого проекта. В связи с безрилизной моделью развития Arch, и при продолжительном его использовании, Вы, возможно, периодически будете сталкиваться с ошибками в новых пакетах.<br />
Наше сообщество и разработчики ПО будут признательны Вам за приложенные усилия. Дополнительная информация может не только спасти нас от часов тестирования и отладки, но также позволит повысить стабильность программного обеспечения.<br />
<br />
== Причины ==<br />
Процесс отката (понижения) версии пакета заключается в удалении текущей версии пакета и установке вместо нее предыдущей. Откат может выполняться как до предыдущей версии, так и до любой доступной.<br />
<br />
Причины понижения версии (среди прочих) могут быть следующие: ошибка в текущей версии, отсутствие требуемой функциональности, или установка пакета с целью эксперимента. В любом из этих случаев, пользователю, возможно будет менее проблематично вернуться к старой версии пакета, чем ожидать нового релиза..<br />
<br />
Откат версии одного пакета может повлечь за собой необходимость понижения версий других пакетов. При наличии большого количества экспериментальных и тестовых пакетов, а так же отредактированных конфигурационных файлов, полная переустановка системы может оказаться предпочтительнее откату версий.<br />
<br />
== Подробности ==<br />
Тем не менее, пользователю нужно учесть следующие моменты:<br />
<br />
*Во-первых, понадобится решить вопрос с зависимостями каждой из программ. Необходимые библиотеки могут изменяться с каждой новой версией, функционально связанные с ними файлы, также могут полностью отличаться от предыдущих. Поэтому, возможно, потребуется их замена на более ранние версии.<br />
<br />
*Во-вторых, в случае удаления необходимых версий пакетов из системы, необходимо убедиться, в их доступности из другого источника. Это связано с безрелизной моделью развития системы Arch Linux, репозитории автоматически обновляются без сохранения старых версий пакетов. Подробнее об этой проблеме ниже.<br />
<br />
*В-третьих, следует соблюдать осторожность при внесении изменений в конфигурационные файлы и сценарии. На данный момент, во избежание возможных проблем, лучше использовать pacman, хотя и он имеет некоторые ограничения.<br />
<br />
Сейчас находится в разработке концепция Машины Отката Arch (Arch Rollback Machine) и при готовности она будет включена в стандартные средства pacman. Как только это произойдет, процесс станет автоматизированным.<br />
<br />
А пока, пожалуйста, следуйте инструкциям идущим далее.<br />
<br />
== Инструкция по откату пакетов ==<br />
* В: Я только что выполнил {{Ic|pacman -Syu}} и пакет ''XYZ'' с версии М был обновлен до версии N. Обновление пакета вызывает проблемы на моем компьютере, как я могу откатить версию N к старой версии M?<br />
* О: Версию пакета можно понизить элементарно, для этого найдите старую версию нужного пакета в директории {{ic|/var/cache/pacman/pkg}} (если ранее не запускали {{Ic|pacman -Scc}}, то нужный пакет будет там). Если пакет есть, то его можно установить, выполнив {{Ic|pacman -U /var/cache/pacman/pkg/pkgname-olderpkgver.pkg.tar.gz}}. Если нужный пакет был скачан вручную, то понадобится указать полный путь к пакету.<br />
<br />
Эта команда удалит существующий пакет, проверив при этом все изменяющиеся зависимости, и установит более старую версию пакета.<br />
<br />
{{Note| При изменении основных компонентов операционной системы, может возникнуть с необходимость замены десятков пакетов на более старые версии.<br />
Или же пакеты могут у вас просто отсутствовать, и тогда их придется разыскивать самостоятельно, следя при этом, чтоб при обновлении повторно не были установлены нежелательные версии пакетов.}}<br />
<br />
В [[AUR]] доступен пакет под названием {{AUR|downgrade}}. Это простой скрипт на Bash который ищет в кэше старые версии пакета. Если в кэше пакет не будет найден, то он может искать в [[#ARM|A.R.M.]]. Затем понадобиться выбрать пакет для установки. Здесь описаны основные возможности пакета по автоматизации процесса. Для получения дополнительной информации выполните: {{Ic|downgrade --help}}.<br />
<br />
Также, для отката пакетов Вы можете воспользоваться программой {{AUR|downgrader}} - это мощная программа написанная на C++, работает с логами pacman, кэшем пакетов и ARM. Она поможет откатить пакет к предыдущей версии по данным из логов, сама найдет, скачает и установит нужный пакет. Также она умеет работать с несколькими пакетами одновременно, например если система стала нестабильна после большого обновления. Для получения дополнительной информации обратитесь к [http://archlinux.org.ru/forum/viewtopic.php?f=29&t=6456 этой] теме форума.<br />
<br />
== Поиск старых версий ==<br />
Существует три способа поиска.<br />
<br />
==== Зеркала Out-Of-Sync ====<br />
При отсутствии старых версий пакетов, нужно проверить, не синхронизировалось ли одно из зеркал, и получить пакет оттуда.<br />
Нажмите здесь, чтобы посмотреть [http://users.archlinux.de/~gerbra/mirrorcheck.html статус зеркал].<br />
<br />
Также нужные пакеты можно поискать на этом зеркале:<br />
* http://schlunix.org/?page_id=11<br />
<br />
====ARM====<br />
[http://arm.konnichi.com/ Arch Rollback Machine] (ARM ) содержит архив снимков (snapshots) всех репозиториев начиная с 1 ноября 2009.<br />
Содержимое сайта постоянно изменяется, поэтому если вы заинтересованы в ARM, то лучше будет, регулярно просмотривать объявления и обсуждения на форуме, для того, чтобы быть в курсе текущего состояния проекта. Последние обсуждения на форуме можно почитать [http://bbs.archlinux.org/viewtopic.php?id=53665 здесь].<br />
<br />
URL-адреса задуманы таким образом, чтоб при помощи скриптов wget+pacman было максимально просто "откатить" систему до определенной даты.<br />
Автоматизация процесса пока не объяснена.<br />
Для упрощения ручного поиска отдельного пакета, можно использовать страницу поиска, расположенную в [http://arm.konnichi.com/search/ ARM Search].<br />
<br />
==== Re-компиляция пакетов ====<br />
В худшем случае, если пакет не найден в другом месте, вам придется самостоятельно собирать себе старую версию. Для этого нужен файл [[PKGBUILD]], можно для изменения взять существующий PKGBUILD из [[ABS]], или найти нужный пакет на http://www.archlinux.org/packages/. После того как вы его нашли, нажмите кнопку "Открыть логи SVN" и выберите "Просмотр журнала". Найдите нужный вариант, и нажмите на ссылку. Далее просто скачайте файлы, расположенные в этом каталоге, и создайте пакет с помощью с makepkg.<br />
<br />
== Дополнительная информация ==<br />
Изменение основных настроек менеджера пакетов [[pacman]] осуществляется с помощью редактирования файла {{ic|pacman.conf}}, для редактироваия файла понадобятся права root. Для правки файла следует набрать в командной строке <br />
nano /etc/pacman.conf<br />
(Конечно можно редактировать файл и с помощью графических утилит, например Shaman, но чаще намного быстрее и безопаснее выполнять такие действия из командной строки.)<br />
<br />
Достаточно просто изменить адреса репозиториев, в которых '''pacman''' осуществляет поиск программ. Для скрытия от '''pacman''' и системы управления пакетами определенного репозитория нужно в начало строки репозитория, добавить знак фунта (#). <br />
<br />
Например, для добавления репозитория с ARM, нужно закомментировать старую строку, и добавить новую с соответствующими путями, формат:<br />
[core]<br />
#<nowiki>Server=http://mirrors.gigenet.com/archlinux/core/os/i686</nowiki><br />
<nowiki>Server=http://arm.konnichi.com/2009/11/01/core/os/i686</nowiki><br />
<br />
В этом примере, дата в имени раздела указывает на то, что в нем расположены все пакеты, которые были доступны на 1 ноября 2009 года. Обратите внимание, что все репозитории являются снимками (snapshots) официального репозитория. Далее нужно разместить зеркало ARM в самом верху {{ic|/etc/pacman.d/mirrorlist}}. Так для синхронизации всех официальных репозиториев ARM, перечисленных в {{ic|/etc/pacman.conf}}, нужно выбрать на зеркале http://arm.konnichi.com/2009/11/01/, например, $repo/os/i686, и выполнить:<br />
pacman -Syy # получить список пакетов<br />
pacman -Suu # откатить все пакеты до версии в репозитории<br />
<br />
Но все это не гарантирует полностью автоматического отката, так как иногда имеющаяся версия пакета не совпадает с требующейся. В таком случае можно поискать нужную версию пакета на глобальном зеркале, например http://arm.konnichi.com/core/os/i686, обратите внимание на отсутствие даты в пути.<br />
<br />
Для получения дополнительной информации - изучите [[pacman]].<br />
<br />
{{FAQ<br />
|question=Я не могу откатить пакет, из-за зависимостей.<br />
|answer=При обновлении или удалении с помощью {{ic|pacman -Ud pkgpkgname-olderpkgver.pkg.tar.gz}}, можно игнорировать зависимости, но учитывайте, что в дальнейшем это может привести к проблемам в системе.}}<br />
<br />
{{FAQ<br />
|question=Как я могу запретить pacman обновлять некоторые пакеты?<br />
|answer=Добавить название пакета в строку "IgnorePkg" файла {{ic|/etc/pacman.conf}}.<br />
{{Ic|<nowiki>IgnorePkg = package1 package2 ...</nowiki>}} в {{ic|pacman.conf}} запретит pacman, при выполнении {{ic|--sysupgrade}}, устанавливать обновления для выбранных пакетов.}}<br />
<br />
{{FAQ<br />
|question=Я хочу вернуться ко вчерашнему состоянию своей системы.<br />
|answer=Легко осуществимо при использовании механизма периодических снимков (snapshots) [[LVM]].}}</div>
Vadik
https://wiki.archlinux.org/index.php?title=Downgrading_packages_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=194191
Downgrading packages (Русский)
2012-04-14T18:21:40Z
<p>Vadik: </p>
<hr />
<div>[[Category:Package management (Русский)]]<br />
{{i18n|Downgrading Packages}}<br />
<br />
{{Article summary start|Описание}}<br />
{{Article summary text|Возврат к более старым версиям пакетов: как и зачем.}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary wiki|Arch Build System}}<br />
{{Article summary wiki|pacman}}<br />
{{Article summary text|[[LVM]] &ndash; how to enable snapshots and how to revert to their state}}<br />
{{Article summary end}}<br />
<br />
В этом руководстве описывается процесс отката установленного пакета к его предыдущей версии. Обычно откат версии пакета не рекомендуется и применяется в том случае, когда в текущем пакете обнаружена ошибка.<br />
<br />
Прежде чем откатить пакет, подумайте, нужно ли это делать. Если необходимость отката вызвана ошибками, пожалуйста, помогите сообществу Arch и разработчикам этого ПО, потратьте несколько минут на составление отчета об ошибке и отправке его в трекер ошибок Arch или на сайт самого проекта. В связи с безрилизной моделью развития Arch, и при продолжительном его использовании, Вы, возможно, периодически будете сталкиваться с ошибками в новых пакетах.<br />
Наше сообщество и разработчики ПО будут признательны Вам за приложенные усилия. Дополнительная информация может не только спасти нас от часов тестирования и отладки, но также позволит повысить стабильность программного обеспечения.<br />
<br />
== Причины ==<br />
Процесс отката (понижения) версии пакета заключается в удалении текущей версии пакета и установке вместо нее предыдущей. Откат может выполняться как до предыдущей версии, так и до любой доступной.<br />
<br />
Причины понижения версии (среди прочих) могут быть следующие: ошибка в текущей версии, отсутствие требуемой функциональности, или установка пакета с целью эксперимента. В любом из этих случаев, пользователю, возможно будет менее проблематично вернуться к старой версии пакета, чем ожидать нового релиза..<br />
<br />
Откат версии одного пакета может повлечь за собой необходимость понижения версий других пакетов. При наличии большого количества экспериментальных и тестовых пакетов, а так же отредактированных конфигурационных файлов, полная переустановка системы может оказаться предпочтительнее откату версий.<br />
<br />
== Подробности ==<br />
Тем не менее, пользователю нужно учесть следующие моменты:<br />
<br />
*Во-первых, понадобится решить вопрос с зависимостями каждой из программ. Необходимые библиотеки могут изменяться с каждой новой версией, функционально связанные с ними файлы, также могут полностью отличаться от предыдущих. Поэтому, возможно, потребуется их замена на более ранние версии.<br />
<br />
*Во-вторых, в случае удаления необходимых версий пакетов из системы, необходимо убедиться, в их доступности из другого источника. Это связано с безрелизной моделью развития системы Arch Linux, репозитории автоматически обновляются без сохранения старых версий пакетов. Подробнее об этой проблеме ниже.<br />
<br />
*В-третьих, следует соблюдать осторожность при внесении изменений в конфигурационные файлы и сценарии. На данный момент, во избежание возможных проблем, лучше использовать pacman, хотя и он имеет некоторые ограничения.<br />
<br />
Сейчас находится в разработке концепция Машины Отката Arch (Arch Rollback Machine) и при готовности она будет включена в стандартные средства pacman. Как только это произойдет, процесс станет автоматизированным.<br />
<br />
А пока, пожалуйста, следуйте инструкциям идущим далее.<br />
<br />
== Инструкция по откату пакетов ==<br />
* В: Я только что выполнил {{Ic|pacman -Syu}} и пакет ''XYZ'' с версии М был обновлен до версии N. Обновление пакета вызывает проблемы на моем компьютере, как я могу откатить версию N к старой версии M?<br />
* О: Версию пакета можно понизить элементарно, для этого найдите старую версию нужного пакета в директории {{ic|/var/cache/pacman/pkg}} (если ранее не запускали {{Ic|pacman -Scc}}, то нужный пакет будет там). Если пакет есть, то его можно установить, выполнив {{Ic|pacman -U /var/cache/pacman/pkg/pkgname-olderpkgver.pkg.tar.gz}}. Если нужный пакет был скачан вручную, то понадобится указать полный путь к пакету.<br />
<br />
Эта команда удалит существующий пакет, проверив при этом все изменяющиеся зависимости, и установит более старую версию пакета.<br />
<br />
{{Note| При изменении основных компонентов операционной системы, может возникнуть с необходимость замены десятков пакетов на более старые версии.<br />
Или же пакеты могут у вас просто отсутствовать, и тогда их придется разыскивать самостоятельно, следя при этом, чтоб при обновлении повторно не были установлены нежелательные версии пакетов.}}<br />
<br />
В [[AUR]] доступен пакет под названием [[AUR|downgrade]]. Это простой скрипт на Bash который ищет в кэше старые версии пакета. Если в кэше пакет не будет найден, то он может искать в [[#ARM|A.R.M.]]. Затем понадобиться выбрать пакет для установки. Здесь описаны основные возможности пакета по автоматизации процесса. Для получения дополнительной информации выполните: {{Ic|downgrade --help}}.<br />
<br />
Также, для отката пакетов Вы можете воспользоваться программой {{AUR|downgrader}} - это мощная программа написанная на C++, работает с логами pacman, кэшем пакетов и ARM. Она поможет откатить пакет к предыдущей версии по данным из логов, сама найдет, скачает и установит нужный пакет. Также она умеет работать с несколькими пакетами одновременно, например если система стала нестабильна после большого обновления. Для получения дополнительной информации обратитесь к [http://archlinux.org.ru/forum/viewtopic.php?f=29&t=6456 этой] теме форума.<br />
<br />
== Поиск старых версий ==<br />
Существует три способа поиска.<br />
<br />
==== Зеркала Out-Of-Sync ====<br />
При отсутствии старых версий пакетов, нужно проверить, не синхронизировалось ли одно из зеркал, и получить пакет оттуда.<br />
Нажмите здесь, чтобы посмотреть [http://users.archlinux.de/~gerbra/mirrorcheck.html статус зеркал].<br />
<br />
Также нужные пакеты можно поискать на этом зеркале:<br />
* http://schlunix.org/?page_id=11<br />
<br />
====ARM====<br />
[http://arm.konnichi.com/ Arch Rollback Machine] (ARM ) содержит архив снимков (snapshots) всех репозиториев начиная с 1 ноября 2009.<br />
Содержимое сайта постоянно изменяется, поэтому если вы заинтересованы в ARM, то лучше будет, регулярно просмотривать объявления и обсуждения на форуме, для того, чтобы быть в курсе текущего состояния проекта. Последние обсуждения на форуме можно почитать [http://bbs.archlinux.org/viewtopic.php?id=53665 здесь].<br />
<br />
URL-адреса задуманы таким образом, чтоб при помощи скриптов wget+pacman было максимально просто "откатить" систему до определенной даты.<br />
Автоматизация процесса пока не объяснена.<br />
Для упрощения ручного поиска отдельного пакета, можно использовать страницу поиска, расположенную в [http://arm.konnichi.com/search/ ARM Search].<br />
<br />
==== Re-компиляция пакетов ====<br />
В худшем случае, если пакет не найден в другом месте, вам придется самостоятельно собирать себе старую версию. Для этого нужен файл [[PKGBUILD]], можно для изменения взять существующий PKGBUILD из [[ABS]], или найти нужный пакет на http://www.archlinux.org/packages/. После того как вы его нашли, нажмите кнопку "Открыть логи SVN" и выберите "Просмотр журнала". Найдите нужный вариант, и нажмите на ссылку. Далее просто скачайте файлы, расположенные в этом каталоге, и создайте пакет с помощью с makepkg.<br />
<br />
== Дополнительная информация ==<br />
Изменение основных настроек менеджера пакетов [[pacman]] осуществляется с помощью редактирования файла {{ic|pacman.conf}}, для редактироваия файла понадобятся права root. Для правки файла следует набрать в командной строке <br />
nano /etc/pacman.conf<br />
(Конечно можно редактировать файл и с помощью графических утилит, например Shaman, но чаще намного быстрее и безопаснее выполнять такие действия из командной строки.)<br />
<br />
Достаточно просто изменить адреса репозиториев, в которых '''pacman''' осуществляет поиск программ. Для скрытия от '''pacman''' и системы управления пакетами определенного репозитория нужно в начало строки репозитория, добавить знак фунта (#). <br />
<br />
Например, для добавления репозитория с ARM, нужно закомментировать старую строку, и добавить новую с соответствующими путями, формат:<br />
[core]<br />
#<nowiki>Server=http://mirrors.gigenet.com/archlinux/core/os/i686</nowiki><br />
<nowiki>Server=http://arm.konnichi.com/2009/11/01/core/os/i686</nowiki><br />
<br />
В этом примере, дата в имени раздела указывает на то, что в нем расположены все пакеты, которые были доступны на 1 ноября 2009 года. Обратите внимание, что все репозитории являются снимками (snapshots) официального репозитория. Далее нужно разместить зеркало ARM в самом верху {{ic|/etc/pacman.d/mirrorlist}}. Так для синхронизации всех официальных репозиториев ARM, перечисленных в {{ic|/etc/pacman.conf}}, нужно выбрать на зеркале http://arm.konnichi.com/2009/11/01/, например, $repo/os/i686, и выполнить:<br />
pacman -Syy # получить список пакетов<br />
pacman -Suu # откатить все пакеты до версии в репозитории<br />
<br />
Но все это не гарантирует полностью автоматического отката, так как иногда имеющаяся версия пакета не совпадает с требующейся. В таком случае можно поискать нужную версию пакета на глобальном зеркале, например http://arm.konnichi.com/core/os/i686, обратите внимание на отсутствие даты в пути.<br />
<br />
Для получения дополнительной информации - изучите [[pacman]].<br />
<br />
{{FAQ<br />
|question=Я не могу откатить пакет, из-за зависимостей.<br />
|answer=При обновлении или удалении с помощью {{ic|pacman -Ud pkgpkgname-olderpkgver.pkg.tar.gz}}, можно игнорировать зависимости, но учитывайте, что в дальнейшем это может привести к проблемам в системе.}}<br />
<br />
{{FAQ<br />
|question=Как я могу запретить pacman обновлять некоторые пакеты?<br />
|answer=Добавить название пакета в строку "IgnorePkg" файла {{ic|/etc/pacman.conf}}.<br />
{{Ic|<nowiki>IgnorePkg = package1 package2 ...</nowiki>}} в {{ic|pacman.conf}} запретит pacman, при выполнении {{ic|--sysupgrade}}, устанавливать обновления для выбранных пакетов.}}<br />
<br />
{{FAQ<br />
|question=Я хочу вернуться ко вчерашнему состоянию своей системы.<br />
|answer=Легко осуществимо при использовании механизма периодических снимков (snapshots) [[LVM]].}}</div>
Vadik
https://wiki.archlinux.org/index.php?title=Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=194144
Pacman (Русский)
2012-04-14T13:45:11Z
<p>Vadik: </p>
<hr />
<div>[[Category:Управление пакетами (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|pacman}} {{Lowercase title}}<br />
<br />
{{Article summary start|Описание}}<br />
{{Article summary text|pacman - [[Wikipedia:Package management system|пакетный менеджер]] Arch Linux. Менеджеры пакетов используются для установки, обновления и удаления программного обеспечения. В данной статье рассматриваются основные приемы и советы по устранению неполадок.}}<br />
{{Article summary heading|Обзор}}<br />
{{Article summary text|{{Package management overview}}}}<br />
{{Article summary heading|Дополнительно}}<br />
{{Article summary wiki|Downgrading Packages (Русский)}}<br />
{{Article summary wiki|Improve Pacman Performance (Русский)}}<br />
{{Article summary wiki|pacman GUI Frontends (Русский)}}<br />
{{Article summary wiki|pacman Rosetta}}<br />
{{Article summary wiki|pacman Tips}}<br />
{{Article summary wiki|Pacman package signing}}<br />
{{Article summary wiki|FAQ_(Русский)#Управление_пакетами}}<br />
{{Article summary wiki|pacman-key (Русский)}}<br />
{{Article summary wiki|Pacnew and Pacsave Files}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary link|libalpm(3) Manual Page|https://www.archlinux.org/pacman/libalpm.3.html}}<br />
{{Article summary link|pacman(8) Manual Page|https://www.archlinux.org/pacman/pacman.8.html}}<br />
{{Article summary link|pacman.conf(5) Manual Page|https://www.archlinux.org/pacman/pacman.conf.5.html}}<br />
{{Article summary link|repo-add(8) Manual Page|https://www.archlinux.org/pacman/repo-add.8.html}}<br />
{{Article summary end}}<br />
<br />
<br />
[[Wikipedia:Package management system|Менеджер пакетов]] '''[https://archlinux.org/pacman/ pacman]''' &mdash; является одной из основных особенностей Arch Linux. Он сочетает в себе простой формат бинарных пакетов и легкую в использовании систему сборки (смотрите [[Arch Build System]] и [[makepkg]]). '''Pacman''' позволяет пользователям с легкостью управлять и настраивать под себя пакеты, вне зависимости от того, из официального ли они репозитария Arch или собранные самостоятельно.<br />
<br />
'''Pacman''', синхронизируя пакеты с главным сервером, поддерживает систему в актуальном состоянии. Такая клиент-серверная модель, позволяет скачивать/устанавливать пакеты со всеми требуемыми зависимостями всего одной командой.<br />
<br />
'''Pacman''' написан на языке C и использует формат пакетов {{ic|.pkg.tar.xz}}.<br />
<br />
{{Tip|Официальный пакет {{Pkg|pacman}} включает в себя много дополнительных полезных инсрументов, таких как [[makepkg]], pactree, vercomp и другие. Весь перечень можно получить с помощью {{ic|pacman -Ql pacman <nowiki>|</nowiki> grep bin}} }}<br />
<br />
== Конфигурация ==<br />
<br />
Основные настройки pacman находятся в {{ic|/etc/pacman.conf}}. В этом файле, пользователь может указать все нужные ему настройки программы. Подробнее о конфигурировании можно прочесть в [https://www.archlinux.org/pacman/pacman.conf.5.html man pacman.conf].<br />
<br />
=== Основные Параметры ===<br />
<br />
Основные параметры находятся в секции {{ic|[options]}}. Для получения дополнительной информации о параметрах - прочтите страницу man или изучите установленный по умолчанию файл {{ic|pacman.conf}}.<br />
<br />
==== Пропуск обновления пакетов ====<br />
<br />
Для пропуска обновления какого-либо пакета, добавьте его название в строку:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета</nowiki>}}<br />
<br />
В случае, если необходимо в строке {{ic|IgnorePkg}} перечислить несколько пакетов - разделяйте имена пакетов пробелами:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета1 имя_пакета2 имя_пакета3</nowiki>}}<br />
<br />
==== Пропуск обновления группы пакетов ====<br />
<br />
Как и в случае с пакетом, вы также можете запретить обновления группы пакетов, например так:<br />
<br />
{{bc|<nowiki>IgnoreGroup=имя_группы</nowiki>}}<br />
<br />
=== Репозитории ===<br />
<br />
В этом разделе файла {{ic|pacman.conf}} указываются репозитории, которые будут использоваться. Их можно указать прямо здесь или подключить из другого файла.<br />
<br />
Все официальные репозитории перечислены в одном файле - {{ic|/etc/pacman.d/mirrorlist}}, для доступа к ним используется переменная {{ic|$repo}}, таким образом достаточно поддерживать в актуальном состоянии только один список.<br />
<br />
Далее приведен пример использования [[mirrors|зеркал]] [[Official Repositories|официальных репозиториев]], которые перечислены в {{ic|/etc/pacman.d/mirrorlist}}.<br />
<br />
{{bc|<nowiki><br />
<br />
#[testing]<br />
#SigLevel = PackageRequired <br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
#SigLevel = PackageRequired<br />
Include=/etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#[community-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#Если в вашей x86_64 системе необходимо запускать 32-битные программы,<br />
#раскоментируйте нужные multilib репозитории.<br />
<br />
#[multilib-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[multilib]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# Использование собственного репозитория. Обратитесь к справочной странице pacman для<br />
# получения дополнительной информации по созданию собственных репозиториев.<br />
<br />
#[custom]<br />
#SigLevel = Optional TrustAll<br />
#Server = file:///home/custompkgs<br />
</nowiki>}}<br />
<br />
{{Note|Будьте осторожны при использовании репозитория [testing]. Пакеты в нём активно разрабатываются и обновляются, это может сказаться на стабильности и работоспособности других пакетов или системы в целом. Людям, использующим репозиторий [testing], для своевременного получения информации рекомендуется подписаться на [https://mailman.archlinux.org/mailman/listinfo/arch-dev-public список рассылки arch-dev-public].}}<br />
<br />
=== Безопасность пакетов ===<br />
<br />
В Pacman 4 реализован дополнительный уровень безопасности устанавливаемых пакетов - подписи пакетов. Для включения проверки подписей перейдите [[pacman-key|сюда]].<br />
<br />
== Использование ==<br />
<br />
Чтобы узнать обо всех возможностях pacman - изучите [https://archlinux.org/pacman/pacman.8.html man pacman]. Примеры ниже - это только небольшая подборка доступных операций.<br />
<br />
===Установка Пакетов===<br />
<br />
====Установка определенных пакетов====<br />
Для установки одного пакета или группы пакетов (включая зависимости), используйте следующую команду:<br />
<br />
# pacman -S имя_пакета1 имя_пакета2 ...<br />
<br />
Если пакет имеет несколько версий в разных репозиториях (например в [extra] и [testing]). Можно указать, откуда именно следует установить пакет:<br />
<br />
# pacman -S extra/имя_пакета<br />
# pacman -S testing/имя_пакета<br />
<br />
{{Note|По умолчанию pacman всегда устанавливает последнюю доступную версию.}}<br />
<br />
====Установка группы пакетов====<br />
Некоторые пакеты принадлежат к группе пакетов, которые могут быть установлены одновременно. Например, при выполнении команды:<br />
<br />
# pacman -S gnome<br />
будут установлены все пакеты входящие в группу {{ic|gnome}}. Чтобы увидеть список пакетов принадлежащих к группе gnome, выполните:<br />
<br />
# pacman -Sg gnome<br />
<br />
Перечень доступных групп пакетов можно изучить посетив https://www.archlinux.org/groups/.<br />
<br />
{{Note|Если не будет использована опция {{ic|--needed}}, то при установке группы будут переустановлены все ранее установленные в систему и принадлежащие этой группе пакеты (даже если установленные в системе пакеты будут иметь последнюю доступную версию).}}<br />
<br />
{{Warning|1=При установке не достаточно одного обновления списка пакетов (например {{ic|pacman -Sy имя_пакета}}) - могут возникнуть проблемы с зависимостями, смотрите разделы [https://bbs.archlinux.org/viewtopic.php?id=89328] и [[#Частичные обновления официально не поддерживаются|Частичные обновления не поддерживаются]]. В первую очередь, перед установкой новых пакетов, выполняйте полное [[#Обновление Системы|обновление системы]].}}<br />
<br />
=== Удаление Пакетов ===<br />
<br />
Для удаления пакета, без удаления установленных зависимостей:<br />
<br />
# pacman -R имя_пакета<br />
<br />
Для удаления пакета со всеми зависимостями, не используемыми другими установленными пакетами:<br />
<br />
# pacman -Rs имя_пакета<br />
<br />
Для удаления пакета, его зависимостей, и всех пакетов зависящих от целевого пакета:<br />
<br />
{{Warning|Эта операция рекурсивна и должна использоваться с осторожностью, так как появляется риск удалить много потенциально необходимых пакетов.}}<br />
<br />
# pacman -Rsc имя_пакета<br />
<br />
По умолчанию pacman создает резервные копии конфигурационных файлов удаляемых приложений с помощью добавления к ним расширения: {{ic|.pacsave}}. Если вы хотите удалить и эти файлы - используйте ключ {{ic|-n}}:<br />
<br />
# pacman -Rn имя_пакета<br />
<br />
{{Note|pacman не удаляет конфигурационных файлов, созданных самими приложениями (например "dot-файлы" в вашей домашней папке).}}<br />
<br />
===Обновление Системы===<br />
<br />
pacman может обновить все пакеты системы одной командой. Количество пакетов зависит от того, насколько свежие пакеты стоят в вашей системе. Лучший вариант - синхронизация базы данных репозиториев '''И''' обновление вашей системы одной командой:<br />
<br />
# pacman -Syu<br />
<br />
{{Warning|В связи с тем, что Arch является постоянно-обновляемым дистрибутивом, пользователям следует помнить, что после или в процессе обновления могут возникнуть непредвиденные трудности. Поэтому обновляться следует с осторожностью. Это означает, что если, например, ожидаются большие изменения или нововведения в обновляемых пакетах, то обновлять систему лучше тогда, когда у пользователя будет достаточно свободного времени и он будет готов к решению возможных проблем.}}<br />
<br />
pacman является мощным инструментом по управлению пакетами, но он не сможет обработать все возможные ситуации. Если вас это смущает - прочтите [[The Arch Way|Путь Arch Linux]]. Пользователь должен быть внимателен и сам заниматься обеспечением работоспособности своей системы. '''При выполнении обновления системы, крайне важно, читать и осмысливать всю информацию которую выводит pacman.''' Если вы изменяли конфигурационный файл, то при обновлении, во избежание перезаписи, будет создан новый конфигурационный файл {{ic|.pacnew}}. pacman предложит объединить его с вашим конфигурационным файлом. Выполнять объединение файлов придется вручную и, лучше всего, сразу после обновления. Для получения дополнительной информации обратитесь к руководству [[Pacnew and Pacsave Files]].<br />
<br />
{{Tip|Не забывайте, что вывод pacman заносится в {{ic|/var/log/pacman.log}}.}}<br />
<br />
Перед обновлением желательно посетить [https://www.archlinux.org/ главную страницу Arch Linux], [https://www.archlinux.org.ru/ главную страницу русскоязычного сообщества Arch Linux] и проверить там последние новости (или подписаться на канал RSS): для обновлений требующих дополнительного вмешательства (если выполнения указанных pacman-ом действий не достаточно) будут добавлены соответствующие новости.<br />
<br />
Если решить проблемы согласно инструкциям не удаётся - поищите подобные сообщения на форуме. Вполне возможно, что другие пользователи столкнувшиеся с подобными проблемами уже предоставили варианты по её решению.<br />
<br />
=== Запросы к Базе Данных Пакетов ===<br />
<br />
pacman, с помощью флага {{ic|-Q}}, может искать пакеты в локальной базе данных; см.:<br />
<br />
$ pacman -Q --help<br />
<br />
и, с помощью флага {{ic|-S}}, в базе данных (репозитариях); см.:<br />
<br />
$ pacman -S --help<br />
<br />
pacman умеет искать пакеты в базе данных, как по названиям, так и по описаниям:<br />
<br />
$ pacman -Ss условие1 условие2 ...<br />
<br />
Поиск пакета по имени в базе данных (вывод без дополнительной информации):<br />
<br />
$ pacman -Sqs условие1 условие2 ...<br />
<br />
Для поиска среди установленных пакетов:<br />
<br />
$ pacman -Qs условие1 условие2 ...<br />
<br />
Для отображения обширной информации о данном пакете:<br />
<br />
$ pacman -Si имя_пакета<br />
<br />
для установленных пакетов:<br />
<br />
$ pacman -Qi имя_пакета<br />
<br />
Использование сдвоенного флага {{ic|-i}} позволит просмотреть список резервных копий файлов и список измененных файлов:<br />
<br />
$ pacman -Qii имя_пакета<br />
<br />
Для получения списка файлов установленного пакета:<br />
<br />
$ pacman -Ql имя_пакета<br />
<br />
Для получения списка файлов неустановленного пакета можно использовать утилиту {{ic|pkgfile}}, из состава пакета [[pkgtools]], или {{ic|nosr}}, входящую в пакет {{aur|nosr-git}}, который расположен в [[AUR]].<br />
<br />
Чтобы узнать какому пакету принадлежит нужный файл:<br />
<br />
$ pacman -Qo /путь/к/файлу/имя_файла<br />
<br />
Для получения списка пакетов, которые больше не требуются как зависимости (пакеты, которые могут быть безопасно удалены или сироты):<br />
<br />
$ pacman -Qdt<br />
<br />
Для отображения зависимостей в виде дерева:<br />
<br />
$ pactree имя_пакета<br />
<br />
Для получения списка пакетов, которые зависят от вашего пакета - можно воспользоваться утилитой {{ic|whoneeds}} из состава пакета [[pkgtools]]:<br />
<br />
$ whoneeds имя_пакета<br />
<br />
=== Получение Списка Установленных Пакетов для Быстрого Восстановления Системы ===<br />
<br />
Хорошей практикой явлется сохранение списка всех установленых пакетов. Если ваша система "упала" и её сложно восстановить, pacman может легко переустановить эти пакеты.<br />
<br />
Сначала, сохраните в список пакетов (доступных в репозитории):<br />
<br />
pacman -Qqe | grep -v "$(pacman -Qmq)" > pkglist<br />
<br />
# безопасная, но и более сложная альтернатива (во избежание удаления частичных совпадений)<br />
comm -13 <(pacman -Qmq | sort) <(pacman -Qqe | sort) > pkglist<br />
<br />
Сохраните этот файл на флешке или на другом носителе.<br />
<br />
Скопируйте файл pkglist в новую систему, перейдите в эту папку.<br />
<br />
Для восстановления используйте команду:<br />
pacman -S $(cat pkglist)<br />
<br />
=== Получение Списка Файлов не Принадлежащих Любому Пакету ===<br />
<br />
Если вы всегда хотите держать свою систему в чистоте и уважаете [[Путь Arch]], вы должны иногда проверять файлы отсутствующие в базе данных pacman. Эти файлы, зачастую установлены сторонними приложениями с использованием '''./configure; make; make install''' и т.п. Вы можете найти все эти установленные файлы (или симлинки) используя этот простой скрипт:<br />
<br />
#!/bin/bash<br />
time /usr/bin/pacman -Ql | cut -d ' ' -f 2- | sort -u > db.txt<br />
time find /arch /bin /boot /etc /lib /opt /sbin /usr 2>/dev/null | while read i; do<br />
if [ ! -d "$i" ]; then<br />
echo "$i"<br />
fi;<br />
done | sort -u > fs.txt<br />
time comm -23 fs.txt db.txt > non-db.txt<br />
<br />
#для проверки:<br />
#cat non-db.txt | while read i; do pacman -Qo "$i" 2>&1; done | tee test.txt<br />
<br />
заметьте - все файлы указанные в non-db.txt НЕ БУДУТ удалены без подтверждения. Здесь могут находиться конфигурационные файлы, журналы и др. Используйте этот список только если знаете, что вы делаете.<br />
<br />
=== Дополнительные команды ===<br />
<br />
Обновление системы и установка списка пакетов (за одну операцию):<br />
<br />
# pacman -Syu имя_пакета1 имя_пакета2 ...<br />
<br />
Скачать пакет, но не устанавливать его:<br />
<br />
# pacman -Sw имя_пакета<br />
<br />
Установить локальный пакет (не из репозитория):<br />
<br />
# pacman -U /путь/к/пакету/имя_пакета-version.pkg.tar.xz<br />
<br />
Установить 'не локальный' пакет (не из репозитория):<br />
<br />
# pacman -U <nowiki>http://www.example.com/repo/example.pkg.tar.xz</nowiki><br />
<br />
Удалить из кэша ({{ic|/var/cache/pacman/pkg}}) неустановленные пакеты:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Поэтому, в случае возникновения проблем после обновлениий - появятся дополнительные трудности, связанные с откатом версий пакетов.}}<br />
<br />
# pacman -Sc<br />
<br />
Полная очистка кэша пакетов:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Выполняйте это только в том случае, если у вас всё нормально работает и вы уверены, что вам не понадобится [[Downgrade_packages| откатывать]] какой-либо пакет.}}<br />
<br />
# pacman -Scc<br />
<br />
В качестве альтернативы ключам {{ic|-Sc}} и {{ic|-Scc}} - можно использовать пакет {{AUR|Cacheclean}}, доступный в [[AUR]]. Это скрипт на python, который позволяет выборочно очищать кэш pacman'а от старых версий пакетов.<br />
<br />
===Частичные обновления официально не поддерживаются===<br />
Arch Linux постоянно обновляемый дистрибутив и это значит, что в репозиториях всегда находятся новые версии [[Wikipedia:Library (computing)|библиотек]]. Разработчики и доверенные пользователи собирают пакеты для репозиториев с использованием этих библиотек. Для пакетов установленных локально (например пакеты из [[Arch User Repository|AUR]]), нужно самостоятельно решать вопрос с зависимостями согласно данным [[Wikipedia:soname|soname]].<br />
<br />
Именно поэтому частичное обновление '''не поддерживается'''. Не используйте {{ic|pacman -Sy package}} или другие эквиваленты {{ic|pacman -Sy}} и {{ic|pacman -S package}}. Всегда перед установкой пакетов синхронизируйте репозитории и обновляйте систему полностью. По той же самой причине нужно быть осторожными при использовании {{ic|IgnorePkg}} и {{ic|IgnoreGroup}}.<br />
<br />
Если после частичного обновления оказалось, что бинарные файлы не могут найти нужных версий библиотек и проблему '''не возможно "решить" созданием символической ссылки''' (библиотеки не имеют '''обратной совместимости''') - выполните {{ic|pacman -Syu}}, как правило этого будет достаточно для устранения проблемы.<br />
<br />
== Устранение проблем ==<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init, но отсутствуют ssh / X или генераторы случайных чисел. Как мне получить энтропию?<br />
|answer=Для решения проблемы нужно перемещать указатель мыши, нажимать на клавиатуре случайные кнопки или запустить дисковую активность, например с помощью {{ic|updatedb}}. Будьте терпиливы, процесс может затянуться на длительное время. При этом переход в другую консоль, по Alt+F2-6, временно работать не будет.}}<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init через ssh. Как мне получить энтропию?<br />
|answer=На целевой машине соберите и установите пакет {{AUR|rng-tools}} из [[AUR]]. Подключитесь через ssh и выполните следующие команды:<br />
{{bc|# sed -i 's/0/10/' /etc/conf.d/rngd<br />
# rngd -f -r /dev/urandom &<br />
# pacman-key --init}}<br />
<br />
После успешного выполнения pacman-key просто остановите rngd и удалите пакет.<br />
<br />
{{bc|# killall rngd<br />
# pacman -Rns rng-tools}}<br />
}}<br />
<br />
{{FAQ<br />
|question=Pacman не находит PGP ключи для импорта и не обновляет пакеты. Как можно это исправить?<br />
|answer=На самом деле проблема не в pacman. Проблема в сервере ключей, используемом по умолчанию. Измените сервер ключей на более надежный таким способом:<br />
<br />
# sed -i '/keyserver/ s,keys.gnupg.net,pgp.mit.edu,' /etc/pacman.d/gnupg/gpg.conf<br />
Pacman4 теперь готов к использованию.}}<br />
<br />
{{FAQ<br />
|question=Обновление пакета XYZ сломало мою систему!<br />
|answer=Arch Linux - передовой, постоянно обновляемый дистрибутив. Обновления для пакетов становятся доступными тогда, когда их посчитают достаточно стабильными для повседневного использования. Тем не менее, обновления иногда требуют вмешательства пользователя: может потребоваться обновление конфигурационных файлов, могут измениться дополнительные зависимости, и т.д.<br />
<br />
Запомните основное правило - не обновляйте систему "вслепую". Всегда внимательно изучайте список обновляемых пакетов. Обращайте внимание на обновление "критически важных" компонентов ({{ic|linux}}, {{ic|xorg-server}}, и т.д.). Если такие пакеты есть - проверьте наличие новостей на https://www.archlinux.org/ и просмотрите последние сообщения на форуме, возможно кто-то уже столкнулся с проблемами при обновлении.<br />
<br />
Если известно/ожидается, что после обновления могут возникнуть проблемы - pacman выведет соответствующее сообщение. Если вы упустили какую-то информацию, которую вывел pacman, то её можно еще раз просмотреть в ({{ic|/var/log/pacman.log}}). <br />
<br />
Теперь, '''если не было никаких предупреждений от pacman, отсутствуют соответствующие новости на https://www.archlinux.org/ и нет сообщений относительно обновлений на форуме''', имеет смысл обратиться за помощью на форум, [[IRC Channel|IRC-канал]], или [[Downgrading Packages|откатить пакет к работающей версии]].<br />
<br />
Перечитайте последний абзац.}}<br />
<br />
{{FAQ<br />
|question=Я знаю что для пакета ABC доступны обновления, но pacman сообщает мне, что система в актуальном состоянии!<br />
|answer=Зеркала pacman синхронизируются не мгновенно. Иногда может пройти более 24 часов, прежде чем обновления станут доступны вам. <br />
<br />
В качестве решения можно посоветовать сменить зеркало. На [https://www.archlinux.org/mirrors/status/ MirrorStatus] можно посмотреть состояние зеркал.}}<br />
<br />
{{FAQ<br />
|question=При обновлении появляется сообщение об ошибке: "file exists in filesystem" ("файл существует в файловой системе")!<br />
|answer=Дополнительно: ''Взято из https://bbs.archlinux.org/viewtopic.php?id=56373 у Misfit138.''<br />
<br />
error: could not prepare transaction<br />
error: failed to commit transaction (conflicting files)<br />
package: /path/to/file exists in filesystem<br />
Errors occurred, no packages were upgraded.<br />
<br />
Почему это происходит: pacman при обнаружении конфликтующих файлов, по умолчанию, не будет их перезаписывать автоматически. Это не ошибка, так сделано специально. (узнать какому пакету принадлежит файл, если таковой имеется, можно с помощью {{ic|pacman -Qo}}.)<br />
<br />
Вопрос решается тривиально. Сначала проверьте не принадлежит ли файл другому пакету: ({{ic|pacman -Qo /path/to/file}}). Если принадлежит - создайте [[Reporting Bug Guidelines|отчет об ошибке]]. Если проблемный файл не нужен другим пакетам - переименуйте его и перезапустите команду обновления. Если в дальнейшем проблем не возникнет, то старый файл можно удалить.}}<br />
<br />
{{FAQ<br />
|question=При установке пакета я получаю сообщение об ошибке: "not found in sync db"<br />
|answer=Для начала убедитесь, что пакет вообще существует (и вы нигде не опечатались!). Если пакет не существует, то проблема может быть в том, что ваша база пакетов не синхронизирована с репозиториями или репозитории неправильно настроены. Для принудительного обновления списка пакетов попробуйте выполнить {{ic|pacman -Syy}}.}}<br />
<br />
{{FAQ<br />
|question=pacman несколько раз обновляет один и тот же пакет!<br />
|answer=Это может быть связано с дублированием записей в {{ic|/var/lib/pacman/local/}}, к примеру имеется два экземпляра {{ic|linux}}. {{ic|pacman -Qi}} выведет правильную версию, а {{ic|pacman -Qu}} покажет её как устаревшую и, следовательно, требующую обновления.<br />
<br />
Решение: удалить лишнюю запись из {{ic|/var/lib/pacman/local/}}.<br />
<br />
{{Note|pacman версии 3.4, в случае обнаружения повторяющихся записей, должен вывести сообщение об ошибке.}}}}<br />
<br />
{{FAQ<br />
|question=pacman сбоит при обновлении!<br />
|answer=Если при попытке удаления, переустановки или обновления пакетов pacman падает с ошибкой "database write" ("записи в базу данных"):<br />
#Загрузитесь используя Arch live CD<br />
#Смонтируйте корневую файловую систему<br />
#Обновите базу данных pacman с помощью {{ic|pacman -Syy}}<br />
#Переустановите сломанный пакет через {{ic|pacman -r /путь/к/корневому_разделу -S package}}}}<br />
<br />
{{FAQ<br />
|question=Я установил программу используя {{ic|make install}}; теперь эти файлы не принадлежат ни одному из пакетов!<br />
|answer=При обнаружении "конфликтующих файлов", чтобы их не перезаписывать вручную, можно использовать pacman с ключом {{ic|-f}} ({{ic|pacman -Sf}}).<br />
<br />
Почитайте [[pacman Tips#Identify_files_not_owned_by_any_package]], о скрипте, проверяющем файловую систему на наличие ''брошенных'' файлов.}}<br />
<br />
{{FAQ<br />
|question=Мне нужен пакет с определенным файлом. Как узнать какому пакету это файл принадлежит?<br />
|answer=Установите [[pkgtools]], в его состав входит {{ic|pkgfile}}, использующий отдельную базу данных со всеми файлами и связанными с ними пакетами.}}<br />
<br />
{{FAQ<br />
|question=pacman полностью не работоспособен! Как мне его переустановить?<br />
|answer=Если pacman не работает и не получается его восстановить - скачайте вручную пакеты ({{Pkg|openssl}}, {{Pkg|libarchive}} и {{Pkg|pacman}}) и распакуйте их в корневой раздел. Бинарный pacman будет восстановлен вместе с конфигурационным файлом по умолчанию. Затем, для поддержания целостности базы данных пакетов, переустановите скачанные пакеты стандартными средствами pacman. Дополнительную информацию и пример (устарел) скрипта, автоматизирующего этот процесс, можно найти в [https://bbs.archlinux.org/viewtopic.php?id=95007 этом] сообщении форума.}}<br />
<br />
{{FAQ<br />
|question=После обновления системы получаю следующее сообщение об ошибке - "unable to find root device", после перезагрузки система не загружается.<br />
|answer=Вероятно при обновлении ядра "поломалась" initramfs (например при использовании pacman с опцией {{ic|--force}}). Для восстановления работоспособности выполните следующие действия.<br />
<br />
Загрузитесь с Arch live-cd. После загрузки выполните:<br />
<br />
# mkdir /mnt/arch<br />
# mount /dev/sdx /mnt/arch (ваш корневой раздел)<br />
# cd /mnt/arch<br />
# mount -t proc proc proc/<br />
# mount -t sysfs sys sys/<br />
# mount -o bind /dev dev/<br />
# mount /dev/sdx boot/ (ваш раздел /boot)<br />
# chroot . /bin/bash<br />
# pacman -Syu<br />
# pacman -S udev<br />
# pacman -S mkinitcpio<br />
# mkinitcpio -p linux<br />
<br />
<br />
Затем отмонтируйте смонтированные разделы и перезагрузитесь.}}</div>
Vadik
https://wiki.archlinux.org/index.php?title=Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=192703
Pacman (Русский)
2012-04-03T15:13:49Z
<p>Vadik: /* Запросы к Базе Данных Пакетов */</p>
<hr />
<div>[[Category:Управление пакетами (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|pacman}} {{Lowercase title}}<br />
<br />
{{Article summary start|Описание}}<br />
{{Article summary text|pacman - [[Wikipedia:Package management system|пакетный менеджер]] Arch Linux. Менеджеры пакетов используются для установки, обновления и удаления программного обеспечения. В данной статье рассматриваются основные приемы и советы по устранению неполадок.}}<br />
{{Article summary heading|Обзор}}<br />
{{Article summary text|{{Package management overview}}}}<br />
{{Article summary heading|Дополнительно}}<br />
{{Article summary wiki|Downgrading Packages (Русский)}}<br />
{{Article summary wiki|Improve Pacman Performance (Русский)}}<br />
{{Article summary wiki|pacman GUI Frontends (Русский)}}<br />
{{Article summary wiki|pacman Rosetta}}<br />
{{Article summary wiki|pacman Tips}}<br />
{{Article summary wiki|Pacman package signing}}<br />
{{Article summary wiki|FAQ_(Русский)#Управление_пакетами}}<br />
{{Article summary wiki|pacman-key (Русский)}}<br />
{{Article summary wiki|Pacnew and Pacsave Files}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary link|libalpm(3) Manual Page|https://www.archlinux.org/pacman/libalpm.3.html}}<br />
{{Article summary link|pacman(8) Manual Page|https://www.archlinux.org/pacman/pacman.8.html}}<br />
{{Article summary link|pacman.conf(5) Manual Page|https://www.archlinux.org/pacman/pacman.conf.5.html}}<br />
{{Article summary link|repo-add(8) Manual Page|https://www.archlinux.org/pacman/repo-add.8.html}}<br />
{{Article summary end}}<br />
<br />
<br />
[[Wikipedia:Package management system|Менеджер пакетов]] '''[https://archlinux.org/pacman/ pacman]''' &mdash; является одной из основных особенностей Arch Linux. Он сочетает в себе простой формат бинарных пакетов и легкую в использовании систему сборки (смотрите [[Arch Build System]] и [[makepkg]]). '''Pacman''' позволяет пользователям с легкостью управлять и настраивать под себя пакеты, вне зависимости от того, из официального ли они репозитария Arch или собранные самостоятельно.<br />
<br />
'''Pacman''', синхронизируя пакеты с главным сервером, поддерживает систему в актуальном состоянии. Такая клиент-серверная модель, позволяет скачивать/устанавливать пакеты со всеми требуемыми зависимостями всего одной командой.<br />
<br />
'''Pacman''' написан на языке C и использует формат пакетов {{ic|.pkg.tar.xz}}.<br />
<br />
{{Tip|Официальный пакет {{Pkg|pacman}} включает в себя много дополнительных полезных инсрументов, таких как [[makepkg]], pactree, vercomp и другие. Весь перечень можно получить с помощью {{ic|pacman -Ql pacman <nowiki>|</nowiki> grep bin}} }}<br />
<br />
== Конфигурация ==<br />
<br />
Основные настройки pacman находятся в {{ic|/etc/pacman.conf}}. В этом файле, пользователь может указать все нужные ему настройки программы. Подробнее о конфигурировании можно прочесть в [https://www.archlinux.org/pacman/pacman.conf.5.html man pacman.conf].<br />
<br />
=== Основные Параметры ===<br />
<br />
Основные параметры находятся в секции {{ic|[options]}}. Для получения дополнительной информации о параметрах - прочтите страницу man или изучите установленный по умолчанию файл {{ic|pacman.conf}}.<br />
<br />
==== Пропуск обновления пакетов ====<br />
<br />
Для пропуска обновления какого-либо пакета, добавьте его название в строку:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета</nowiki>}}<br />
<br />
В случае, если необходимо в строке {{ic|IgnorePkg}} перечислить несколько пакетов - разделяйте имена пакетов пробелами:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета1 имя_пакета2 имя_пакета3</nowiki>}}<br />
<br />
==== Пропуск обновления группы пакетов ====<br />
<br />
Как и в случае с пакетом, вы также можете запретить обновления группы пакетов, например так:<br />
<br />
{{bc|<nowiki>IgnoreGroup=имя_группы</nowiki>}}<br />
<br />
=== Репозитории ===<br />
<br />
В этом разделе файла {{ic|pacman.conf}} указываются репозитории, которые будут использоваться. Их можно указать прямо здесь или подключить из другого файла.<br />
<br />
Все официальные репозитории перечислены в одном файле - {{ic|/etc/pacman.d/mirrorlist}}, для доступа к ним используется переменная {{ic|$repo}}, таким образом достаточно поддерживать в актуальном состоянии только один список.<br />
<br />
Далее приведен пример использования [[mirrors|зеркал]] [[Official Repositories|официальных репозиториев]], которые перечислены в {{ic|/etc/pacman.d/mirrorlist}}.<br />
<br />
{{bc|<nowiki><br />
<br />
#[testing]<br />
#SigLevel = PackageRequired <br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
#SigLevel = PackageRequired<br />
Include=/etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#[community-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#Если в вашей x86_64 системе необходимо запускать 32-битные программы,<br />
#раскоментируйте нужные multilib репозитории.<br />
<br />
#[multilib-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[multilib]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# Использование собственного репозитория. Обратитесь к справочной странице pacman для<br />
# получения дополнительной информации по созданию собственных репозиториев.<br />
<br />
#[custom]<br />
#SigLevel = Optional TrustAll<br />
#Server = file:///home/custompkgs<br />
</nowiki>}}<br />
<br />
{{Note|Будьте осторожны при использовании репозитория [testing]. Пакеты в нём активно разрабатываются и обновляются, это может сказаться на стабильности и работоспособности других пакетов или системы в целом. Людям, использующим репозиторий [testing], для своевременного получения информации рекомендуется подписаться на [https://mailman.archlinux.org/mailman/listinfo/arch-dev-public список рассылки arch-dev-public].}}<br />
<br />
=== Безопасность пакетов ===<br />
<br />
В Pacman 4 реализован дополнительный уровень безопасности устанавливаемых пакетов - подписи пакетов. Для включения проверки подписей перейдите [[pacman-key|сюда]].<br />
<br />
== Использование ==<br />
<br />
Чтобы узнать обо всех возможностях pacman - изучите [https://archlinux.org/pacman/pacman.8.html man pacman]. Примеры ниже - это только небольшая подборка доступных операций.<br />
<br />
===Установка Пакетов===<br />
<br />
====Установка определенных пакетов====<br />
Для установки одного пакета или группы пакетов (включая зависимости), используйте следующую команду:<br />
<br />
# pacman -S имя_пакета1 имя_пакета2 ...<br />
<br />
Если пакет имеет несколько версий в разных репозиториях (например в [extra] и [testing]). Можно указать, откуда именно следует установить пакет:<br />
<br />
# pacman -S extra/имя_пакета<br />
# pacman -S testing/имя_пакета<br />
<br />
====Установка группы пакетов====<br />
Некоторые пакеты принадлежат к группе пакетов, которые могут быть установлены одновременно. Например, при выполнении команды:<br />
<br />
# pacman -S gnome<br />
будут установлены все пакеты входящие в группу {{ic|gnome}}. Чтобы увидеть список пакетов принадлежащих к группе gnome, выполните:<br />
<br />
# pacman -Sg gnome<br />
<br />
Перечень доступных групп пакетов можно изучить посетив https://www.archlinux.org/groups/.<br />
<br />
{{Note|Если не будет использована опция {{ic|--needed}}, то при установке группы будут переустановлены все ранее установленные в систему и принадлежащие этой группе пакеты (даже если установленные в системе пакеты будут иметь последнюю доступную версию).}}<br />
<br />
{{Warning|1=При установке не достаточно одного обновления списка пакетов (например {{ic|pacman -Sy имя_пакета}}) - могут возникнуть проблемы с зависимостями, смотрите разделы [https://bbs.archlinux.org/viewtopic.php?id=89328] и [[#Частичные обновления официально не поддерживаются|Частичные обновления не поддерживаются]]. В первую очередь, перед установкой новых пакетов, выполняйте полное [[#Обновление Системы|обновление системы]].}}<br />
<br />
=== Удаление Пакетов ===<br />
<br />
Для удаления пакета, без удаления установленных зависимостей:<br />
<br />
# pacman -R имя_пакета<br />
<br />
Для удаления пакета со всеми зависимостями, не используемыми другими установленными пакетами:<br />
<br />
# pacman -Rs имя_пакета<br />
<br />
Для удаления пакета, его зависимостей, и всех пакетов зависящих от целевого пакета:<br />
<br />
{{Warning|Эта операция рекурсивна и должна использоваться с осторожностью, так как появляется риск удалить много потенциально необходимых пакетов.}}<br />
<br />
# pacman -Rsc имя_пакета<br />
<br />
По умолчанию pacman создает резервные копии конфигурационных файлов удаляемых приложений с помощью добавления к ним расширения: {{ic|.pacsave}}. Если вы хотите удалить и эти файлы - используйте ключ {{ic|-n}}:<br />
<br />
# pacman -Rn имя_пакета<br />
<br />
{{Note|pacman не удаляет конфигурационных файлов, созданных самими приложениями (например "dot-файлы" в вашей домашней папке).}}<br />
<br />
===Обновление Системы===<br />
<br />
pacman может обновить все пакеты системы одной командой. Количество пакетов зависит от того, насколько свежие пакеты стоят в вашей системе. Лучший вариант - синхронизация базы данных репозиториев '''И''' обновление вашей системы одной командой:<br />
<br />
# pacman -Syu<br />
<br />
{{Warning|В связи с тем, что Arch является постоянно-обновляемым дистрибутивом, пользователям следует помнить, что после или в процессе обновления могут возникнуть непредвиденные трудности. Поэтому обновляться следует с осторожностью. Это означает, что если, например, ожидаются большие изменения или нововведения в обновляемых пакетах, то обновлять систему лучше тогда, когда у пользователя будет достаточно свободного времени и он будет готов к решению возможных проблем.}}<br />
<br />
pacman является мощным инструментом по управлению пакетами, но он не сможет обработать все возможные ситуации. Если вас это смущает - прочтите [[The Arch Way|Путь Arch Linux]]. Пользователь должен быть внимателен и сам заниматься обеспечением работоспособности своей системы. '''При выполнении обновления системы, крайне важно, читать и осмысливать всю информацию которую выводит pacman.''' Если вы изменяли конфигурационный файл, то при обновлении, во избежание перезаписи, будет создан новый конфигурационный файл {{ic|.pacnew}}. pacman предложит объединить его с вашим конфигурационным файлом. Выполнять объединение файлов придется вручную и, лучше всего, сразу после обновления. Для получения дополнительной информации обратитесь к руководству [[Pacnew and Pacsave Files]].<br />
<br />
{{Tip|Не забывайте, что вывод pacman заносится в {{ic|/var/log/pacman.log}}.}}<br />
<br />
Перед обновлением желательно посетить [https://www.archlinux.org/ главную страницу Arch Linux], [https://www.archlinux.org.ru/ главную страницу русскоязычного сообщества Arch Linux] и проверить там последние новости (или подписаться на канал RSS): для обновлений требующих дополнительного вмешательства (если выполнения указанных pacman-ом действий не достаточно) будут добавлены соответствующие новости.<br />
<br />
Если решить проблемы согласно инструкциям не удаётся - поищите подобные сообщения на форуме. Вполне возможно, что другие пользователи столкнувшиеся с подобными проблемами уже предоставили варианты по её решению.<br />
<br />
=== Запросы к Базе Данных Пакетов ===<br />
<br />
pacman, с помощью флага {{ic|-Q}}, может искать пакеты в локальной базе данных; см.:<br />
<br />
$ pacman -Q --help<br />
<br />
и, с помощью флага {{ic|-S}}, в базе данных (репозитариях); см.:<br />
<br />
$ pacman -S --help<br />
<br />
pacman умеет искать пакеты в базе данных, как по названиям, так и по описаниям:<br />
<br />
$ pacman -Ss условие1 условие2 ...<br />
<br />
Поиск пакета по имени в базе данных (вывод без дополнительной информации):<br />
<br />
$ pacman -Sqs условие1 условие2 ...<br />
<br />
Для поиска среди установленных пакетов:<br />
<br />
$ pacman -Qs условие1 условие2 ...<br />
<br />
Для отображения обширной информации о данном пакете:<br />
<br />
$ pacman -Si имя_пакета<br />
<br />
для установленных пакетов:<br />
<br />
$ pacman -Qi имя_пакета<br />
<br />
Использование сдвоенного флага {{ic|-i}} позволит просмотреть список резервных копий файлов и список измененных файлов:<br />
<br />
$ pacman -Qii имя_пакета<br />
<br />
Для получения списка файлов установленного пакета:<br />
<br />
$ pacman -Ql имя_пакета<br />
<br />
Для получения списка файлов неустановленного пакета можно использовать утилиту {{ic|pkgfile}}, из состава пакета [[pkgtools]], или {{ic|nosr}}, входящую в пакет {{aur|nosr-git}}, который расположен в [[AUR]].<br />
<br />
Чтобы узнать какому пакету принадлежит нужный файл:<br />
<br />
$ pacman -Qo /путь/к/файлу/имя_файла<br />
<br />
Для получения списка пакетов, которые больше не требуются как зависимости (пакеты, которые могут быть безопасно удалены или сироты):<br />
<br />
$ pacman -Qdt<br />
<br />
Для отображения зависимостей в виде дерева:<br />
<br />
$ pactree имя_пакета<br />
<br />
Для получения списка установленных пакетов, которые зависят от вашего пакета - можно воспользоваться утилитой {{ic|whoneeds}} из состава пакета [[pkgtools]]:<br />
<br />
$ whoneeds имя_пакета<br />
<br />
=== Получение Списка Установленных Пакетов для Быстрого Восстановления Системы ===<br />
<br />
Хорошей практикой явлется сохранение списка всех установленых пакетов. Если ваша система "упала" и её сложно восстановить, pacman может легко переустановить эти пакеты.<br />
<br />
Сначала, сохраните в список пакетов (доступных в репозитории):<br />
<br />
pacman -Qqe | grep -v "$(pacman -Qmq)" > pkglist<br />
<br />
# безопасная, но и более сложная альтернатива (во избежание удаления частичных совпадений)<br />
comm -13 <(pacman -Qmq | sort) <(pacman -Qqe | sort) > pkglist<br />
<br />
Сохраните этот файл на флешке или на другом носителе.<br />
<br />
Скопируйте файл pkglist в новую систему, перейдите в эту папку.<br />
<br />
Для восстановления используйте команду:<br />
pacman -S $(cat pkglist)<br />
<br />
=== Получение Списка Файлов не Принадлежащих Любому Пакету ===<br />
<br />
Если вы всегда хотите держать свою систему в чистоте и уважаете [[Путь Arch]], вы должны иногда проверять файлы отсутствующие в базе данных pacman. Эти файлы, зачастую установлены сторонними приложениями с использованием '''./configure; make; make install''' и т.п. Вы можете найти все эти установленные файлы (или симлинки) используя этот простой скрипт:<br />
<br />
#!/bin/bash<br />
time /usr/bin/pacman -Ql | cut -d ' ' -f 2- | sort -u > db.txt<br />
time find /arch /bin /boot /etc /lib /opt /sbin /usr 2>/dev/null | while read i; do<br />
if [ ! -d "$i" ]; then<br />
echo "$i"<br />
fi;<br />
done | sort -u > fs.txt<br />
time comm -23 fs.txt db.txt > non-db.txt<br />
<br />
#для проверки:<br />
#cat non-db.txt | while read i; do pacman -Qo "$i" 2>&1; done | tee test.txt<br />
<br />
заметьте - все файлы указанные в non-db.txt НЕ БУДУТ удалены без подтверждения. Здесь могут находиться конфигурационные файлы, журналы и др. Используйте этот список только если знаете, что вы делаете.<br />
<br />
=== Дополнительные команды ===<br />
<br />
Обновление системы и установка списка пакетов (за одну операцию):<br />
<br />
# pacman -Syu имя_пакета1 имя_пакета2 ...<br />
<br />
Скачать пакет, но не устанавливать его:<br />
<br />
# pacman -Sw имя_пакета<br />
<br />
Установить локальный пакет (не из репозитория):<br />
<br />
# pacman -U /путь/к/пакету/имя_пакета-version.pkg.tar.xz<br />
<br />
Установить 'не локальный' пакет (не из репозитория):<br />
<br />
# pacman -U <nowiki>http://www.example.com/repo/example.pkg.tar.xz</nowiki><br />
<br />
Удалить из кэша ({{ic|/var/cache/pacman/pkg}}) неустановленные пакеты:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Поэтому, в случае возникновения проблем после обновлениий - появятся дополнительные трудности, связанные с откатом версий пакетов.}}<br />
<br />
# pacman -Sc<br />
<br />
Полная очистка кэша пакетов:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Выполняйте это только в том случае, если у вас всё нормально работает и вы уверены, что вам не понадобится [[Downgrade_packages| откатывать]] какой-либо пакет.}}<br />
<br />
# pacman -Scc<br />
<br />
В качестве альтернативы ключам ''-Sc'' и ''-Scc'' - можно использовать пакет {{AUR|Cacheclean}}, доступный в [[AUR]]. Это скрипт на python, который позволяет выборочно очищать кэш pacman'а от старых версий пакетов.<br />
<br />
===Частичные обновления официально не поддерживаются===<br />
Arch Linux постоянно обновляемый дистрибутив и это значит, что в репозиториях всегда находятся новые версии [[Wikipedia:Library (computing)|библиотек]]. Разработчики и доверенные пользователи собирают пакеты для репозиториев с использованием этих библиотек. Для пакетов установленных локально (например пакеты из [[Arch User Repository|AUR]]), нужно самостоятельно решать вопрос с зависимостями согласно данным [[Wikipedia:soname|soname]].<br />
<br />
Именно поэтому частичное обновление '''не поддерживается'''. Не используйте {{ic|pacman -Sy package}} или другие эквиваленты {{ic|pacman -Sy}} и {{ic|pacman -S package}}. Всегда перед установкой пакетов синхронизируйте репозитории и обновляйте систему полностью. По той же самой причине нужно быть осторожными при использовании {{ic|IgnorePkg}} и {{ic|IgnoreGroup}}.<br />
<br />
Если после частичного обновления оказалось, что бинарные файлы не могут найти нужных версий библиотек и проблему '''не возможно "решить" созданием символической ссылки''' (библиотеки не имеют '''обратной совместимости''') - выполните {{ic|pacman -Syu}}, как правило этого будет достаточно для устранения проблемы.<br />
<br />
== Устранение проблем ==<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init, но отсутствуют ssh / X или генераторы случайных чисел. Как мне получить энтропию?<br />
|answer=Для решения проблемы нужно перемещать указатель мыши, нажимать на клавиатуре случайные кнопки или запустить дисковую активность, например с помощью {{ic|updatedb}}. Будьте терпиливы, процесс может затянуться на длительное время. При этом переход в другую консоль, по Alt+F2-6, временно работать не будет.}}<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init через ssh. Как мне получить энтропию?<br />
|answer=На целевой машине соберите и установите пакет {{AUR|rng-tools}} из [[AUR]]. Подключитесь через ssh и выполните следующие команды:<br />
{{bc|# sed -i 's/0/10/' /etc/conf.d/rngd<br />
# rngd -f -r /dev/urandom &<br />
# pacman-key --init}}<br />
<br />
После успешного выполнения pacman-key просто остановите rngd и удалите пакет.<br />
<br />
{{bc|# killall rngd<br />
# pacman -Rns rng-tools}}<br />
}}<br />
<br />
{{FAQ<br />
|question=Pacman не находит PGP ключи для импорта и не обновляет пакеты. Как можно это исправить?<br />
|answer=На самом деле проблема не в pacman. Проблема в сервере ключей, используемом по умолчанию. Измените сервер ключей на более надежный таким способом:<br />
<br />
# sed -i '/keyserver/ s,keys.gnupg.net,pgp.mit.edu,' /etc/pacman.d/gnupg/gpg.conf<br />
Pacman4 теперь готов к использованию.}}<br />
<br />
{{FAQ<br />
|question=Обновление пакета XYZ сломало мою систему!<br />
|answer=Arch Linux - передовой, постоянно обновляемый дистрибутив. Обновления для пакетов становятся доступными тогда, когда их посчитают достаточно стабильными для повседневного использования. Тем не менее, обновления иногда требуют вмешательства пользователя: может потребоваться обновление конфигурационных файлов, могут измениться дополнительные зависимости, и т.д.<br />
<br />
Запомните основное правило - не обновляйте систему "вслепую". Всегда внимательно изучайте список обновляемых пакетов. Обращайте внимание на обновление "критически важных" компонентов ({{ic|linux}}, {{ic|xorg-server}}, и т.д.). Если такие пакеты есть - проверьте наличие новостей на https://www.archlinux.org/ и просмотрите последние сообщения на форуме, возможно кто-то уже столкнулся с проблемами при обновлении.<br />
<br />
Если известно/ожидается, что после обновления могут возникнуть проблемы - pacman выведет соответствующее сообщение. Если вы упустили какую-то информацию, которую вывел pacman, то её можно еще раз просмотреть в ({{ic|/var/log/pacman.log}}). <br />
<br />
Теперь, '''если не было никаких предупреждений от pacman, отсутствуют соответствующие новости на https://www.archlinux.org/ и нет сообщений относительно обновлений на форуме''', имеет смысл обратиться за помощью на форум, [[IRC Channel|IRC-канал]], или [[Downgrading Packages|откатить пакет к работающей версии]].<br />
<br />
Перечитайте последний абзац.}}<br />
<br />
{{FAQ<br />
|question=Я знаю что для пакета ABC доступны обновления, но pacman сообщает мне, что система в актуальном состоянии!<br />
|answer=Зеркала pacman синхронизируются не мгновенно. Иногда может пройти более 24 часов, прежде чем обновления станут доступны вам. <br />
<br />
В качестве решения можно посоветовать сменить зеркало. На [https://www.archlinux.org/mirrors/status/ MirrorStatus] можно посмотреть состояние зеркал.}}<br />
<br />
{{FAQ<br />
|question=При обновлении появляется сообщение об ошибке: "file exists in filesystem" ("файл существует в файловой системе")!<br />
|answer=Дополнительно: ''Взято из https://bbs.archlinux.org/viewtopic.php?id=56373 у Misfit138.''<br />
<br />
error: could not prepare transaction<br />
error: failed to commit transaction (conflicting files)<br />
package: /path/to/file exists in filesystem<br />
Errors occurred, no packages were upgraded.<br />
<br />
Почему это происходит: pacman при обнаружении конфликтующих файлов, по умолчанию, не будет их перезаписывать автоматически. Это не ошибка, так сделано специально. (узнать какому пакету принадлежит файл, если таковой имеется, можно с помощью {{ic|pacman -Qo}}.)<br />
<br />
Вопрос решается тривиально. Сначала проверьте не принадлежит ли файл другому пакету: ({{ic|pacman -Qo /path/to/file}}). Если принадлежит - создайте [[Reporting Bug Guidelines|отчет об ошибке]]. Если проблемный файл не нужен другим пакетам - переименуйте его и перезапустите команду обновления. Если в дальнейшем проблем не возникнет, то старый файл можно удалить.}}<br />
<br />
{{FAQ<br />
|question=При установке пакета я получаю сообщение об ошибке: "not found in sync db"<br />
|answer=Для начала убедитесь, что пакет вообще существует (и вы нигде не опечатались!). Если пакет не существует, то проблема может быть в том, что ваша база пакетов не синхронизирована с репозиториями или репозитории неправильно настроены. Для принудительного обновления списка пакетов попробуйте выполнить {{ic|pacman -Syy}}.}}<br />
<br />
{{FAQ<br />
|question=pacman несколько раз обновляет один и тот же пакет!<br />
|answer=Это может быть связано с дублированием записей в {{ic|/var/lib/pacman/local/}}, к примеру имеется два экземпляра {{ic|linux}}. {{ic|pacman -Qi}} выведет правильную версию, а {{ic|pacman -Qu}} покажет её как устаревшую и, следовательно, требующую обновления.<br />
<br />
Решение: удалить лишнюю запись из {{ic|/var/lib/pacman/local/}}.<br />
<br />
{{Note|pacman версии 3.4, в случае обнаружения повторяющихся записей, должен вывести сообщение об ошибке.}}}}<br />
<br />
{{FAQ<br />
|question=pacman сбоит при обновлении!<br />
|answer=Если при попытке удаления, переустановки или обновления пакетов pacman падает с ошибкой "database write" ("записи в базу данных"):<br />
#Загрузитесь используя Arch live CD<br />
#Смонтируйте корневую файловую систему<br />
#Обновите базу данных pacman с помощью {{ic|pacman -Syy}}<br />
#Переустановите сломанный пакет через {{ic|pacman -r /путь/к/корневому_разделу -S package}}}}<br />
<br />
{{FAQ<br />
|question=Я установил программу используя {{ic|make install}}; теперь эти файлы не принадлежат ни одному из пакетов!<br />
|answer=При обнаружении "конфликтующих файлов", чтобы их не перезаписывать вручную, можно использовать pacman с ключом {{ic|-f}} ({{ic|pacman -Sf}}).<br />
<br />
Почитайте [[pacman Tips#Getting a list of files not owned by any package]], о скрипте, проверяющем файловую систему на наличие ''брошенных'' файлов.}}<br />
<br />
{{FAQ<br />
|question=Мне нужен пакет с определенным файлом. Как узнать какому пакету это файл принадлежит?<br />
|answer=Установите [[pkgtools]], в его состав входит {{ic|pkgfile}}, использующий отдельную базу данных со всеми файлами и связанными с ними пакетами.}}<br />
<br />
{{FAQ<br />
|question=pacman полностью не работоспособен! Как мне его переустановить?<br />
|answer=Если pacman не работает и не получается его восстановить - скачайте вручную пакеты ({{Pkg|openssl}}, {{Pkg|libarchive}} и {{Pkg|pacman}}) и распакуйте их в корневой раздел. Бинарный pacman будет восстановлен вместе с конфигурационным файлом по умолчанию. Затем, для поддержания целостности базы данных пакетов, переустановите скачанные пакеты стандартными средствами pacman. Дополнительную информацию и пример (устарел) скрипта, автоматизирующего этот процесс, можно найти в [https://bbs.archlinux.org/viewtopic.php?id=95007 этом] сообщении форума.}}<br />
<br />
{{FAQ<br />
|question=После обновления системы получаю следующее сообщение об ошибке - "unable to find root device", после перезагрузки система не загружается.<br />
|answer=Вероятно при обновлении ядра "поломалась" initramfs (например при использовании pacman с опцией --force). Для восстановления работоспособности выполните следующие действия.<br />
<br />
Загрузитесь с Arch live-cd. После загрузки выполните:<br />
<br />
# mkdir /mnt/arch<br />
# mount /dev/sdx /mnt/arch (ваш корневой раздел)<br />
# cd /mnt/arch<br />
# mount -t proc proc proc/<br />
# mount -t sysfs sys sys/<br />
# mount -o bind /dev dev/<br />
# mount /dev/sdx boot/ (ваш раздел /boot)<br />
# chroot . /bin/bash<br />
# pacman -Syu<br />
# pacman -S udev<br />
# pacman -S mkinitcpio<br />
# mkinitcpio -p linux<br />
<br />
<br />
Затем отмонтируйте смонтированные разделы и перезагрузитесь.}}</div>
Vadik
https://wiki.archlinux.org/index.php?title=Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=192493
Pacman (Русский)
2012-04-01T16:44:57Z
<p>Vadik: /* Репозитории */</p>
<hr />
<div>[[Category:Управление пакетами (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|pacman}} {{Lowercase title}}<br />
<br />
{{Article summary start|Описание}}<br />
{{Article summary text|pacman - [[Wikipedia:Package management system|пакетный менеджер]] Arch Linux. Менеджеры пакетов используются для установки, обновления и удаления программного обеспечения. В данной статье рассматриваются основные приемы и советы по устранению неполадок.}}<br />
{{Article summary heading|Обзор}}<br />
{{Article summary text|{{Package management overview}}}}<br />
{{Article summary heading|Дополнительно}}<br />
{{Article summary wiki|Downgrading Packages (Русский)}}<br />
{{Article summary wiki|Improve Pacman Performance (Русский)}}<br />
{{Article summary wiki|pacman GUI Frontends (Русский)}}<br />
{{Article summary wiki|pacman Rosetta}}<br />
{{Article summary wiki|pacman Tips}}<br />
{{Article summary wiki|Pacman package signing}}<br />
{{Article summary wiki|FAQ_(Русский)#Управление_пакетами}}<br />
{{Article summary wiki|pacman-key (Русский)}}<br />
{{Article summary wiki|Pacnew and Pacsave Files}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary link|libalpm(3) Manual Page|https://www.archlinux.org/pacman/libalpm.3.html}}<br />
{{Article summary link|pacman(8) Manual Page|https://www.archlinux.org/pacman/pacman.8.html}}<br />
{{Article summary link|pacman.conf(5) Manual Page|https://www.archlinux.org/pacman/pacman.conf.5.html}}<br />
{{Article summary link|repo-add(8) Manual Page|https://www.archlinux.org/pacman/repo-add.8.html}}<br />
{{Article summary end}}<br />
<br />
<br />
[[Wikipedia:Package management system|Менеджер пакетов]] '''[https://archlinux.org/pacman/ pacman]''' &mdash; является одной из основных особенностей Arch Linux. Он сочетает в себе простой формат бинарных пакетов и легкую в использовании систему сборки (смотрите [[Arch Build System]] и [[makepkg]]). '''Pacman''' позволяет пользователям с легкостью управлять и настраивать под себя пакеты, вне зависимости от того, из официального ли они репозитария Arch или собранные самостоятельно.<br />
<br />
'''Pacman''', синхронизируя пакеты с главным сервером, поддерживает систему в актуальном состоянии. Такая клиент-серверная модель, позволяет скачивать/устанавливать пакеты со всеми требуемыми зависимостями всего одной командой.<br />
<br />
'''Pacman''' написан на языке C и использует формат пакетов {{ic|.pkg.tar.xz}}.<br />
<br />
{{Tip|Официальный пакет {{Pkg|pacman}} включает в себя много дополнительных полезных инсрументов, таких как [[makepkg]], pactree, vercomp и другие. Весь перечень можно получить с помощью {{ic|pacman -Ql pacman <nowiki>|</nowiki> grep bin}} }}<br />
<br />
== Конфигурация ==<br />
<br />
Основные настройки pacman находятся в {{ic|/etc/pacman.conf}}. В этом файле, пользователь может указать все нужные ему настройки программы. Подробнее о конфигурировании можно прочесть в [https://www.archlinux.org/pacman/pacman.conf.5.html man pacman.conf].<br />
<br />
=== Основные Параметры ===<br />
<br />
Основные параметры находятся в секции {{ic|[options]}}. Для получения дополнительной информации о параметрах - прочтите страницу man или изучите установленный по умолчанию файл {{ic|pacman.conf}}.<br />
<br />
==== Пропуск обновления пакетов ====<br />
<br />
Для пропуска обновления какого-либо пакета, добавьте его название в строку:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета</nowiki>}}<br />
<br />
В случае, если необходимо в строке {{ic|IgnorePkg}} перечислить несколько пакетов - разделяйте имена пакетов пробелами:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета1 имя_пакета2 имя_пакета3</nowiki>}}<br />
<br />
==== Пропуск обновления группы пакетов ====<br />
<br />
Как и в случае с пакетом, вы также можете запретить обновления группы пакетов, например так:<br />
<br />
{{bc|<nowiki>IgnoreGroup=имя_группы</nowiki>}}<br />
<br />
=== Репозитории ===<br />
<br />
В этом разделе файла {{ic|pacman.conf}} указываются репозитории, которые будут использоваться. Их можно указать прямо здесь или подключить из другого файла.<br />
<br />
Все официальные репозитории перечислены в одном файле - {{ic|/etc/pacman.d/mirrorlist}}, для доступа к ним используется переменная {{ic|$repo}}, таким образом достаточно поддерживать в актуальном состоянии только один список.<br />
<br />
Далее приведен пример использования [[mirrors|зеркал]] [[Official Repositories|официальных репозиториев]], которые перечислены в {{ic|/etc/pacman.d/mirrorlist}}.<br />
<br />
{{bc|<nowiki><br />
<br />
#[testing]<br />
#SigLevel = PackageRequired <br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
#SigLevel = PackageRequired<br />
Include=/etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#[community-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#Если в вашей x86_64 системе необходимо запускать 32-битные программы,<br />
#раскоментируйте нужные multilib репозитории.<br />
<br />
#[multilib-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[multilib]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# Использование собственного репозитория. Обратитесь к справочной странице pacman для<br />
# получения дополнительной информации по созданию собственных репозиториев.<br />
<br />
#[custom]<br />
#SigLevel = Optional TrustAll<br />
#Server = file:///home/custompkgs<br />
</nowiki>}}<br />
<br />
{{Note|Будьте осторожны при использовании репозитория [testing]. Пакеты в нём активно разрабатываются и обновляются, это может сказаться на стабильности и работоспособности других пакетов или системы в целом. Людям, использующим репозиторий [testing], для своевременного получения информации рекомендуется подписаться на [https://mailman.archlinux.org/mailman/listinfo/arch-dev-public список рассылки arch-dev-public].}}<br />
<br />
=== Безопасность пакетов ===<br />
<br />
В Pacman 4 реализован дополнительный уровень безопасности устанавливаемых пакетов - подписи пакетов. Для включения проверки подписей перейдите [[pacman-key|сюда]].<br />
<br />
== Использование ==<br />
<br />
Чтобы узнать обо всех возможностях pacman - изучите [https://archlinux.org/pacman/pacman.8.html man pacman]. Примеры ниже - это только небольшая подборка доступных операций.<br />
<br />
===Установка Пакетов===<br />
<br />
====Установка определенных пакетов====<br />
Для установки одного пакета или группы пакетов (включая зависимости), используйте следующую команду:<br />
<br />
# pacman -S имя_пакета1 имя_пакета2 ...<br />
<br />
Если пакет имеет несколько версий в разных репозиториях (например в [extra] и [testing]). Можно указать, откуда именно следует установить пакет:<br />
<br />
# pacman -S extra/имя_пакета<br />
# pacman -S testing/имя_пакета<br />
<br />
====Установка группы пакетов====<br />
Некоторые пакеты принадлежат к группе пакетов, которые могут быть установлены одновременно. Например, при выполнении команды:<br />
<br />
# pacman -S gnome<br />
будут установлены все пакеты входящие в группу {{ic|gnome}}. Чтобы увидеть список пакетов принадлежащих к группе gnome, выполните:<br />
<br />
# pacman -Sg gnome<br />
<br />
Перечень доступных групп пакетов можно изучить посетив https://www.archlinux.org/groups/.<br />
<br />
{{Note|Если не будет использована опция {{ic|--needed}}, то при установке группы будут переустановлены все ранее установленные в систему и принадлежащие этой группе пакеты (даже если установленные в системе пакеты будут иметь последнюю доступную версию).}}<br />
<br />
{{Warning|1=При установке не достаточно одного обновления списка пакетов (например {{ic|pacman -Sy имя_пакета}}) - могут возникнуть проблемы с зависимостями, смотрите разделы [https://bbs.archlinux.org/viewtopic.php?id=89328] и [[#Частичные обновления официально не поддерживаются|Частичные обновления не поддерживаются]]. В первую очередь, перед установкой новых пакетов, выполняйте полное [[#Обновление Системы|обновление системы]].}}<br />
<br />
=== Удаление Пакетов ===<br />
<br />
Для удаления пакета, без удаления установленных зависимостей:<br />
<br />
# pacman -R имя_пакета<br />
<br />
Для удаления пакета со всеми зависимостями, не используемыми другими установленными пакетами:<br />
<br />
# pacman -Rs имя_пакета<br />
<br />
Для удаления пакета, его зависимостей, и всех пакетов зависящих от целевого пакета:<br />
<br />
{{Warning|Эта операция рекурсивна и должна использоваться с осторожностью, так как появляется риск удалить много потенциально необходимых пакетов.}}<br />
<br />
# pacman -Rsc имя_пакета<br />
<br />
По умолчанию pacman создает резервные копии конфигурационных файлов удаляемых приложений с помощью добавления к ним расширения: {{ic|.pacsave}}. Если вы хотите удалить и эти файлы - используйте ключ {{ic|-n}}:<br />
<br />
# pacman -Rn имя_пакета<br />
<br />
{{Note|pacman не удаляет конфигурационных файлов, созданных самими приложениями (например "dot-файлы" в вашей домашней папке).}}<br />
<br />
===Обновление Системы===<br />
<br />
pacman может обновить все пакеты системы одной командой. Количество пакетов зависит от того, насколько свежие пакеты стоят в вашей системе. Лучший вариант - синхронизация базы данных репозиториев '''И''' обновление вашей системы одной командой:<br />
<br />
# pacman -Syu<br />
<br />
{{Warning|В связи с тем, что Arch является постоянно-обновляемым дистрибутивом, пользователям следует помнить, что после или в процессе обновления могут возникнуть непредвиденные трудности. Поэтому обновляться следует с осторожностью. Это означает, что если, например, ожидаются большие изменения или нововведения в обновляемых пакетах, то обновлять систему лучше тогда, когда у пользователя будет достаточно свободного времени и он будет готов к решению возможных проблем.}}<br />
<br />
pacman является мощным инструментом по управлению пакетами, но он не сможет обработать все возможные ситуации. Если вас это смущает - прочтите [[The Arch Way|Путь Arch Linux]]. Пользователь должен быть внимателен и сам заниматься обеспечением работоспособности своей системы. '''При выполнении обновления системы, крайне важно, читать и осмысливать всю информацию которую выводит pacman.''' Если вы изменяли конфигурационный файл, то при обновлении, во избежание перезаписи, будет создан новый конфигурационный файл {{ic|.pacnew}}. pacman предложит объединить его с вашим конфигурационным файлом. Выполнять объединение файлов придется вручную и, лучше всего, сразу после обновления. Для получения дополнительной информации обратитесь к руководству [[Pacnew and Pacsave Files]].<br />
<br />
{{Tip|Не забывайте, что вывод pacman заносится в {{ic|/var/log/pacman.log}}.}}<br />
<br />
Перед обновлением желательно посетить [https://www.archlinux.org/ главную страницу Arch Linux], [https://www.archlinux.org.ru/ главную страницу русскоязычного сообщества Arch Linux] и проверить там последние новости (или подписаться на канал RSS): для обновлений требующих дополнительного вмешательства (если выполнения указанных pacman-ом действий не достаточно) будут добавлены соответствующие новости.<br />
<br />
Если решить проблемы согласно инструкциям не удаётся - поищите подобные сообщения на форуме. Вполне возможно, что другие пользователи столкнувшиеся с подобными проблемами уже предоставили варианты по её решению.<br />
<br />
=== Запросы к Базе Данных Пакетов ===<br />
<br />
pacman, с помощью флага {{ic|-Q}}, может искать пакеты в локальной базе данных; см.:<br />
<br />
$ pacman -Q --help<br />
<br />
и, с помощью флага {{ic|-S}}, в базе данных (репозитариях); см.:<br />
<br />
$ pacman -S --help<br />
<br />
pacman умеет искать пакеты в базе данных, как по названиям, так и по описаниям:<br />
<br />
$ pacman -Ss условие1 условие2 ...<br />
<br />
Поиск пакета по имени в базе данных (вывод без дополнительной информации):<br />
<br />
$ pacman -Sqs условие1 условие2 ...<br />
<br />
Для поиска среди установленных пакетов:<br />
<br />
$ pacman -Qs условие1 условие2 ...<br />
<br />
Для отображения обширной информации о данном пакете:<br />
<br />
$ pacman -Si имя_пакета<br />
<br />
для установленных пакетов:<br />
<br />
$ pacman -Qi имя_пакета<br />
<br />
Использование сдвоенного флага {{ic|-i}} позволит просмотреть список резервных копий файлов и список измененных файлов:<br />
<br />
$ pacman -Qii имя_пакета<br />
<br />
Для получения списка файлов установленного пакета:<br />
<br />
$ pacman -Ql имя_пакета<br />
<br />
Для получения списка файлов неустановленного пакета можно использовать утилиту {{ic|pkgfile}}, из состава пакета {{pkg|pkgtools}}, или {{ic|nosr}}, входящую в пакет {{aur|nosr-git}}, который расположен в [[AUR]].<br />
<br />
Чтобы узнать какому пакету принадлежит нужный файл:<br />
<br />
$ pacman -Qo /путь/к/файлу/имя_файла<br />
<br />
Для получения списка пакетов, которые больше не требуются как зависимости (пакеты, которые могут быть безопасно удалены или сироты):<br />
<br />
$ pacman -Qdt<br />
<br />
Для отображения зависимостей в виде дерева:<br />
<br />
$ pactree имя_пакета<br />
<br />
Для получения списка установленных пакетов, которые зависят от вашего пакета - можно воспользоваться утилитой {{ic|whoneeds}} из состава пакета {{pkg|pkgtools}}:<br />
<br />
$ whoneeds имя_пакета<br />
<br />
=== Получение Списка Установленных Пакетов для Быстрого Восстановления Системы ===<br />
<br />
Хорошей практикой явлется сохранение списка всех установленых пакетов. Если ваша система "упала" и её сложно восстановить, pacman может легко переустановить эти пакеты.<br />
<br />
Сначала, сохраните в список пакетов (доступных в репозитории):<br />
<br />
pacman -Qqe | grep -v "$(pacman -Qmq)" > pkglist<br />
<br />
# безопасная, но и более сложная альтернатива (во избежание удаления частичных совпадений)<br />
comm -13 <(pacman -Qmq | sort) <(pacman -Qqe | sort) > pkglist<br />
<br />
Сохраните этот файл на флешке или на другом носителе.<br />
<br />
Скопируйте файл pkglist в новую систему, перейдите в эту папку.<br />
<br />
Для восстановления используйте команду:<br />
pacman -S $(cat pkglist)<br />
<br />
=== Получение Списка Файлов не Принадлежащих Любому Пакету ===<br />
<br />
Если вы всегда хотите держать свою систему в чистоте и уважаете [[Путь Arch]], вы должны иногда проверять файлы отсутствующие в базе данных pacman. Эти файлы, зачастую установлены сторонними приложениями с использованием '''./configure; make; make install''' и т.п. Вы можете найти все эти установленные файлы (или симлинки) используя этот простой скрипт:<br />
<br />
#!/bin/bash<br />
time /usr/bin/pacman -Ql | cut -d ' ' -f 2- | sort -u > db.txt<br />
time find /arch /bin /boot /etc /lib /opt /sbin /usr 2>/dev/null | while read i; do<br />
if [ ! -d "$i" ]; then<br />
echo "$i"<br />
fi;<br />
done | sort -u > fs.txt<br />
time comm -23 fs.txt db.txt > non-db.txt<br />
<br />
#для проверки:<br />
#cat non-db.txt | while read i; do pacman -Qo "$i" 2>&1; done | tee test.txt<br />
<br />
заметьте - все файлы указанные в non-db.txt НЕ БУДУТ удалены без подтверждения. Здесь могут находиться конфигурационные файлы, журналы и др. Используйте этот список только если знаете, что вы делаете.<br />
<br />
=== Дополнительные команды ===<br />
<br />
Обновление системы и установка списка пакетов (за одну операцию):<br />
<br />
# pacman -Syu имя_пакета1 имя_пакета2 ...<br />
<br />
Скачать пакет, но не устанавливать его:<br />
<br />
# pacman -Sw имя_пакета<br />
<br />
Установить локальный пакет (не из репозитория):<br />
<br />
# pacman -U /путь/к/пакету/имя_пакета-version.pkg.tar.xz<br />
<br />
Установить 'не локальный' пакет (не из репозитория):<br />
<br />
# pacman -U <nowiki>http://www.example.com/repo/example.pkg.tar.xz</nowiki><br />
<br />
Удалить из кэша ({{ic|/var/cache/pacman/pkg}}) неустановленные пакеты:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Поэтому, в случае возникновения проблем после обновлениий - появятся дополнительные трудности, связанные с откатом версий пакетов.}}<br />
<br />
# pacman -Sc<br />
<br />
Полная очистка кэша пакетов:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Выполняйте это только в том случае, если у вас всё нормально работает и вы уверены, что вам не понадобится [[Downgrade_packages| откатывать]] какой-либо пакет.}}<br />
<br />
# pacman -Scc<br />
<br />
В качестве альтернативы ключам ''-Sc'' и ''-Scc'' - можно использовать пакет {{AUR|Cacheclean}}, доступный в [[AUR]]. Это скрипт на python, который позволяет выборочно очищать кэш pacman'а от старых версий пакетов.<br />
<br />
===Частичные обновления официально не поддерживаются===<br />
Arch Linux постоянно обновляемый дистрибутив и это значит, что в репозиториях всегда находятся новые версии [[Wikipedia:Library (computing)|библиотек]]. Разработчики и доверенные пользователи собирают пакеты для репозиториев с использованием этих библиотек. Для пакетов установленных локально (например пакеты из [[Arch User Repository|AUR]]), нужно самостоятельно решать вопрос с зависимостями согласно данным [[Wikipedia:soname|soname]].<br />
<br />
Именно поэтому частичное обновление '''не поддерживается'''. Не используйте {{ic|pacman -Sy package}} или другие эквиваленты {{ic|pacman -Sy}} и {{ic|pacman -S package}}. Всегда перед установкой пакетов синхронизируйте репозитории и обновляйте систему полностью. По той же самой причине нужно быть осторожными при использовании {{ic|IgnorePkg}} и {{ic|IgnoreGroup}}.<br />
<br />
Если после частичного обновления оказалось, что бинарные файлы не могут найти нужных версий библиотек и проблему '''не возможно "решить" созданием символической ссылки''' (библиотеки не имеют '''обратной совместимости''') - выполните {{ic|pacman -Syu}}, как правило этого будет достаточно для устранения проблемы.<br />
<br />
== Устранение проблем ==<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init, но отсутствуют ssh / X или генераторы случайных чисел. Как мне получить энтропию?<br />
|answer=Для решения проблемы нужно перемещать указатель мыши, нажимать на клавиатуре случайные кнопки или запустить дисковую активность, например с помощью {{ic|updatedb}}. Будьте терпиливы, процесс может затянуться на длительное время. При этом переход в другую консоль, по Alt+F2-6, временно работать не будет.}}<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init через ssh. Как мне получить энтропию?<br />
|answer=На целевой машине соберите и установите пакет {{AUR|rng-tools}} из [[AUR]]. Подключитесь через ssh и выполните следующие команды:<br />
{{bc|# sed -i 's/0/10/' /etc/conf.d/rngd<br />
# rngd -f -r /dev/urandom &<br />
# pacman-key --init}}<br />
<br />
После успешного выполнения pacman-key просто остановите rngd и удалите пакет.<br />
<br />
{{bc|# killall rngd<br />
# pacman -Rns rng-tools}}<br />
}}<br />
<br />
{{FAQ<br />
|question=Pacman не находит PGP ключи для импорта и не обновляет пакеты. Как можно это исправить?<br />
|answer=На самом деле проблема не в pacman. Проблема в сервере ключей, используемом по умолчанию. Измените сервер ключей на более надежный таким способом:<br />
<br />
# sed -i '/keyserver/ s,keys.gnupg.net,pgp.mit.edu,' /etc/pacman.d/gnupg/gpg.conf<br />
Pacman4 теперь готов к использованию.}}<br />
<br />
{{FAQ<br />
|question=Обновление пакета XYZ сломало мою систему!<br />
|answer=Arch Linux - передовой, постоянно обновляемый дистрибутив. Обновления для пакетов становятся доступными тогда, когда их посчитают достаточно стабильными для повседневного использования. Тем не менее, обновления иногда требуют вмешательства пользователя: может потребоваться обновление конфигурационных файлов, могут измениться дополнительные зависимости, и т.д.<br />
<br />
Запомните основное правило - не обновляйте систему "вслепую". Всегда внимательно изучайте список обновляемых пакетов. Обращайте внимание на обновление "критически важных" компонентов ({{ic|linux}}, {{ic|xorg-server}}, и т.д.). Если такие пакеты есть - проверьте наличие новостей на https://www.archlinux.org/ и просмотрите последние сообщения на форуме, возможно кто-то уже столкнулся с проблемами при обновлении.<br />
<br />
Если известно/ожидается, что после обновления могут возникнуть проблемы - pacman выведет соответствующее сообщение. Если вы упустили какую-то информацию, которую вывел pacman, то её можно еще раз просмотреть в ({{ic|/var/log/pacman.log}}). <br />
<br />
Теперь, '''если не было никаких предупреждений от pacman, отсутствуют соответствующие новости на https://www.archlinux.org/ и нет сообщений относительно обновлений на форуме''', имеет смысл обратиться за помощью на форум, [[IRC Channel|IRC-канал]], или [[Downgrading Packages|откатить пакет к работающей версии]].<br />
<br />
Перечитайте последний абзац.}}<br />
<br />
{{FAQ<br />
|question=Я знаю что для пакета ABC доступны обновления, но pacman сообщает мне, что система в актуальном состоянии!<br />
|answer=Зеркала pacman синхронизируются не мгновенно. Иногда может пройти более 24 часов, прежде чем обновления станут доступны вам. <br />
<br />
В качестве решения можно посоветовать сменить зеркало. На [https://www.archlinux.org/mirrors/status/ MirrorStatus] можно посмотреть состояние зеркал.}}<br />
<br />
{{FAQ<br />
|question=При обновлении появляется сообщение об ошибке: "file exists in filesystem" ("файл существует в файловой системе")!<br />
|answer=Дополнительно: ''Взято из https://bbs.archlinux.org/viewtopic.php?id=56373 у Misfit138.''<br />
<br />
error: could not prepare transaction<br />
error: failed to commit transaction (conflicting files)<br />
package: /path/to/file exists in filesystem<br />
Errors occurred, no packages were upgraded.<br />
<br />
Почему это происходит: pacman при обнаружении конфликтующих файлов, по умолчанию, не будет их перезаписывать автоматически. Это не ошибка, так сделано специально. (узнать какому пакету принадлежит файл, если таковой имеется, можно с помощью {{ic|pacman -Qo}}.)<br />
<br />
Вопрос решается тривиально. Сначала проверьте не принадлежит ли файл другому пакету: ({{ic|pacman -Qo /path/to/file}}). Если принадлежит - создайте [[Reporting Bug Guidelines|отчет об ошибке]]. Если проблемный файл не нужен другим пакетам - переименуйте его и перезапустите команду обновления. Если в дальнейшем проблем не возникнет, то старый файл можно удалить.}}<br />
<br />
{{FAQ<br />
|question=При установке пакета я получаю сообщение об ошибке: "not found in sync db"<br />
|answer=Для начала убедитесь, что пакет вообще существует (и вы нигде не опечатались!). Если пакет не существует, то проблема может быть в том, что ваша база пакетов не синхронизирована с репозиториями или репозитории неправильно настроены. Для принудительного обновления списка пакетов попробуйте выполнить {{ic|pacman -Syy}}.}}<br />
<br />
{{FAQ<br />
|question=pacman несколько раз обновляет один и тот же пакет!<br />
|answer=Это может быть связано с дублированием записей в {{ic|/var/lib/pacman/local/}}, к примеру имеется два экземпляра {{ic|linux}}. {{ic|pacman -Qi}} выведет правильную версию, а {{ic|pacman -Qu}} покажет её как устаревшую и, следовательно, требующую обновления.<br />
<br />
Решение: удалить лишнюю запись из {{ic|/var/lib/pacman/local/}}.<br />
<br />
{{Note|pacman версии 3.4, в случае обнаружения повторяющихся записей, должен вывести сообщение об ошибке.}}}}<br />
<br />
{{FAQ<br />
|question=pacman сбоит при обновлении!<br />
|answer=Если при попытке удаления, переустановки или обновления пакетов pacman падает с ошибкой "database write" ("записи в базу данных"):<br />
#Загрузитесь используя Arch live CD<br />
#Смонтируйте корневую файловую систему<br />
#Обновите базу данных pacman с помощью {{ic|pacman -Syy}}<br />
#Переустановите сломанный пакет через {{ic|pacman -r /путь/к/корневому_разделу -S package}}}}<br />
<br />
{{FAQ<br />
|question=Я установил программу используя {{ic|make install}}; теперь эти файлы не принадлежат ни одному из пакетов!<br />
|answer=При обнаружении "конфликтующих файлов", чтобы их не перезаписывать вручную, можно использовать pacman с ключом {{ic|-f}} ({{ic|pacman -Sf}}).<br />
<br />
Почитайте [[pacman Tips#Getting a list of files not owned by any package]], о скрипте, проверяющем файловую систему на наличие ''брошенных'' файлов.}}<br />
<br />
{{FAQ<br />
|question=Мне нужен пакет с определенным файлом. Как узнать какому пакету это файл принадлежит?<br />
|answer=Установите [[pkgtools]], в его состав входит {{ic|pkgfile}}, использующий отдельную базу данных со всеми файлами и связанными с ними пакетами.}}<br />
<br />
{{FAQ<br />
|question=pacman полностью не работоспособен! Как мне его переустановить?<br />
|answer=Если pacman не работает и не получается его восстановить - скачайте вручную пакеты ({{Pkg|openssl}}, {{Pkg|libarchive}} и {{Pkg|pacman}}) и распакуйте их в корневой раздел. Бинарный pacman будет восстановлен вместе с конфигурационным файлом по умолчанию. Затем, для поддержания целостности базы данных пакетов, переустановите скачанные пакеты стандартными средствами pacman. Дополнительную информацию и пример (устарел) скрипта, автоматизирующего этот процесс, можно найти в [https://bbs.archlinux.org/viewtopic.php?id=95007 этом] сообщении форума.}}<br />
<br />
{{FAQ<br />
|question=После обновления системы получаю следующее сообщение об ошибке - "unable to find root device", после перезагрузки система не загружается.<br />
|answer=Вероятно при обновлении ядра "поломалась" initramfs (например при использовании pacman с опцией --force). Для восстановления работоспособности выполните следующие действия.<br />
<br />
Загрузитесь с Arch live-cd. После загрузки выполните:<br />
<br />
# mkdir /mnt/arch<br />
# mount /dev/sdx /mnt/arch (ваш корневой раздел)<br />
# cd /mnt/arch<br />
# mount -t proc proc proc/<br />
# mount -t sysfs sys sys/<br />
# mount -o bind /dev dev/<br />
# mount /dev/sdx boot/ (ваш раздел /boot)<br />
# chroot . /bin/bash<br />
# pacman -Syu<br />
# pacman -S udev<br />
# pacman -S mkinitcpio<br />
# mkinitcpio -p linux<br />
<br />
<br />
Затем отмонтируйте смонтированные разделы и перезагрузитесь.}}</div>
Vadik
https://wiki.archlinux.org/index.php?title=Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=192121
Pacman (Русский)
2012-03-29T09:55:19Z
<p>Vadik: /* Устранение проблем */</p>
<hr />
<div>[[Category:Управление пакетами (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|pacman}} {{Lowercase title}}<br />
<br />
{{Article summary start|Описание}}<br />
{{Article summary text|pacman - [[Wikipedia:Package management system|пакетный менеджер]] Arch Linux. Менеджеры пакетов используются для установки, обновления и удаления программного обеспечения. В данной статье рассматриваются основные приемы и советы по устранению неполадок.}}<br />
{{Article summary heading|Обзор}}<br />
{{Article summary text|{{Package management overview}}}}<br />
{{Article summary heading|Дополнительно}}<br />
{{Article summary wiki|Downgrading Packages (Русский)}}<br />
{{Article summary wiki|Improve Pacman Performance (Русский)}}<br />
{{Article summary wiki|pacman GUI Frontends (Русский)}}<br />
{{Article summary wiki|pacman Rosetta}}<br />
{{Article summary wiki|pacman Tips}}<br />
{{Article summary wiki|Pacman package signing}}<br />
{{Article summary wiki|FAQ_(Русский)#Управление_пакетами}}<br />
{{Article summary wiki|pacman-key (Русский)}}<br />
{{Article summary wiki|Pacnew and Pacsave Files}}<br />
{{Article summary heading|Полезные ссылки}}<br />
{{Article summary link|libalpm(3) Manual Page|https://www.archlinux.org/pacman/libalpm.3.html}}<br />
{{Article summary link|pacman(8) Manual Page|https://www.archlinux.org/pacman/pacman.8.html}}<br />
{{Article summary link|pacman.conf(5) Manual Page|https://www.archlinux.org/pacman/pacman.conf.5.html}}<br />
{{Article summary link|repo-add(8) Manual Page|https://www.archlinux.org/pacman/repo-add.8.html}}<br />
{{Article summary end}}<br />
<br />
<br />
[[Wikipedia:Package management system|Менеджер пакетов]] '''[https://archlinux.org/pacman/ pacman]''' &mdash; является одной из основных особенностей Arch Linux. Он сочетает в себе простой формат бинарных пакетов и легкую в использовании систему сборки (смотрите [[Arch Build System]] и [[makepkg]]). '''Pacman''' позволяет пользователям с легкостью управлять и настраивать под себя пакеты, вне зависимости от того, из официального ли они репозитария Arch или собранные самостоятельно.<br />
<br />
'''Pacman''', синхронизируя пакеты с главным сервером, поддерживает систему в актуальном состоянии. Такая клиент-серверная модель, позволяет скачивать/устанавливать пакеты со всеми требуемыми зависимостями всего одной командой.<br />
<br />
'''Pacman''' написан на языке C и использует формат пакетов {{ic|.pkg.tar.xz}}.<br />
<br />
{{Tip|Официальный пакет {{Pkg|pacman}} включает в себя много дополнительных полезных инсрументов, таких как [[makepkg]], pactree, vercomp и другие. Весь перечень можно получить с помощью {{ic|pacman -Ql pacman <nowiki>|</nowiki> grep bin}} }}<br />
<br />
== Конфигурация ==<br />
<br />
Основные настройки pacman находятся в {{ic|/etc/pacman.conf}}. В этом файле, пользователь может указать все нужные ему настройки программы. Подробнее о конфигурировании можно прочесть в [https://www.archlinux.org/pacman/pacman.conf.5.html man pacman.conf].<br />
<br />
=== Основные Параметры ===<br />
<br />
Основные параметры находятся в секции {{ic|[options]}}. Для получения дополнительной информации о параметрах - прочтите страницу man или изучите установленный по умолчанию файл {{ic|pacman.conf}}.<br />
<br />
==== Пропуск обновления пакетов ====<br />
<br />
Для пропуска обновления какого-либо пакета, добавьте его название в строку:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета</nowiki>}}<br />
<br />
В случае, если необходимо в строке {{ic|IgnorePkg}} перечислить несколько пакетов - разделяйте имена пакетов пробелами:<br />
<br />
{{bc|<nowiki>IgnorePkg=имя_пакета1 имя_пакета2 имя_пакета3</nowiki>}}<br />
<br />
==== Пропуск обновления группы пакетов ====<br />
<br />
Как и в случае с пакетом, вы также можете запретить обновления группы пакетов, например так:<br />
<br />
{{bc|<nowiki>IgnoreGroup=имя_группы</nowiki>}}<br />
<br />
=== Репозитории ===<br />
<br />
В этом разделе файла {{ic|pacman.conf}} указываются репозитории, которые будут использоваться. Их можно указать прямо здесь или подключить из другого файла.<br />
<br />
Все официальные репозитории перечислены в одном файле - {{ic|/etc/pacman.d/mirrorlist}}, для доступа к ним используется переменная {{ic|$repo}}, таким образом достаточно поддерживать в актуальном состоянии только один список.<br />
<br />
Далее приведен пример использования [[mirrors|зеркал]] [[Official Repositories|официальных репозиториев]], которые перечислены в {{ic|/etc/pacman.d/mirrorlist}}.<br />
<br />
{{bc|<nowiki><br />
<br />
#[testing]<br />
#SigLevel = PackageRequired <br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[core]<br />
#SigLevel = PackageRequired<br />
Include=/etc/pacman.d/mirrorlist<br />
<br />
[extra]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#[community-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[community]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
#Если в вашей x86_64 системе необходимо запускать 32-битные программы,<br />
#раскоментируйте нужные multilib репозитории.<br />
<br />
#[multilib-testing]<br />
#SigLevel = PackageRequired<br />
#Include = /etc/pacman.d/mirrorlist<br />
<br />
[multilib]<br />
#SigLevel = PackageOptional<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
# Использование собственного репозитория. Обратитесь к справочной странице pacman для<br />
# получения дополнительной информации по созданию собственных репозиториев.<br />
<br />
#[custom]<br />
#SigLevel = Optional TrustAll<br />
#Server = file:///home/custompkgs<br />
</nowiki>}}<br />
<br />
{{Note|Будьте осторожны при использовании репозитория [testing]. Пакеты в нём активно разрабатываются и обновляются, это может сказаться на стабильности и работоспособности других пакетов или системы в целом. Людям, использующим репозиторий [testing], для своевременного получения информации рекомендуется подписаться на [https://mailman.archlinux.org/mailman/listinfo/arch-dev-public список рассылки arch-dev-public].}}<br />
<br />
== Использование ==<br />
<br />
Чтобы узнать обо всех возможностях pacman - изучите [https://archlinux.org/pacman/pacman.8.html man pacman]. Примеры ниже - это только небольшая подборка доступных операций.<br />
<br />
===Установка Пакетов===<br />
<br />
====Установка определенных пакетов====<br />
Для установки одного пакета или группы пакетов (включая зависимости), используйте следующую команду:<br />
<br />
# pacman -S имя_пакета1 имя_пакета2 ...<br />
<br />
Если пакет имеет несколько версий в разных репозиториях (например в [extra] и [testing]). Можно указать, откуда именно следует установить пакет:<br />
<br />
# pacman -S extra/имя_пакета<br />
# pacman -S testing/имя_пакета<br />
<br />
====Установка группы пакетов====<br />
Некоторые пакеты принадлежат к группе пакетов, которые могут быть установлены одновременно. Например, при выполнении команды:<br />
<br />
# pacman -S gnome<br />
будут установлены все пакеты входящие в группу {{ic|gnome}}. Чтобы увидеть список пакетов принадлежащих к группе gnome, выполните:<br />
<br />
# pacman -Sg gnome<br />
<br />
Перечень доступных групп пакетов можно изучить посетив https://www.archlinux.org/groups/.<br />
<br />
{{Note|Если не будет использована опция {{ic|--needed}}, то при установке группы будут переустановлены все ранее установленные в систему и принадлежащие этой группе пакеты (даже если установленные в системе пакеты будут иметь последнюю доступную версию).}}<br />
<br />
{{Warning|1=При установке не достаточно одного обновления списка пакетов (например {{ic|pacman -Sy имя_пакета}}) - могут возникнуть проблемы с зависимостями, смотрите разделы [https://bbs.archlinux.org/viewtopic.php?id=89328] и [[#Частичные обновления официально не поддерживаются|Частичные обновления не поддерживаются]]. В первую очередь, перед установкой новых пакетов, выполняйте полное [[#Обновление Системы|обновление системы]].}}<br />
<br />
=== Удаление Пакетов ===<br />
<br />
Для удаления пакета, без удаления установленных зависимостей:<br />
<br />
# pacman -R имя_пакета<br />
<br />
Для удаления пакета со всеми зависимостями, не используемыми другими установленными пакетами:<br />
<br />
# pacman -Rs имя_пакета<br />
<br />
Для удаления пакета, его зависимостей, и всех пакетов зависящих от целевого пакета:<br />
<br />
{{Warning|Эта операция рекурсивна и должна использоваться с осторожностью, так как появляется риск удалить много потенциально необходимых пакетов.}}<br />
<br />
# pacman -Rsc имя_пакета<br />
<br />
По умолчанию pacman создает резервные копии конфигурационных файлов удаляемых приложений с помощью добавления к ним расширения: {{ic|.pacsave}}. Если вы хотите удалить и эти файлы - используйте ключ {{ic|-n}}:<br />
<br />
# pacman -Rn имя_пакета<br />
<br />
{{Note|pacman не удаляет конфигурационных файлов, созданных самими приложениями (например "dot-файлы" в вашей домашней папке).}}<br />
<br />
===Обновление Системы===<br />
<br />
pacman может обновить все пакеты системы одной командой. Количество пакетов зависит от того, насколько свежие пакеты стоят в вашей системе. Лучший вариант - синхронизация базы данных репозиториев '''И''' обновление вашей системы одной командой:<br />
<br />
# pacman -Syu<br />
<br />
{{Warning|В связи с тем, что Arch является постоянно-обновляемым дистрибутивом, пользователям следует помнить, что после или в процессе обновления могут возникнуть непредвиденные трудности. Поэтому обновляться следует с осторожностью. Это означает, что если, например, ожидаются большие изменения или нововведения в обновляемых пакетах, то обновлять систему лучше тогда, когда у пользователя будет достаточно свободного времени и он будет готов к решению возможных проблем.}}<br />
<br />
pacman является мощным инструментом по управлению пакетами, но он не сможет обработать все возможные ситуации. Если вас это смущает - прочтите [[The Arch Way|Путь Arch Linux]]. Пользователь должен быть внимателен и сам заниматься обеспечением работоспособности своей системы. '''При выполнении обновления системы, крайне важно, читать и осмысливать всю информацию которую выводит pacman.''' Если вы изменяли конфигурационный файл, то при обновлении, во избежание перезаписи, будет создан новый конфигурационный файл {{ic|.pacnew}}. pacman предложит объединить его с вашим конфигурационным файлом. Выполнять объединение файлов придется вручную и, лучше всего, сразу после обновления. Для получения дополнительной информации обратитесь к руководству [[Pacnew and Pacsave Files]].<br />
<br />
{{Tip|Не забывайте, что вывод pacman заносится в {{ic|/var/log/pacman.log}}.}}<br />
<br />
Перед обновлением желательно посетить [https://www.archlinux.org/ главную страницу Arch Linux], [https://www.archlinux.org.ru/ главную страницу русскоязычного сообщества Arch Linux] и проверить там последние новости (или подписаться на канал RSS): для обновлений требующих дополнительного вмешательства (если выполнения указанных pacman-ом действий не достаточно) будут добавлены соответствующие новости.<br />
<br />
Если решить проблемы согласно инструкциям не удаётся - поищите подобные сообщения на форуме. Вполне возможно, что другие пользователи столкнувшиеся с подобными проблемами уже предоставили варианты по её решению.<br />
<br />
=== Запросы к Базе Данных Пакетов ===<br />
<br />
pacman, с помощью флага {{ic|-Q}}, может искать пакеты в локальной базе данных; см.:<br />
<br />
$ pacman -Q --help<br />
<br />
и, с помощью флага {{ic|-S}}, в базе данных (репозитариях); см.:<br />
<br />
$ pacman -S --help<br />
<br />
pacman умеет искать пакеты в базе данных, как по названиям, так и по описаниям:<br />
<br />
$ pacman -Ss условие1 условие2 ...<br />
<br />
Поиск пакета по имени в базе данных (вывод без дополнительной информации):<br />
<br />
$ pacman -Sqs условие1 условие2 ...<br />
<br />
Для поиска среди установленных пакетов:<br />
<br />
$ pacman -Qs условие1 условие2 ...<br />
<br />
Для отображения обширной информации о данном пакете:<br />
<br />
$ pacman -Si имя_пакета<br />
<br />
для установленных пакетов:<br />
<br />
$ pacman -Qi имя_пакета<br />
<br />
Использование сдвоенного флага {{ic|-i}} позволит просмотреть список резервных копий файлов и список измененных файлов:<br />
<br />
$ pacman -Qii имя_пакета<br />
<br />
Для получения списка файлов установленного пакета:<br />
<br />
$ pacman -Ql имя_пакета<br />
<br />
Для получения списка файлов неустановленного пакета можно использовать утилиту {{ic|pkgfile}}, из состава пакета {{pkg|pkgtools}}, или {{ic|nosr}}, входящую в пакет {{aur|nosr-git}}, который расположен в [[AUR]].<br />
<br />
Чтобы узнать какому пакету принадлежит нужный файл:<br />
<br />
$ pacman -Qo /путь/к/файлу/имя_файла<br />
<br />
Для получения списка пакетов, которые больше не требуются как зависимости (пакеты, которые могут быть безопасно удалены или сироты):<br />
<br />
$ pacman -Qdt<br />
<br />
Для отображения зависимостей в виде дерева:<br />
<br />
$ pactree имя_пакета<br />
<br />
Для получения списка установленных пакетов, которые зависят от вашего пакета - можно воспользоваться утилитой {{ic|whoneeds}} из состава пакета {{pkg|pkgtools}}:<br />
<br />
$ whoneeds имя_пакета<br />
<br />
=== Получение Списка Установленных Пакетов для Быстрого Восстановления Системы ===<br />
<br />
Хорошей практикой явлется сохранение списка всех установленых пакетов. Если ваша система "упала" и её сложно восстановить, pacman может легко переустановить эти пакеты.<br />
<br />
Сначала, сохраните в список пакетов (доступных в репозитории):<br />
<br />
pacman -Qqe | grep -v "$(pacman -Qmq)" > pkglist<br />
<br />
# безопасная, но и более сложная альтернатива (во избежание удаления частичных совпадений)<br />
comm -13 <(pacman -Qmq | sort) <(pacman -Qqe | sort) > pkglist<br />
<br />
Сохраните этот файл на флешке или на другом носителе.<br />
<br />
Скопируйте файл pkglist в новую систему, перейдите в эту папку.<br />
<br />
Для восстановления используйте команду:<br />
pacman -S $(cat pkglist)<br />
<br />
=== Получение Списка Файлов не Принадлежащих Любому Пакету ===<br />
<br />
Если вы всегда хотите держать свою систему в чистоте и уважаете [[Путь Arch]], вы должны иногда проверять файлы отсутствующие в базе данных pacman. Эти файлы, зачастую установлены сторонними приложениями с использованием '''./configure; make; make install''' и т.п. Вы можете найти все эти установленные файлы (или симлинки) используя этот простой скрипт:<br />
<br />
#!/bin/bash<br />
time /usr/bin/pacman -Ql | cut -d ' ' -f 2- | sort -u > db.txt<br />
time find /arch /bin /boot /etc /lib /opt /sbin /usr 2>/dev/null | while read i; do<br />
if [ ! -d "$i" ]; then<br />
echo "$i"<br />
fi;<br />
done | sort -u > fs.txt<br />
time comm -23 fs.txt db.txt > non-db.txt<br />
<br />
#для проверки:<br />
#cat non-db.txt | while read i; do pacman -Qo "$i" 2>&1; done | tee test.txt<br />
<br />
заметьте - все файлы указанные в non-db.txt НЕ БУДУТ удалены без подтверждения. Здесь могут находиться конфигурационные файлы, журналы и др. Используйте этот список только если знаете, что вы делаете.<br />
<br />
=== Дополнительные команды ===<br />
<br />
Обновление системы и установка списка пакетов (за одну операцию):<br />
<br />
# pacman -Syu имя_пакета1 имя_пакета2 ...<br />
<br />
Скачать пакет, но не устанавливать его:<br />
<br />
# pacman -Sw имя_пакета<br />
<br />
Установить локальный пакет (не из репозитория):<br />
<br />
# pacman -U /путь/к/пакету/имя_пакета-version.pkg.tar.xz<br />
<br />
Установить 'не локальный' пакет (не из репозитория):<br />
<br />
# pacman -U <nowiki>http://www.example.com/repo/example.pkg.tar.xz</nowiki><br />
<br />
Удалить из кэша ({{ic|/var/cache/pacman/pkg}}) неустановленные пакеты:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Поэтому, в случае возникновения проблем после обновлениий - появятся дополнительные трудности, связанные с откатом версий пакетов.}}<br />
<br />
# pacman -Sc<br />
<br />
Полная очистка кэша пакетов:<br />
<br />
{{Warning|Будут удалены все пакеты из кэша. Выполняйте это только в том случае, если у вас всё нормально работает и вы уверены, что вам не понадобится [[Downgrade_packages| откатывать]] какой-либо пакет.}}<br />
<br />
# pacman -Scc<br />
<br />
В качестве альтернативы ключам ''-Sc'' и ''-Scc'' - можно использовать пакет {{AUR|Cacheclean}}, доступный в [[AUR]]. Это скрипт на python, который позволяет выборочно очищать кэш pacman'а от старых версий пакетов.<br />
<br />
===Частичные обновления официально не поддерживаются===<br />
Arch Linux постоянно обновляемый дистрибутив и это значит, что в репозиториях всегда находятся новые версии [[Wikipedia:Library (computing)|библиотек]]. Разработчики и доверенные пользователи собирают пакеты для репозиториев с использованием этих библиотек. Для пакетов установленных локально (например пакеты из [[Arch User Repository|AUR]]), нужно самостоятельно решать вопрос с зависимостями согласно данным [[Wikipedia:soname|soname]].<br />
<br />
Именно поэтому частичное обновление '''не поддерживается'''. Не используйте {{ic|pacman -Sy package}} или другие эквиваленты {{ic|pacman -Sy}} и {{ic|pacman -S package}}. Всегда перед установкой пакетов синхронизируйте репозитории и обновляйте систему полностью. По той же самой причине нужно быть осторожными при использовании {{ic|IgnorePkg}} и {{ic|IgnoreGroup}}.<br />
<br />
Если после частичного обновления оказалось, что бинарные файлы не могут найти нужных версий библиотек и проблему '''не возможно "решить" созданием символической ссылки''' (библиотеки не имеют '''обратной совместимости''') - выполните {{ic|pacman -Syu}}, как правило этого будет достаточно для устранения проблемы.<br />
<br />
== Устранение проблем ==<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init, но отсутствуют ssh / X или генераторы случайных чисел. Как мне получить энтропию?<br />
|answer=Для решения проблемы нужно перемещать указатель мыши, нажимать на клавиатуре случайные кнопки или запустить дисковую активность, например с помощью {{ic|updatedb}}. Будьте терпиливы, процесс может затянуться на длительное время. При этом переход в другую консоль, по Alt+F2-6, временно работать не будет.}}<br />
<br />
{{FAQ<br />
|question=Мне нужно запустить pacman-key --init через ssh. Как мне получить энтропию?<br />
|answer=На целевой машине соберите и установите пакет {{AUR|rng-tools}} из [[AUR]]. Подключитесь через ssh и выполните следующие команды:<br />
{{bc|# sed -i 's/0/10/' /etc/conf.d/rngd<br />
# rngd -f -r /dev/urandom &<br />
# pacman-key --init}}<br />
<br />
После успешного выполнения pacman-key просто остановите rngd и удалите пакет.<br />
<br />
{{bc|# killall rngd<br />
# pacman -Rns rng-tools}}<br />
}}<br />
<br />
{{FAQ<br />
|question=Pacman не находит PGP ключи для импорта и не обновляет пакеты. Как можно это исправить?<br />
|answer=На самом деле проблема не в pacman. Проблема в сервере ключей, используемом по умолчанию. Измените сервер ключей на более надежный таким способом:<br />
<br />
# sed -i '/keyserver/ s,keys.gnupg.net,pgp.mit.edu,' /etc/pacman.d/gnupg/gpg.conf<br />
Pacman4 теперь готов к использованию.}}<br />
<br />
{{FAQ<br />
|question=Обновление пакета XYZ сломало мою систему!<br />
|answer=Arch Linux - передовой, постоянно обновляемый дистрибутив. Обновления для пакетов становятся доступными тогда, когда их посчитают достаточно стабильными для повседневного использования. Тем не менее, обновления иногда требуют вмешательства пользователя: может потребоваться обновление конфигурационных файлов, могут измениться дополнительные зависимости, и т.д.<br />
<br />
Запомните основное правило - не обновляйте систему "вслепую". Всегда внимательно изучайте список обновляемых пакетов. Обращайте внимание на обновление "критически важных" компонентов ({{ic|linux}}, {{ic|xorg-server}}, и т.д.). Если такие пакеты есть - проверьте наличие новостей на https://www.archlinux.org/ и просмотрите последние сообщения на форуме, возможно кто-то уже столкнулся с проблемами при обновлении.<br />
<br />
Если известно/ожидается, что после обновления могут возникнуть проблемы - pacman выведет соответствующее сообщение. Если вы упустили какую-то информацию, которую вывел pacman, то её можно еще раз просмотреть в ({{ic|/var/log/pacman.log}}). <br />
<br />
Теперь, '''если не было никаких предупреждений от pacman, отсутствуют соответствующие новости на https://www.archlinux.org/ и нет сообщений относительно обновлений на форуме''', имеет смысл обратиться за помощью на форум, [[IRC Channel|IRC-канал]], или [[Downgrading Packages|откатить пакет к работающей версии]].<br />
<br />
Перечитайте последний абзац.}}<br />
<br />
{{FAQ<br />
|question=Я знаю что для пакета ABC доступны обновления, но pacman сообщает мне, что система в актуальном состоянии!<br />
|answer=Зеркала pacman синхронизируются не мгновенно. Иногда может пройти более 24 часов, прежде чем обновления станут доступны вам. <br />
<br />
В качестве решения можно посоветовать сменить зеркало. На [https://www.archlinux.org/mirrors/status/ MirrorStatus] можно посмотреть состояние зеркал.}}<br />
<br />
{{FAQ<br />
|question=При обновлении появляется сообщение об ошибке: "file exists in filesystem" ("файл существует в файловой системе")!<br />
|answer=Дополнительно: ''Взято из https://bbs.archlinux.org/viewtopic.php?id=56373 у Misfit138.''<br />
<br />
error: could not prepare transaction<br />
error: failed to commit transaction (conflicting files)<br />
package: /path/to/file exists in filesystem<br />
Errors occurred, no packages were upgraded.<br />
<br />
Почему это происходит: pacman при обнаружении конфликтующих файлов, по умолчанию, не будет их перезаписывать автоматически. Это не ошибка, так сделано специально. (узнать какому пакету принадлежит файл, если таковой имеется, можно с помощью {{ic|pacman -Qo}}.)<br />
<br />
Вопрос решается тривиально. Сначала проверьте не принадлежит ли файл другому пакету: ({{ic|pacman -Qo /path/to/file}}). Если принадлежит - создайте [[Reporting Bug Guidelines|отчет об ошибке]]. Если проблемный файл не нужен другим пакетам - переименуйте его и перезапустите команду обновления. Если в дальнейшем проблем не возникнет, то старый файл можно удалить.}}<br />
<br />
{{FAQ<br />
|question=При установке пакета я получаю сообщение об ошибке: "not found in sync db"<br />
|answer=Для начала убедитесь, что пакет вообще существует (и вы нигде не опечатались!). Если пакет не существует, то проблема может быть в том, что ваша база пакетов не синхронизирована с репозиториями или репозитории неправильно настроены. Для принудительного обновления списка пакетов попробуйте выполнить {{ic|pacman -Syy}}.}}<br />
<br />
{{FAQ<br />
|question=pacman несколько раз обновляет один и тот же пакет!<br />
|answer=Это может быть связано с дублированием записей в {{ic|/var/lib/pacman/local/}}, к примеру имеется два экземпляра {{ic|linux}}. {{ic|pacman -Qi}} выведет правильную версию, а {{ic|pacman -Qu}} покажет её как устаревшую и, следовательно, требующую обновления.<br />
<br />
Решение: удалить лишнюю запись из {{ic|/var/lib/pacman/local/}}.<br />
<br />
{{Note|pacman версии 3.4, в случае обнаружения повторяющихся записей, должен вывести сообщение об ошибке.}}}}<br />
<br />
{{FAQ<br />
|question=pacman сбоит при обновлении!<br />
|answer=Если при попытке удаления, переустановки или обновления пакетов pacman падает с ошибкой "database write" ("записи в базу данных"):<br />
#Загрузитесь используя Arch live CD<br />
#Смонтируйте корневую файловую систему<br />
#Обновите базу данных pacman с помощью {{ic|pacman -Syy}}<br />
#Переустановите сломанный пакет через {{ic|pacman -r /путь/к/корневому_разделу -S package}}}}<br />
<br />
{{FAQ<br />
|question=Я установил программу используя {{ic|make install}}; теперь эти файлы не принадлежат ни одному из пакетов!<br />
|answer=При обнаружении "конфликтующих файлов", чтобы их не перезаписывать вручную, можно использовать pacman с ключом {{ic|-f}} ({{ic|pacman -Sf}}).<br />
<br />
Почитайте [[pacman Tips#Getting a list of files not owned by any package]], о скрипте, проверяющем файловую систему на наличие ''брошенных'' файлов.}}<br />
<br />
{{FAQ<br />
|question=Мне нужен пакет с определенным файлом. Как узнать какому пакету это файл принадлежит?<br />
|answer=Установите [[pkgtools]], в его состав входит {{ic|pkgfile}}, использующий отдельную базу данных со всеми файлами и связанными с ними пакетами.}}<br />
<br />
{{FAQ<br />
|question=pacman полностью не работоспособен! Как мне его переустановить?<br />
|answer=Если pacman не работает и не получается его восстановить - скачайте вручную пакеты ({{Pkg|openssl}}, {{Pkg|libarchive}} и {{Pkg|pacman}}) и распакуйте их в корневой раздел. Бинарный pacman будет восстановлен вместе с конфигурационным файлом по умолчанию. Затем, для поддержания целостности базы данных пакетов, переустановите скачанные пакеты стандартными средствами pacman. Дополнительную информацию и пример (устарел) скрипта, автоматизирующего этот процесс, можно найти в [https://bbs.archlinux.org/viewtopic.php?id=95007 этом] сообщении форума.}}<br />
<br />
{{FAQ<br />
|question=После обновления системы получаю следующее сообщение об ошибке - "unable to find root device", после перезагрузки система не загружается.<br />
|answer=Вероятно при обновлении ядра "поломалась" initramfs (например при использовании pacman с опцией --force). Для восстановления работоспособности выполните следующие действия.<br />
<br />
Загрузитесь с Arch live-cd. После загрузки выполните:<br />
<br />
# mkdir /mnt/arch<br />
# mount /dev/sdx /mnt/arch (ваш корневой раздел)<br />
# cd /mnt/arch<br />
# mount -t proc proc proc/<br />
# mount -t sysfs sys sys/<br />
# mount -o bind /dev dev/<br />
# mount /dev/sdx boot/ (ваш раздел /boot)<br />
# chroot . /bin/bash<br />
# pacman -Syu<br />
# pacman -S udev<br />
# pacman -S mkinitcpio<br />
# mkinitcpio -p linux<br />
<br />
<br />
Затем отмонтируйте смонтированные разделы и перезагрузитесь.}}</div>
Vadik
https://wiki.archlinux.org/index.php?title=Yaourt_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=191757
Yaourt (Русский)
2012-03-25T11:57:28Z
<p>Vadik: </p>
<hr />
<div>[[Category:Управление пакетами (Русский)]]<br />
{{i18n|Yaourt}}<br />
{{Warning|Yaourt это неофициальный, неподдерживаемый разработчиками ArchLinux сторонний скрипт.}}<br />
{{Note|Пожалуйста, сообщайте об ошибках в [https://bugs.archlinux.fr// багтрекер archlinux.fr].}}<br />
<br />
'''Y'''et '''A'''n'''O'''ther '''U'''ser '''R'''epository '''T'''ool. Yaourt это поддерживаемая сообществом [http://archlinux.fr/yaourt archlinux.fr] обёртка для pacman, которая, помимо работы с бинарными пакетами, предоставляет прямой доступ к [[AUR]], и позволяет собирать и устанавливать пакеты автоматически. Yaourt использует тот же синтаксис, что и pacman, это избавляет вас от необходимости изучения нового способа поддержки системы, а так же добавляет новые возможности. Yaourt увеличивает мощность и простоту pacman, добавляя еще больше полезных функций и предоставляя приятный, цветной вывод, интерактивный режим поиска, и многое другое. Это наверняка то, что вам нужно<br />
<br />
<br />
==Установка==<br />
Вы можете установить {{aur|yaourt}} из [[AUR]]<br />
<br />
{{Tip|yaourt также доступен в [[unofficial user repositories|неоффициальных пользовательских репозиториях]], в том числе и в '''[archlinuxfr]'''.}}<br />
<br />
==Настройка прокси==<br />
Если доступ в интернет осуществляется через HTTP-прокси, то в файле {{ic|~/.bashrc}} нужно будет установить переменные окружения {{ic|http_proxy}} и {{ic|https_proxy}} (если переменную {{ic|https_proxy}} не установить, то возникнут проблемы при сборке пакетов из AUR).командой:<br />
$ export http_proxy='<nowiki>http://proxy.hostname.com:port</nowiki>'<br />
$ export https_proxy='<nowiki>https://proxy.hostname.com:port</nowiki>'<br />
<br />
Для более подробных сведений вы можете обратится к справочной странице {{ic|curl}}.<br />
<br />
[[sudo]] не поддерживает такие переменные окружение как {{ic|http_proxy}}, поэтому, для использования sudo, добавьте в {{ic|/etc/sudoers}} строки:<br />
Defaults env_keep += "http_proxy"<br />
Defaults env_keep += "https_proxy"<br />
Defaults env_keep += "ftp_proxy"<br />
{{Warning|Файл {{ic|/etc/sudoers}} гораздо безопаснее редактировать не напрямую, а используя {{ic|visudo}}.}}<br />
<br />
==Использование yaourt==<br />
<br />
Установить пакеты (в том числе пакеты расположенные в [[AUR]]) командой:<br />
<br />
{{bc|$ yaourt ''название_пакета''}}<br />
<br />
Обновить систему вместе с пакетами из [[AUR]] командой:<br />
{{bc|$ yaourt -Syua}}<br />
<br />
==Примеры==<br />
Поиск и установка пакета:<br />
{{bc|$ yaourt <название пакета>}}<br />
Синхрониазация базы данных, обновление пакетов, поиск обновлений для пакетов из AUR и dev-версий (все пакеты, основанные на cvs, svn, git, bzr(...)-версиях):<br />
{{bc|$ yaourt -Syu --devel --aur}}<br />
Сборка пакета из исходных кодов:<br />
{{bc|$ yaourt -Sb <пакет>}}<br />
Проверить, редактировать, объединить или удалить *.pac* файлы:<br />
{{bc|$ yaourt -C}}<br />
Получить PKGBUILD:<br />
{{bc|$ yaourt -G <пакет>}}<br />
Собрать пакет и сохранить его в нужной директории:<br />
{{bc|$ yaourt -Sb --export <dir> <package>}}<br />
Создать резервную копию базы данных:<br />
{{bc|$ yaourt -B}}<br />
Восстановить backup файл:<br />
{{bc|$ yaourt -Q --backupfile <file>}}<br />
<br />
См. также: [[Pacman]] и [[Pacman Tips]].<br />
<br />
==Решение проблем==<br />
<br />
===Проблема с контрольными суммами ("wrong hashes")===<br />
Если возникает ситуация, когда после загрузки исходных кодов yaourt указывает на неправильные контрольные суммы (но вы уверены в правильности сумм и сообщения о подобных проблемах больше ни у кого не встречаются), выполните следующие действия:<br />
<br />
Проверьте, существует ли в {{ic|/tmp/yaourt-tmp-имя_вашего_пользователя/название_пакета/src/}} файл, который является символической ссылкой на {{ic|/var/cache/yaourt/build}}.<br />
Удалите этот файл (так как из-за проблем при сборке, yaourt не может удалить его самостоятельно) или всю дирректорию для сборки {{ic|/tmp/yaourt-tmp-имя_вашего_пользователя}}, теперь пакет должен собираться и/или обновляться нормально!<br />
<br />
Данная проблема может возникнуть после сбоев при обновлении системы и/или из-за ошибки в yaourt.<br />
<br />
===Yaourt дважды запрашивает пароль===<br />
Если в файле {{ic|/etc/sudoers}} для {{ic|sudo}} отключить тайм-аут на введенный пароль, отредактировав:<br />
Defaults timestamp_timeout=0<br />
то yaourt будет запрашивать пароль при каждом действии, требующем привилегий root. Во избежание этого добавьте:<br />
SUDONOVERIF=1<br />
в файлы {{ic|/etc/yaourtrc}} или {{ic|~/.yaourtrc}}<br />
<br />
===Yaourt и обновление pacman 4===<br />
<br />
Если, из-за конфликтов с зависимостями устаревшей версии yaourt, вам не удается обновить pacman до 4 версии, и, при этом, используется репозиторий archlinux.fr, в файле {{ic|/etc/pacman.conf}} измените<br />
SyncFirst = pacman<br />
на<br />
SyncFirst = pacman yaourt package-query<br />
<br />
Это позволит обновить yaourt и package-query одновременно с обновлением pacman к версии pacman 4.<br />
<br />
==Внешние ссылки==<br />
* [http://www.archlinux.fr/yaourt-en/ страница yaourt]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=132990 yaourt and "wrong hashes"]</div>
Vadik
https://wiki.archlinux.org/index.php?title=Gaming_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=191746
Gaming (Русский)
2012-03-25T09:40:43Z
<p>Vadik: </p>
<hr />
<div>[[Category:Игры (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|Gaming}}<br />
<br />
{{Article summary start|Описание}}<br />
{{Article summary text|Содержатся сведения по запуску игр и соответствующим настройкам системы.}}<br />
{{Article summary heading|Дополнительно}}<br />
{{Article summary wiki|Common Applications/Games}}<br />
{{Article summary wiki|Netbook Games}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary wiki|NVIDIA#Gaming using Twinview}}<br />
{{Article summary end}}<br />
<br />
Эта статья содержит только советы по запуску игр и соответствующие советы по настройке системы. Список популярных игр для GNU/Linux можно найти на [[Common Applications/Games]] и [[Netbook Games]].<br />
<br />
== Игровые Среды ==<br />
<br />
Для игр в Linux существует множество окружений:<br />
<br />
* Родное &ndash; игры написанные под Linux (как правило бесплатные и с открытым исходным кодом).<br />
* Браузер &ndash; таким играм требуется браузер и подключение к интернету.<br />
** Plugin-based &ndash; для игры понадобится установка дополнительного плагина.<br />
*** [[Java]] Webstart &ndash; для легкой установки кросс-платформенных игр.<br />
*** [[Flash]] &ndash; часто встречающиеся в интернете игры.<br />
*** Unity &ndash; специализированное дополнение для браузера, в настоящее время корректно работает только в Google Chrome. Большинство игр &ndash; коммерческие.<br />
** '''HTML 5''' &ndash; игры использующие технологии canvas и WebGL и работающие во всех современных браузерах, однако на слабых компьютерах будут '''очень''' медленными.<br />
* Специализированные окружения (програмные эмуляторы) &ndash; сначала требуется установка эмулятора, затем можно будет искать игры (большинство из них защищены авторским правом!)<br />
** [[Wine]] &ndash; позволяет запускать множество игр под Windows.<br />
** [http://www.codeweavers.com/ Crossover Games] - участники команды Codeweavers являются основными разработчиками Wine. Использование Crossover Games, в сравнении с другими способами, в некоторых случаях позволяет проще и быстрее устанавливать и использовать игры. Crossover это коммерческий продукт, у которого имеется [http://www.codeweavers.com/support/forums/ форум] и, активно учавствующие в жизни сообщества, разработчики. <br />
** [[Cedega]] &ndash; ориентированная на игры производная Wine. Пакеты, в отличии от версии CVS, не бесплатны.<br />
** [[DosBox]] &ndash; для игр под DOS<br />
** {{Pkg|scummvm}} &ndash; для множества устаревших приключенческих игр<br />
* Аппаратные эмуляторы &ndash; эмулируют не програмную среду, а устройство в целом. Относительно авторских прав &ndash; тоже самое.<br />
<br />
== Получение игр ==<br />
=== Родные ===<br />
Большое колличество доступно в [[Official repositories|Оффициальных репозиториях]] или в [[AUR]]. Инсталяторы некоторых игр можно найти у [[Loki]]. Хорошим источником игр можно считать [[Desura]] (если заботитесь о безопасности или имеется множество багов).<br />
<br />
=== Wine ===<br />
* [http://appdb.winehq.org/ Wine AppDB] это централизованный источних данных о работающих в Wine играх.<br />
* Смотрите также [[:Category:Wine_(English)]].<br />
<br />
=== Flash ===<br />
Существует несколько больших порталов для flash-игр, среди них:<br />
* https://armorgames.com/<br />
* https://www.kongregate.com/<br />
* https://www.newgrounds.com/<br />
<br />
=== Java ===<br />
* Множество маленьких игр, некоторые менее 4kb (дизайн некоторых игр &ndash; настоящий шедевр) можно найти перейдя по адресу http://www.java4k.com.<br />
* https://www.pogo.com/ &ndash; крупнейший портал казуальных Java-игр<br />
* [http://www.javagametome.com/ The Java Game Tome] - огромная база данных, в основном по казуальным играм.<br />
<br />
== Запуск игр в Arch ==<br />
Некоторым играм, или типам игр, может потребоваться специальная настройка для запуска.<br />
В основном в Arch Linux игры будут работать прямо из коробки, а возможно, и с более высокой производительностью чем в других дистрибутивах (благодаря оптимизациям при компиляции). Тем не менее могут потребоваться некоторые настройки или скрипты для достижения желаемого эффекта.<br />
<br />
=== Мульти-экранные настройки ===<br />
Использование мульти-экранных настроек может вызвать проблемы с полноэкранными играми. В таких случаях, одно из решений - [[#Starting_games_in_a_seperate_X_server|запускать другой Х-сервер]]. В качестве другого решения можно воспользоваться советами из [[NVIDIA#Gaming_using_Twinview|статьи об NVIDIA]] (может быть полезна и не только пользователям NVIDIA).<br />
<br />
=== Захват клавиатуры ===<br />
Некоторые игры захватывают клавиатуру и не позволяют переключаться между окнами (комбинация alt-tab). Для того, чтоб можно было пользоваться сочитаниями клавиш совместно с SDL играми, загрузите {{AUR|sdl-nokeyboardgrab}}. Так же можно предотвратить захват клавиатуры на уровне X11, для этого воспользуйтесь {{AUR|libx11-nokeyboardgrab}}.<br />
<br />
{{Note | Как извествно, SDL не всегда могут перехватывать системный ввод. В этом случае возможно прийдется подождать несколько секунд.}}<br />
<br />
=== Запуск игр в отдельном X сервере ===<br />
Как упоминалось ранее, иногда может возникнуть необходимость запуска отдельного Х сервера. Отдельный X сервер дает некоторые преимущества, например более высокую производительность, возможность перехода в игру по клавишам CTRL-ALT-F7 / CTRL-ALT-F8, не требуется завершать основную сессию X-ов (она продолжает работать) в случае конфликта игры с видеодрайвером. Для запуска отдельного X сервера (для примера возьмем [http://alientrap.org/nexuiz/ Nexuiz]) достаточно выполнить следующее: <br />
xinit /usr/bin/nexuiz-glx -- :1<br />
Можно дополнительно создать конфигурациооный файл для X-ов:<br />
xinit /usr/bin/nexuiz-glx -- :1 -xf86config xorg-game.conf <br />
Если ваша основная конфигурация поддерживает технологию NVIDIA Twinview, то для ЗD игр, аналогичных Nexuiz, будет доступна возможность использования нескольких мониторов. Отдельный Х-сервер нежелательно использовать в конфигурациях, в которых рекомендуется отключать второй экран.<br />
<br />
Скрипт запуска игры в Openbox, из вашего домашнего каталога или из /usr/local/bin, будет выглядеть следующим образом:<br />
$ cat ~/game.sh<br />
if [ $# -ge 1 ]; then<br />
game="`which $1`"<br />
openbox="`which openbox`"<br />
tmpgame="/tmp/tmpgame.sh"<br />
DISPLAY=:1.0<br />
echo -e "${openbox} &\n${game}" > ${tmpgame}<br />
echo "starting ${game}"<br />
xinit ${tmpgame} -- :1 -xf86config xorg-game.conf || exit 1<br />
else<br />
echo "not a valid argument"<br />
fi<br />
<br />
После выполнения chmod +x запустить скрипт можно следующей командой:<br />
$ ~/game.sh nexuiz-glx<br />
<br />
=== Настройка мыши ===<br />
Для игр, требующих точность при перемещении мыши, можно настроить скорость ее реакции. Для получения дополнительной информации обратитесь [[Mouse_Polling_Rate|сюда]].<br />
<br />
== Смотрите также ==<br />
* [http://www.linuxgames.com/ LinuxGames] - Новости об играх для linux<br />
* [http://freegamer.blogspot.com/ Free Gamer] - Блог об играх с открытым исходным котод<br />
* [http://forum.freegamedev.net/ FreeGameDev] - Сообщество разработчиков свободных/открытых игр<br />
* [http://libregamewiki.org/ Libregamewiki] - wiki свободных игр<br />
* [https://fedoraproject.org/wiki/SIGs/Games#Gaming_News_sites SIG/Games] - Новостной сайт об играх в OS/Linux и списки в Fedora wiki<br />
* [http://live.linux-gamers.net live.linux-gamers] - Основанный на Arch игровой live-дистрибутив</div>
Vadik
https://wiki.archlinux.org/index.php?title=User_talk:Aady&diff=190824
User talk:Aady
2012-03-23T15:48:41Z
<p>Vadik: Created page with "Есть пункт меню "Приложения", а уже в нем подпункты. Я именно это и имел ввиду."</p>
<hr />
<div>Есть пункт меню "Приложения", а уже в нем подпункты. Я именно это и имел ввиду.</div>
Vadik
https://wiki.archlinux.org/index.php?title=PCManFM_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=190617
PCManFM (Русский)
2012-03-21T14:21:53Z
<p>Vadik: Undo revision 190503 by Aady (talk)Меню одно, поэтому оно не отображаЕтся.</p>
<hr />
<div>[[Category:Русский]]<br />
[[Category:Утилиты (Русский)]]<br />
{{i18n|PCManFM}}<br />
<br />
'''PCManFM''' (PCMan File Manager) — стандартный файловый менеджер среды [[LXDE]] с открытым исходным кодом, представляющей собой набор приложений незваисимых друг от друга, но объединенных принципом экономии ресурсов. Продукт разрабатывается китайским программистом Hong Jen Yee (кит. 洪任諭), разработчиком графической среды [[LXDE]].(Источник: [http://ru.wikipedia.org/wiki/PCManFM])<br />
<br />
==Установка==<br />
Для установки Pcmanfm выполните:<br />
<br />
# pacman -S pcmanfm<br />
<br />
Также, для отслеживания изменений файлов и дирректорий, неоходимо будет установить [[gamin]] (являющийся заменой устаревшего [[FAM]]). Для установки выполните:<br />
<br />
# pacman -S gamin<br />
<br />
==Работа с томами==<br />
'''PCManFM''' может монтировать и размонтировать устройства как вручную, так и автоматически. Эта возможность предоставляется в качестве альтернативы таким инструментам '''CLI''' - как '''pmount'''. PCManFM поддерживает несколько вариантов управления томами (см. ниже).<br />
<br />
{{Note|У вас должна существовать директория {{ic|/media}}.}}<br />
<br />
===Монтирование с помощью udisks===<br />
Последний официальный выпуск PCManFM имеет поддержку udisks. Если вы хотите использовать эту функцию - убедитесь в том, что демон D-Bus установлен и запущен. Для получения дополнительной информации обратитесь к странице [[D-Bus]]. Обратите внимание, что вам, скорее всего, прийдется запускать dbus-launch либо из вашего [[xinitrc|.xinitrc]], либо с помощью скрипта автозапуска вашего оконного менеджера. Инструкции по запуску можно найти или на страничке [[D-Bus]], или на страничке посвященной вашему [[window manager|оконному менеджеру]].<br />
<br />
===Монтирование с помощью gvfs===<br />
Для поддержки Gnome Virtual FileSystem, помимо действий перечисленных выше, вам придется установить дополнительные пакеты:<br />
* {{Pkg|gvfs}} (и зависимости);<br />
* (опционально) {{Pkg|gvfs-smb}}, {{Pkg|gvfs-obexftp}}, {{Pkg|gvfs-afc}}, и т.д. для получения нужной функциональности.<br />
<br />
===Монтирование от обычного пользователя===<br />
Для монтирования устройств, таких как съемные жесткие USB-диски, флэшки или DVD-диски от простого пользователя необходимо соответствующим образом настроить инструментры [[PolicyKit]]. Нужные конфигурационные файлы можно найти в подкаталогах {{ic|/etc/polkit-1}}. Далее будет рассказано как с помощью PolicyKit разрешить пользователям, входящим в группу "storage", монтировать и размонтировать временные устройства.<br />
{{ Note | В случае использования легковесного оконного менеджера совместно с [[SLiM]], для избежания проблем с монтированием, необходимо для login_cmd после exec добавить '''''ck-launch-session dbus-launch''''' }}<br />
{{ Note | На данное время PolicyKit по умолчанию сконфигурирован так, чтобы разрешать монтировать/размонтировать всем пользователям входящим в группу ''storage''. Таким образом этот шаг можно пропустить. }}<br />
От root создайте файл{{ic|/etc/polkit-1/localauthority/50-local.d/55-myconf.pkla}} (файл может иметь любое имя, но оканчиваться должен на .pkla.) следующего содержания:<br />
<pre style='overflow:auto'><br />
[Storage Permissions]<br />
Identity=unix-group:storage<br />
Action=org.freedesktop.udisks.filesystem-mount;org.freedesktop.udisks.drive-eject;org.freedesktop.udisks.drive-detach;org.freedesktop.udisks.luks-unlock;org.freedesktop.udisks.inhibit-polling;org.freedesktop.udisks.drive-set-spindown<br />
ResultAny=yes<br />
ResultActive=yes<br />
ResultInactive=no<br />
</pre><br />
<br />
Для вступления в силу изменений настроек PolicyKit не требуется вашего дополнительного вмешательства. Напоследок, нужно всех пользователей, которым можно будет выполнять операции монтирования/размонтирования, добавить в группу storage:<br />
# usermod -a -G storage USERNAME<br />
<br />
Если вам нужно настроить монтирование другим способом (без добавления пользователей в группу storage) или вы хотите лучше понять написаное выше, - обратитесь к manpage:<br />
$ man pklocalauthority<br />
<br />
==Советы & Решение проблем==<br />
===Отсутствует пункт "Приложения"?===<br />
# pacman -S gnome-menus<br />
<br />
Если в пункте "приложения" не отображается меню с приложениями то, создайте файл ''~/.config/menus/applications.menu'' и добавте в него следующие строки:<br />
<br />
<Menu><br />
<Name>Applications</Name><br />
<MergeFile type="parent">/etc/xdg/menus/lxde-applications.menu</MergeFile><br />
</Menu><br />
<br />
===Отсутствует корзина?===<br />
# pacman -S gvfs consolekit<br />
Также не забудьте добавить в свой {{ic|.xinitrc}} - "ck-launch-session dbus-launch"(именно в таком порядке). Имейте в виду, что для {{pkg|gvfs}} дополнительно будут установлены зависимости из gnome.<br />
<br />
===Не работает монтирование USB или других устройств?===<br />
# pacman -S consolekit<br />
Также не забудьте добавить в свой {{ic|.xinitrc}} "ck-launch-session dbus-launch"(именно в таком порядке).<br />
<br />
===Отсутствуют иконки?===<br />
Если вы используете window manager без DE (desktop environment) и при этом отсутствуют иконки файлов и папок, просто установите следующую тему иконок:<br />
# pacman -S tangerine-icon-theme<br />
<br />
Отредактируйте файл {{ic|~/.gtkrc-2.0}} '''или''' {{ic|/etc/gtk-2.0/gtkrc}} и добавьте в конец строку:<br />
gtk-icon-theme-name = "Tangerine"<br />
<br />
===Поддержка чтения/записи на NTFS===<br />
Установите ntfs-3g (Подробнее [[NTFS-3G]]):<br />
# pacman -S ntfs-3g<br />
<br />
===gnome-open открывает диалог "Поиск" вместо дирректории===<br />
Удалите или переименуйте файл {{ic|/usr/share/applications/pcmanfm-find.desktop}}. При использовании pcmanfm-mod из AUR, следует удалить или переименовать файл {{ic|/usr/share/applications/pcmanfm-mod-find.desktop}}.<br />
<br />
===Для кнопок мыши отсутствует функция "Предыдущая/Следующая папка"===<br />
Решение этой проблемы с помощью [[Xbindkeys]]:<br />
<br />
Установите xbindkeys:<br />
# pacman -S xbindkeys<br />
Отредактируйте ~/.xbindkeysrc добавив в него следующее:<br />
# Пример .xbindkeysrc для мыши G9x.<br />
"/usr/bin/xvkbd -text '\[Alt_L]\[Left]'"<br />
b:8<br />
"/usr/bin/xvkbd -text '\[Alt_L]\[Right]'"<br />
b:9<br />
Свои коды кнопок можно узнать при помощи {{Pkg|xev}}.<br />
<br />
Добавьте<br />
xbindkeys &<br />
В свой файл {{ic|~/.xinitrc}}, при этом xbindkeys будет запущен при логине.<br />
<br />
===параметр --desktop не работает / вызывает сбой X-сервера===<br />
Убедитесь что вы являетесь владельцем и имеете право на запись в {{ic|~/.config/pcmanfm}}<br />
<br />
Установка обоев с помощью параметра --desktop-pref или путем отредактирования {{ic|~/.config/pcmanfm/default/pcmanfm.config}} решает проблему.<br />
<br />
===В расширенных настройках не сохраняется команда вызова эмулятора терминала===<br />
Убедитесь в наличии прав доступа к конфигурационному файлу libfm:<br />
<br />
# chmod -R 755 ~/.config/libfm<br />
# chmod 777 ~/.config/libfm/libfm.conf<br />
<br />
===PCManFM не запоминает настройки из меню Сортировать файлы===<br />
Настроить порядок отображения файлов в PCManFM можно с помощью меню '''Вид | Сортировать файлы''', но эти настройки будут сбрасываться при следующем запуске PCManFM. Для сохранения настроек перейдите в '''Правка | Параметры''' и нажмите кнопку '''Закрыть'''. После этого текущие значения переменных ''sort_type'' и ''sort_by'' будут занесены в файл {{ic|~/.config/pcmanfm/LXDE/pcmanfm.conf}}.<br />
<br />
==Доступные версии==<br />
В настоящее время доступны несколько версий PCManFM:<br />
<br />
===PCManFM2===<br />
Этот пакет называется {{Pkg|pcmanfm}} доступен в репозитории community. Последнюю тестовую версию {{AUR|pcmanfm-git}} можно найти в [[AUR]]. Для получения дополнительной информации читайте [http://forum.lxde.org/viewforum.php?f=22 LXDE Forum].<br />
<br />
===PCManFM 0.5.2===<br />
Предыдущий PCManFM (версия 0.5.2, в настоящее время находящийся в репозиротии [[AUR]] и называющийся "pcmanfm-legacy") больше не разрабатывается и не поддерживается автором. Эта версия для монтирования использует [[HAL]]. Дополнительную информация можно найти на [http://pcmanfm.sourceforge.net/intro.html странице проекта].<br />
<br />
===PCManFM-Mod===<br />
В PCManFM-Mod добавлены пользовательские команды, другие функции, и исправлены ошибки файлового менеджера PCManFM версии v0.5.2. Эта версия собирается и устанавливается как "pcmanfm-mod" и работает независимо от других версий PCManFM, которые установлены в вашей системе. Эта версия считается более стабильной чем 0.9.x, имеет меньше зависимостей Gnome, и использует [[HAL]] вместо gnome-vfs. PCManFM-Mod доступен в [[AUR]] как {{AUR|pcmanfm-mod]}} и как {{AUR|pcmanfm-mod-prov}} (последняя разработка pcmanfm). Для получения дополнительной информации посетите [http://igurublog.wordpress.com/downloads/mod-pcmanfm/ IgnorantGuru's Blog].<br />
<br />
===PCManFM_with_Search===<br />
<br />
В [[AUR]] можно найти последнюю весию PCmanFM с диалогом поиска, пакет называется - {{aur|pcmanfm_with_search}}.</div>
Vadik
https://wiki.archlinux.org/index.php?title=PCManFM_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=190226
PCManFM (Русский)
2012-03-19T16:07:31Z
<p>Vadik: /* PCManFM-Mod */</p>
<hr />
<div>[[Category:Русский]]<br />
[[Category:Утилиты (Русский)]]<br />
{{i18n|PCManFM}}<br />
<br />
'''PCManFM''' (PCMan File Manager) — стандартный файловый менеджер среды [[LXDE]] с открытым исходным кодом, представляющей собой набор приложений незваисимых друг от друга, но объединенных принципом экономии ресурсов. Продукт разрабатывается китайским программистом Hong Jen Yee (кит. 洪任諭), разработчиком графической среды [[LXDE]].(Источник: [http://ru.wikipedia.org/wiki/PCManFM])<br />
<br />
==Установка==<br />
Для установки Pcmanfm выполните:<br />
<br />
# pacman -S pcmanfm<br />
<br />
Также, для отслеживания изменений файлов и дирректорий, неоходимо будет установить [[gamin]] (являющийся заменой устаревшего [[FAM]]). Для установки выполните:<br />
<br />
# pacman -S gamin<br />
<br />
==Работа с томами==<br />
'''PCManFM''' может монтировать и размонтировать устройства как вручную, так и автоматически. Эта возможность предоставляется в качестве альтернативы таким инструментам '''CLI''' - как '''pmount'''. PCManFM поддерживает несколько вариантов управления томами (см. ниже).<br />
<br />
{{Note|У вас должна существовать директория {{ic|/media}}.}}<br />
<br />
===Монтирование с помощью udisks===<br />
Последний официальный выпуск PCManFM имеет поддержку udisks. Если вы хотите использовать эту функцию - убедитесь в том, что демон D-Bus установлен и запущен. Для получения дополнительной информации обратитесь к странице [[D-Bus]]. Обратите внимание, что вам, скорее всего, прийдется запускать dbus-launch либо из вашего [[xinitrc|.xinitrc]], либо с помощью скрипта автозапуска вашего оконного менеджера. Инструкции по запуску можно найти или на страничке [[D-Bus]], или на страничке посвященной вашему [[window manager|оконному менеджеру]].<br />
<br />
===Монтирование с помощью gvfs===<br />
Для поддержки Gnome Virtual FileSystem, помимо действий перечисленных выше, вам придется установить дополнительные пакеты:<br />
* {{Pkg|gvfs}} (и зависимости);<br />
* (опционально) {{Pkg|gvfs-smb}}, {{Pkg|gvfs-obexftp}}, {{Pkg|gvfs-afc}}, и т.д. для получения нужной функциональности.<br />
<br />
===Монтирование от обычного пользователя===<br />
Для монтирования устройств, таких как съемные жесткие USB-диски, флэшки или DVD-диски от простого пользователя необходимо соответствующим образом настроить инструментры [[PolicyKit]]. Нужные конфигурационные файлы можно найти в подкаталогах {{ic|/etc/polkit-1}}. Далее будет рассказано как с помощью PolicyKit разрешить пользователям, входящим в группу "storage", монтировать и размонтировать временные устройства.<br />
{{ Note | В случае использования легковесного оконного менеджера совместно с [[SLiM]], для избежания проблем с монтированием, необходимо для login_cmd после exec добавить '''''ck-launch-session dbus-launch''''' }}<br />
{{ Note | На данное время PolicyKit по умолчанию сконфигурирован так, чтобы разрешать монтировать/размонтировать всем пользователям входящим в группу ''storage''. Таким образом этот шаг можно пропустить. }}<br />
От root создайте файл{{ic|/etc/polkit-1/localauthority/50-local.d/55-myconf.pkla}} (файл может иметь любое имя, но оканчиваться должен на .pkla.) следующего содержания:<br />
<pre style='overflow:auto'><br />
[Storage Permissions]<br />
Identity=unix-group:storage<br />
Action=org.freedesktop.udisks.filesystem-mount;org.freedesktop.udisks.drive-eject;org.freedesktop.udisks.drive-detach;org.freedesktop.udisks.luks-unlock;org.freedesktop.udisks.inhibit-polling;org.freedesktop.udisks.drive-set-spindown<br />
ResultAny=yes<br />
ResultActive=yes<br />
ResultInactive=no<br />
</pre><br />
<br />
Для вступления в силу изменений настроек PolicyKit не требуется вашего дополнительного вмешательства. Напоследок, нужно всех пользователей, которым можно будет выполнять операции монтирования/размонтирования, добавить в группу storage:<br />
# usermod -a -G storage USERNAME<br />
<br />
Если вам нужно настроить монтирование другим способом (без добавления пользователей в группу storage) или вы хотите лучше понять написаное выше, - обратитесь к manpage:<br />
$ man pklocalauthority<br />
<br />
==Советы & Решение проблем==<br />
===Отсутствует пункт "Приложения"?===<br />
# pacman -S gnome-menus<br />
<br />
Если в пункте "приложения" не отображается меню с приложениями то, создайте файл ''~/.config/menus/applications.menu'' и добавте в него следующие строки:<br />
<br />
<Menu><br />
<Name>Applications</Name><br />
<MergeFile type="parent">/etc/xdg/menus/lxde-applications.menu</MergeFile><br />
</Menu><br />
<br />
===Отсутствует корзина?===<br />
# pacman -S gvfs consolekit<br />
Также не забудьте добавить в свой {{ic|.xinitrc}} - "ck-launch-session dbus-launch"(именно в таком порядке). Имейте в виду, что для {{pkg|gvfs}} дополнительно будут установлены зависимости из gnome.<br />
<br />
===Не работает монтирование USB или других устройств?===<br />
# pacman -S consolekit<br />
Также не забудьте добавить в свой {{ic|.xinitrc}} "ck-launch-session dbus-launch"(именно в таком порядке).<br />
<br />
===Отсутствуют иконки?===<br />
Если вы используете window manager без DE (desktop environment) и при этом отсутствуют иконки файлов и папок, просто установите следующую тему иконок:<br />
# pacman -S tangerine-icon-theme<br />
<br />
Отредактируйте файл {{ic|~/.gtkrc-2.0}} '''или''' {{ic|/etc/gtk-2.0/gtkrc}} и добавьте в конец строку:<br />
gtk-icon-theme-name = "Tangerine"<br />
<br />
===Поддержка чтения/записи на NTFS===<br />
Установите ntfs-3g (Подробнее [[NTFS-3G]]):<br />
# pacman -S ntfs-3g<br />
<br />
===gnome-open открывает диалог "Поиск" вместо дирректории===<br />
Удалите или переименуйте файл {{ic|/usr/share/applications/pcmanfm-find.desktop}}. При использовании pcmanfm-mod из AUR, следует удалить или переименовать файл {{ic|/usr/share/applications/pcmanfm-mod-find.desktop}}.<br />
<br />
===Для кнопок мыши отсутствует функция "Предыдущая/Следующая папка"===<br />
Решение этой проблемы с помощью [[Xbindkeys]]:<br />
<br />
Установите xbindkeys:<br />
# pacman -S xbindkeys<br />
Отредактируйте ~/.xbindkeysrc добавив в него следующее:<br />
# Пример .xbindkeysrc для мыши G9x.<br />
"/usr/bin/xvkbd -text '\[Alt_L]\[Left]'"<br />
b:8<br />
"/usr/bin/xvkbd -text '\[Alt_L]\[Right]'"<br />
b:9<br />
Свои коды кнопок можно узнать при помощи {{Pkg|xev}}.<br />
<br />
Добавьте<br />
xbindkeys &<br />
В свой файл {{ic|~/.xinitrc}}, при этом xbindkeys будет запущен при логине.<br />
<br />
===параметр --desktop не работает / вызывает сбой X-сервера===<br />
Убедитесь что вы являетесь владельцем и имеете право на запись в {{ic|~/.config/pcmanfm}}<br />
<br />
Установка обоев с помощью параметра --desktop-pref или путем отредактирования {{ic|~/.config/pcmanfm/default/pcmanfm.config}} решает проблему.<br />
<br />
===В расширенных настройках не сохраняется команда вызова эмулятора терминала===<br />
Убедитесь в наличии прав доступа к конфигурационному файлу libfm:<br />
<br />
# chmod -R 755 ~/.config/libfm<br />
# chmod 777 ~/.config/libfm/libfm.conf<br />
<br />
===PCManFM не запоминает настройки из меню Сортировать файлы===<br />
Настроить порядок отображения файлов в PCManFM можно с помощью меню '''Вид | Сортировать файлы''', но эти настройки будут сбрасываться при следующем запуске PCManFM. Для сохранения настроек перейдите в '''Правка | Параметры''' и нажмите кнопку '''Закрыть'''. После этого текущие значения переменных ''sort_type'' и ''sort_by'' будут занесены в файл {{ic|~/.config/pcmanfm/LXDE/pcmanfm.conf}}.<br />
<br />
==Доступные версии==<br />
В настоящее время доступны несколько версий PCManFM:<br />
<br />
===PCManFM2===<br />
Этот пакет называется {{Pkg|pcmanfm}} доступен в репозитории community. Последнюю тестовую версию {{AUR|pcmanfm-git}} можно найти в [[AUR]]. Для получения дополнительной информации читайте [http://forum.lxde.org/viewforum.php?f=22 LXDE Forum].<br />
<br />
===PCManFM 0.5.2===<br />
Предыдущий PCManFM (версия 0.5.2, в настоящее время находящийся в репозиротии [[AUR]] и называющийся "pcmanfm-legacy") больше не разрабатывается и не поддерживается автором. Эта версия для монтирования использует [[HAL]]. Дополнительную информация можно найти на [http://pcmanfm.sourceforge.net/intro.html странице проекта].<br />
<br />
===PCManFM-Mod===<br />
В PCManFM-Mod добавлены пользовательские команды, другие функции, и исправлены ошибки файлового менеджера PCManFM версии v0.5.2. Эта версия собирается и устанавливается как "pcmanfm-mod" и работает независимо от других версий PCManFM, которые установлены в вашей системе. Эта версия считается более стабильной чем 0.9.x, имеет меньше зависимостей Gnome, и использует [[HAL]] вместо gnome-vfs. PCManFM-Mod доступен в [[AUR]] как {{AUR|pcmanfm-mod]}} и как {{AUR|pcmanfm-mod-prov}} (последняя разработка pcmanfm). Для получения дополнительной информации посетите [http://igurublog.wordpress.com/downloads/mod-pcmanfm/ IgnorantGuru's Blog].<br />
<br />
===PCManFM_with_Search===<br />
<br />
В [[AUR]] можно найти последнюю весию PCmanFM с диалогом поиска, пакет называется - {{aur|pcmanfm_with_search}}.</div>
Vadik
https://wiki.archlinux.org/index.php?title=IceWM_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=190224
IceWM (Русский)
2012-03-19T16:02:13Z
<p>Vadik: </p>
<hr />
<div>[[Category:Desktop environments (Русский)]]<br />
[[Category:Руководства (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|IceWM}}<br />
<br />
:''IceWM — менеджер окон для X Window System в Unix-подобных операционных системах. Разработка IceWM началась с нуля в 1997-ом году, проект написан целиком на C++ и выпущен на условиях лицензии GNU LGPL. Цель проекта — создание рабочей среды с удобным и быстрым интуитивным интерфейсом с широкими возможностями для настройки пользователем. В частности, все функции графического интерфейса доступны при использовании только клавиатуры. В то же время в число задач входила максимальная «лёгкость» IceWM в плане потребляемых ресурсов компьютера — памяти и процессора.<br />
<br />
IceWM полностью соответствует i18n и поддерживает работу с русским языком.(Источник: [http://ru.wikipedia.org/wiki/IceWM])''<br />
<br />
== Установка ==<br />
IceWM находится в [[Official Repositories|оффициальном репозитории]], пакет называется {{Pkg|icewm}}.<br />
<br />
Кроме того, в [[AUR]] находятся: последняя тестовая версия ({{AUR|icewm-testing}}), и весрия CVS ({{AUR|icewm-cvs}}). В этих версиях были добавлены новые возможности и устранены некоторые ошибки (в связи с медленным развитием эти версии часто соответствуют версии в extra/icewm).<br />
<br />
== Запуск IceWM ==<br />
=== Запуск с помощью kdm/gdm ===<br />
При использовании менеджеров ([[KDM]], [[GDM]], [[XDM]]) IceWM будет автоматически добавлен в их меню.<br />
Дополнительную информацию по настройке менеджеров можно найти [[Добавление экранного менеджера входа в систему (KDM, GDM или XDM) в автозагрузку|здесь]].<br />
<br />
=== Запуск с помощью .xinitrc ===<br />
Запустить IceWM можно просто добавив следующую строку в ваш файл {{ic|~/.xinitrc}}:<br />
exec icewm-session<br />
В этом случае, при запуске X.Org, будет автоматически запущен IceWM.<br />
Иногда, для корректной работы вашего файлового менеджера совместно с ''udisks'', вместо "exec icewm-session" лучше будет использовать строку вида:<br />
exec ck-launch-session dbus-launch icewm-session<br />
или<br />
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session icewm-session<br />
<br />
По команде icewm-session будут запущены icewm, icewmbg и icewmtray.<br />
<br />
После запуска IceWM будет прочитан и выполнен файл {{ic|~/.icewm/startup}} (если он существует).<br />
<br />
После добавления нужной строки в {{ic|~/.xinitrc}}, IceWM можно запустить командой '''startx'''.<br />
<br />
== Настройка ==<br />
Хотя настройка IceWM и основана на ручной правке текстовых конфигов, применяются также и различные GUI-программы, в частности {{Pkg|icewm-utils}} из [[Official Repositories|community]]. Однако эти инструменты являются относительно устаревшими и большинство пользователей предпочитают вручную редактировать текстовые файлы конфигурации. Изменения можно вносить как общесистемно (в {{ic|/etc/icewm/}}), так и для конкретного пользователя (в {{ic|~/.icewm/}}).<br />
<br />
Для изменения стандартной конфигурации icewm, нужно скопировать конфигурационные файлы из {{ic|/usr/share/icewm/}} в {{ic|~/.icewm/}}, например: <br />
<br />
{{Note | Выполняйте все действия от простого пользователя, а не от root.}}<br />
<br />
$ mkdir ~/.icewm/<br />
$ cp -R /usr/share/icewm/* ~/.icewm/<br />
<br />
Доступны следующие файлы конфигурации<br />
*{{ic|preferences}} содержит параметры управления поведением IceWM.<br />
*{{ic|menu}} содержит пункты и структуру главного меню.<br />
*{{ic|keys}} содержит дополнительные комбинации клавиш пользователя.<br />
*{{ic|toolbar}} содержит кнопки запуска приложений на панели задач.<br />
*{{ic|winoptions}} содержит параметры отвечающие за поведение отдельных приложений, описанных пользователем.<br />
*{{ic|theme}} содержит название текущей темы оформления.<br />
*{{ic|startup}} исполняемый файл, запускающийся во время первоначальной загрузки оконного менеджера.<br />
*{{ic|shutdown}} исполняемый файл, запускающийся во время завершения работы оконного менеджера.<br />
<br />
=== Меню ===<br />
*{{Pkg|menumaker}} (доступен в [[Official Repositories|Community]]) - это скрипт на Python, автоматически создающий меню установленных в системе приложений. Хотя в меню и будет добавлено множество нежелательных пунктов, может оказаться, что использование MenuMaker предпочтительнее ручного редактирования файла {{ic|menu}}. Запускайте MenuMaker с флагом -f, чтоб он смог перезаписать существующий файл меню:<br />
$ mmaker -f icewm<br />
<br />
*Еще одним инструментом является, написанный на perl, {{Pkg|archlinux-xdg-menu}}:<br />
<br />
$ xdg_menu --format icewm --fullmenu --root-menu /etc/xdg/menus/arch-applications.menu > ~/.icewm/menu<br />
<br />
=== Темы ===<br />
По умолчанию включено несколько тем оформления, в репозитории можно дополнительно найти пакет с ножеством тем - {{Pkg|icewm-themes}}. Хотя большинство тем имеют спартанский вид, в стиле'old Windows', существуют и более современные. Примеры хороших тем оформления: [http://box-look.org/content/show.php/Carbonit+Ice?content=146421 Carbonit+Ice], [http://box-look.org/content/show.php/IceBuntu?content=62935 IceBuntu] или [http://box-look.org/content/show.php/IceClearlooks?content=96346 IceClearlooks]. Еще больше тем оформления можно найти на [http://www.box-look.org/index.php?xcontentmode=7311 box-look.org].<br />
<br />
== Файловые менеджеры ==<br />
Следует отметить, что IceWM только оконный менеджер и, следовательно, не включает в себя файловый менеджер. Для поддержки значков рабочего стола можно использовать [[PCManFM]] и Rox Filer, так же для достижения этой функциональности также может быть использован [[Idesk|iDesk]].<br />
{{Note|Для получения большего списка файловых менеджеров, рекомендуется изучить список в категории [[:Category:File managers (English)|File managers]].}}<br />
<br />
== Статьи по Теме ==<br />
* [[Xinitrc]]<br />
<br />
== Сторонние ресурсы ==<br />
* [http://www.icewm.org/ Official IceWM website]<br />
* [http://en.gentoo-wiki.com/wiki/IceWM IceWM - Gentoo Linux Wiki]<br />
* [http://www.osnews.com/story.php/7774/IceWM--The-Cool-Window-Manager/ IceWM - The Cool Window Manager] - Подробное вступление на OSNews<br />
* [http://polishlinux.org/apps/window-managers/icewm-a-desktop-for-windows-emmigrants/ IceWM - A desktop for Windows emigrants] - Обзор и руководство от polishlinux.org</div>
Vadik
https://wiki.archlinux.org/index.php?title=IceWM_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=190222
IceWM (Русский)
2012-03-19T15:59:56Z
<p>Vadik: /* Установка */</p>
<hr />
<div>[[Category:Desktop environments (Русский)]]<br />
[[Category:Руководства (Русский)]]<br />
[[Category:Русский]]<br />
{{i18n|IceWM}}<br />
<br />
== Что такое IceWM? ==<br />
IceWM — менеджер окон для X Window System в Unix-подобных операционных системах. Разработка IceWM началась с нуля в 1997-ом году, проект написан целиком на C++ и выпущен на условиях лицензии GNU LGPL. Цель проекта — создание рабочей среды с удобным и быстрым интуитивным интерфейсом с широкими возможностями для настройки пользователем. В частности, все функции графического интерфейса доступны при использовании только клавиатуры. В то же время в число задач входила максимальная «лёгкость» IceWM в плане потребляемых ресурсов компьютера — памяти и процессора.<br />
<br />
IceWM полностью соответствует i18n и поддерживает работу с русским языком.(Источник: [http://ru.wikipedia.org/wiki/IceWM])<br />
<br />
== Установка ==<br />
IceWM находится в [[Official Repositories|оффициальном репозитории]], пакет называется {{Pkg|icewm}}.<br />
<br />
Кроме того, в [[AUR]] находятся: последняя тестовая версия ({{AUR|icewm-testing}}), и весрия CVS ({{AUR|icewm-cvs}}). В этих версиях были добавлены новые возможности и устранены некоторые ошибки (в связи с медленным развитием эти версии часто соответствуют версии в extra/icewm).<br />
<br />
== Запуск IceWM ==<br />
=== Запуск с помощью kdm/gdm ===<br />
При использовании менеджеров ([[KDM]], [[GDM]], [[XDM]]) IceWM будет автоматически добавлен в их меню.<br />
Дополнительную информацию по настройке менеджеров можно найти [[Добавление экранного менеджера входа в систему (KDM, GDM или XDM) в автозагрузку|здесь]].<br />
<br />
=== Запуск с помощью .xinitrc ===<br />
Запустить IceWM можно просто добавив следующую строку в ваш файл {{ic|~/.xinitrc}}:<br />
exec icewm-session<br />
В этом случае, при запуске X.Org, будет автоматически запущен IceWM.<br />
Иногда, для корректной работы вашего файлового менеджера совместно с ''udisks'', вместо "exec icewm-session" лучше будет использовать строку вида:<br />
exec ck-launch-session dbus-launch icewm-session<br />
или<br />
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session icewm-session<br />
<br />
По команде icewm-session будут запущены icewm, icewmbg и icewmtray.<br />
<br />
После запуска IceWM будет прочитан и выполнен файл {{ic|~/.icewm/startup}} (если он существует).<br />
<br />
После добавления нужной строки в {{ic|~/.xinitrc}}, IceWM можно запустить командой '''startx'''.<br />
<br />
== Настройка ==<br />
Хотя настройка IceWM и основана на ручной правке текстовых конфигов, применяются также и различные GUI-программы, в частности {{Pkg|icewm-utils}} из [[Official Repositories|community]]. Однако эти инструменты являются относительно устаревшими и большинство пользователей предпочитают вручную редактировать текстовые файлы конфигурации. Изменения можно вносить как общесистемно (в {{ic|/etc/icewm/}}), так и для конкретного пользователя (в {{ic|~/.icewm/}}).<br />
<br />
Для изменения стандартной конфигурации icewm, нужно скопировать конфигурационные файлы из {{ic|/usr/share/icewm/}} в {{ic|~/.icewm/}}, например: <br />
<br />
{{Note | Выполняйте все действия от простого пользователя, а не от root.}}<br />
<br />
$ mkdir ~/.icewm/<br />
$ cp -R /usr/share/icewm/* ~/.icewm/<br />
<br />
Доступны следующие файлы конфигурации<br />
*{{ic|preferences}} содержит параметры управления поведением IceWM.<br />
*{{ic|menu}} содержит пункты и структуру главного меню.<br />
*{{ic|keys}} содержит дополнительные комбинации клавиш пользователя.<br />
*{{ic|toolbar}} содержит кнопки запуска приложений на панели задач.<br />
*{{ic|winoptions}} содержит параметры отвечающие за поведение отдельных приложений, описанных пользователем.<br />
*{{ic|theme}} содержит название текущей темы оформления.<br />
*{{ic|startup}} исполняемый файл, запускающийся во время первоначальной загрузки оконного менеджера.<br />
*{{ic|shutdown}} исполняемый файл, запускающийся во время завершения работы оконного менеджера.<br />
<br />
=== Меню ===<br />
*{{Pkg|menumaker}} (доступен в [[Official Repositories|Community]]) - это скрипт на Python, автоматически создающий меню установленных в системе приложений. Хотя в меню и будет добавлено множество нежелательных пунктов, может оказаться, что использование MenuMaker предпочтительнее ручного редактирования файла {{ic|menu}}. Запускайте MenuMaker с флагом -f, чтоб он смог перезаписать существующий файл меню:<br />
$ mmaker -f icewm<br />
<br />
*Еще одним инструментом является, написанный на perl, {{Pkg|archlinux-xdg-menu}}:<br />
<br />
$ xdg_menu --format icewm --fullmenu --root-menu /etc/xdg/menus/arch-applications.menu > ~/.icewm/menu<br />
<br />
=== Темы ===<br />
По умолчанию включено несколько тем оформления, в репозитории можно дополнительно найти пакет с ножеством тем - {{Pkg|icewm-themes}}. Хотя большинство тем имеют спартанский вид, в стиле'old Windows', существуют и более современные. Примеры хороших тем оформления: [http://box-look.org/content/show.php/Carbonit+Ice?content=146421 Carbonit+Ice], [http://box-look.org/content/show.php/IceBuntu?content=62935 IceBuntu] или [http://box-look.org/content/show.php/IceClearlooks?content=96346 IceClearlooks]. Еще больше тем оформления можно найти на [http://www.box-look.org/index.php?xcontentmode=7311 box-look.org].<br />
<br />
== Файловые менеджеры ==<br />
Следует отметить, что IceWM только оконный менеджер и, следовательно, не включает в себя файловый менеджер. Для поддержки значков рабочего стола можно использовать [[PCManFM]] и Rox Filer, так же для достижения этой функциональности также может быть использован [[Idesk|iDesk]].<br />
{{Note|Для получения большего списка файловых менеджеров, рекомендуется изучить список в категории [[:Category:File managers (English)|File managers]].}}<br />
<br />
== Статьи по Теме ==<br />
* [[Xinitrc]]<br />
<br />
== Сторонние ресурсы ==<br />
* [http://www.icewm.org/ Official IceWM website]<br />
* [http://en.gentoo-wiki.com/wiki/IceWM IceWM - Gentoo Linux Wiki]<br />
* [http://www.osnews.com/story.php/7774/IceWM--The-Cool-Window-Manager/ IceWM - The Cool Window Manager] - Подробное вступление на OSNews<br />
* [http://polishlinux.org/apps/window-managers/icewm-a-desktop-for-windows-emmigrants/ IceWM - A desktop for Windows emigrants] - Обзор и руководство от polishlinux.org</div>
Vadik
https://wiki.archlinux.org/index.php?title=Yaourt_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=189713
Yaourt (Русский)
2012-03-16T21:26:08Z
<p>Vadik: </p>
<hr />
<div>[[Category:Управление пакетами (Русский)]]<br />
{{i18n|Yaourt}}<br />
{{Warning|Yaourt это неофициальный, неподдерживаемый разработчиками ArchLinux сторонний скрипт.}}<br />
{{Note|Пожалуйста, сообщайте об ошибках в [https://bugs.archlinux.fr// багтрекер archlinux.fr].}}<br />
<br />
'''Y'''et '''A'''n'''O'''ther '''U'''ser '''R'''epository '''T'''ool. Yaourt это поддерживаемая сообществом [http://archlinux.fr/yaourt archlinux.fr] обёртка для pacman, которая, помимо работы с бинарными пакетами, предоставляет прямой доступ к [[AUR]], и позволяет собирать и устанавливать пакеты автоматически. Yaourt использует тот же синтаксис, что и pacman, это избавляет вас от необходимости изучения нового способа поддержки системы, а так же добавляет новые возможности. Yaourt увеличивает мощность и простоту pacman, добавляя еще больше полезных функций и предоставляя приятный, цветной вывод, интерактивный режим поиска, и многое другое. Это наверняка то, что вам нужно<br />
<br />
<br />
==Установка==<br />
Вы можете установить {{aur|yaourt}} из [[AUR]]<br />
<br />
{{Note|yaourt также доступен в [[unofficial user repositories|неоффициальных пользовательских репозиториях]], в том числе и в {{ic|archlinuxfr}}.}}<br />
<br />
==Настройка прокси==<br />
Если доступ в интернет осуществляется через HTTP-прокси, то в файле {{ic|~/.bashrc}} нужно будет установить переменные окружения {{ic|http_proxy}} и {{ic|https_proxy}} (если переменную {{ic|https_proxy}} не установить, то возникнут проблемы при сборке пакетов из AUR).командой:<br />
$ export http_proxy='<nowiki>http://proxy.hostname.com:port</nowiki>'<br />
$ export https_proxy='<nowiki>https://proxy.hostname.com:port</nowiki>'<br />
<br />
Для более подробных сведений вы можете обратится к справочной странице {{ic|curl}}.<br />
<br />
[[sudo]] не поддерживает такие переменные окружение как {{ic|http_proxy}}, поэтому, для использования sudo, добавьте в {{ic|/etc/sudoers}} строки:<br />
Defaults env_keep += "http_proxy"<br />
Defaults env_keep += "https_proxy"<br />
Defaults env_keep += "ftp_proxy"<br />
{{Warning|Файл {{ic|/etc/sudoers}} гораздо безопаснее редактировать не напрямую, а используя {{ic|visudo}}.}}<br />
<br />
==Использование yaourt==<br />
<br />
Установить пакеты (в том числе пакеты расположенные в [[AUR]]) командой:<br />
<br />
{{bc|$ yaourt ''название_пакета''}}<br />
<br />
Обновить систему вместе с пакетами из [[AUR]] командой:<br />
{{bc|$ yaourt -Syua}}<br />
<br />
==Примеры==<br />
Поиск и установка пакета:<br />
{{bc|$ yaourt <название пакета>}}<br />
Синхрониазация базы данных, обновление пакетов, поиск обновлений для пакетов из AUR и dev-версий (все пакеты, основанные на cvs, svn, git, bzr(...)-версиях):<br />
{{bc|$ yaourt -Syu --devel --aur}}<br />
Сборка пакета из исходных кодов:<br />
{{bc|$ yaourt -Sb <пакет>}}<br />
Проверить, редактировать, объединить или удалить *.pac* файлы:<br />
{{bc|$ yaourt -C}}<br />
Получить PKGBUILD:<br />
{{bc|$ yaourt -G <пакет>}}<br />
Собрать пакет и сохранить его в нужной директории:<br />
{{bc|$ yaourt -Sb --export <dir> <package>}}<br />
Создать резервную копию базы данных:<br />
{{bc|$ yaourt -B}}<br />
Восстановить backup файл:<br />
{{bc|$ yaourt -Q --backupfile <file>}}<br />
<br />
См. также: [[Pacman]] и [[Pacman Tips]].<br />
<br />
==Решение проблем==<br />
<br />
===Проблема с контрольными суммами ("wrong hashes")===<br />
Если возникает ситуация, когда после загрузки исходных кодов yaourt указывает на неправильные контрольные суммы (но вы уверены в правильности сумм и сообщения о подобных проблемах больше ни у кого не встречаются), выполните следующие действия:<br />
<br />
Проверьте, существует ли в {{ic|/tmp/yaourt-tmp-имя_вашего_пользователя/название_пакета/src/}} файл, который является символической ссылкой на {{ic|/var/cache/yaourt/build}}.<br />
Удалите этот файл (так как из-за проблем при сборке, yaourt не может удалить его самостоятельно) или всю дирректорию для сборки {{ic|/tmp/yaourt-tmp-имя_вашего_пользователя}}, теперь пакет должен собираться и/или обновляться нормально!<br />
<br />
Данная проблема может возникнуть после сбоев при обновлении системы и/или из-за ошибки в yaourt.<br />
<br />
===Yaourt дважды запрашивает пароль===<br />
Если в файле {{ic|/etc/sudoers}} для {{ic|sudo}} отключить тайм-аут на введенный пароль, отредактировав:<br />
Defaults timestamp_timeout=0<br />
то yaourt будет запрашивать пароль при каждом действии, требующем привилегий root. Во избежание этого добавьте:<br />
SUDONOVERIF=1<br />
в файлы {{ic|/etc/yaourtrc}} или {{ic|~/.yaourtrc}}<br />
<br />
===Yaourt и обновление pacman 4===<br />
<br />
Если, из-за конфликтов с зависимостями устаревшей версии yaourt, вам не удается обновить pacman до 4 версии, и, при этом, используется репозиторий archlinux.fr, в файле {{ic|/etc/pacman.conf}} измените<br />
SyncFirst = pacman<br />
на<br />
SyncFirst = pacman yaourt package-query<br />
<br />
Это позволит обновить yaourt и package-query одновременно с обновлением pacman к версии pacman 4.<br />
<br />
==Внешние ссылки==<br />
* [http://www.archlinux.fr/yaourt-en/ страница yaourt]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=132990 yaourt and "wrong hashes"]</div>
Vadik