http://wiki.rosalab.com/ru/api.php?action=feedcontributions&user=ElectroPositiv&feedformat=atomRosalab Wiki - Вклад участника [ru]2024-03-29T07:01:20ZВклад участникаMediaWiki 1.26.4http://wiki.rosalab.com/ru/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%9E%D0%B1%D0%BB%D0%B0%D0%BA%D0%BE_Mail.ru&diff=14753Подключение Облако Mail.ru2016-01-19T19:46:16Z<p>ElectroPositiv: Изменил самую первую ссылку, так как она была битой. На облаке произошли изменения и изменился адрес помощи для linux.</p>
<hr />
<div>* Идем на сайт [https://help.mail.ru/cloud_web/app/linux https://help.mail.ru/cloud_web/app/linux]<br />
<br />
* Скачиваем по ссылкам приложение (для каждой архитектуры совой файл)<br />
<br />
64bit - https://desktopcloud.cdnmail.ru/linux/amd64/cloud<br />
<br />
32bit - https://desktopcloud.cdnmail.ru/linux/i386/cloud<br />
<br />
[[Файл:Ml1.png|300px]]<br />
<br />
* Скачиваем файл<br />
<br />
* Открываем папку с скачанным файлом, он будет называться '''cloud'''<br />
<br />
* Кликаем правой кнопкой мыши по нему, далее '''Свойства'''<br />
<br />
[[Файл:Ml2.png|200px]]<br />
<br />
* Идем на вкладку '''Права''' и ставим галочку напротив надписи: '''Является выполняемым''', далее нажимаем кнопку "ОК"<br />
<br />
[[Файл:Ml3.png|200px]]<br />
<br />
* Теперь все готово к запуску. Кликаем по файлу два раза мышкой и перед нами вход в Облако Mail.ru<br />
<br />
[[Файл:Ml4.png|200px]]<br />
<br />
Всё. Можем пользоваться.<br />
<br />
[[Категория:HOWTO]][[Категория:Руководства]]</div>ElectroPositivhttp://wiki.rosalab.com/ru/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%D0%A2%D0%BE%D0%BD%D0%BA%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B_%D1%81_Urpmi/c000095&diff=12877Обсуждение:Тонкости работы с Urpmi/c0000952015-03-30T22:21:09Z<p>ElectroPositiv: Новый комментарий от ElectroPositiv: Посмотрите еще "Комильфошки" от Сергея Голубева. Эта категория вся нерабочая. Так к…</p>
<hr />
<div>Посмотрите еще "Комильфошки" от Сергея Голубева. Эта категория вся нерабочая. Так как ссылки там все нерабочие.<br />
{{wl-comment: }}</div>ElectroPositivhttp://wiki.rosalab.com/ru/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%D0%A2%D0%BE%D0%BD%D0%BA%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B_%D1%81_Urpmi/c000094&diff=12876Обсуждение:Тонкости работы с Urpmi/c0000942015-03-30T22:16:54Z<p>ElectroPositiv: Новый комментарий от ElectroPositiv: Устареть то она устарела, но она хотя бы даст общиее представление и направление та…</p>
<hr />
<div>Устареть то она устарела, но она хотя бы даст общиее представление и направление таким новичкам как я.<br />
{{wl-comment: }}</div>ElectroPositivhttp://wiki.rosalab.com/ru/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%D0%A0%D0%B5%D1%86%D0%B5%D0%BF%D1%82%D1%8B/howto/c000093&diff=12875Обсуждение:Рецепты/howto/c0000932015-03-30T21:31:21Z<p>ElectroPositiv: Новый комментарий от ElectroPositiv: В категории "Комильфошки" от Сергея Голубева все ссылки нерабочие. {{wl-comment: }}</p>
<hr />
<div>В категории "Комильфошки" от Сергея Голубева все ссылки нерабочие.<br />
{{wl-comment: }}</div>ElectroPositivhttp://wiki.rosalab.com/ru/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%D0%A2%D0%BE%D0%BD%D0%BA%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B_%D1%81_Urpmi/c000090&diff=12870Обсуждение:Тонкости работы с Urpmi/c0000902015-03-30T21:08:29Z<p>ElectroPositiv: </p>
<hr />
<div>на странице Easy Urpmi или urpmi.edumandriva.ru.<br />
В тексте выше первая ссылка нерабочая. Вторая переадресовывает на англоязычный сайт http://www.mandriva.com/en/<br />
{{wl-comment: }}<br />
P.S. Ссылки исправил.</div>ElectroPositivhttp://wiki.rosalab.com/ru/index.php?title=%D0%A2%D0%BE%D0%BD%D0%BA%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B_%D1%81_Urpmi&diff=12869Тонкости работы с Urpmi2015-03-30T21:06:11Z<p>ElectroPositiv: /* {{Программа|urpmi.addmedia}} */</p>
<hr />
<div><br />
{{Программа|urpmi}} вне всяких сомнений является одним из наиболее важных инструментов ROSA. С помощью {{Программа|urpmi}} вы с лёгкостью сможете управлять пакетами. Если вы совладаете с {{Программа|urpmi}}, вы никогда не будете испытывать «ад зависимостей», на который жалуются многие неопытные пользователи. Например, простая команда {{cmd|urpmi sylpheed}} установит почтовый клиент [http://sylpheed.sraoss.jp/en/ Sylpheed], а вместе с ним и все необходимые библиотеки.<br />
= Где получить дополнительную информацию об {{Программа|urpmi}} =<br />
<br />
Urpmi — важный инструмент для всех пользователей ROSA, и он требует какое-то время для изучения. Эта страница даёт обзор наиболее часто используемых параметров. Следующие ресурсы позволяют получить дополнительную информацию об urpmi:<br />
<br />
* на {{Программа|man}}-страницах можно узнать обо всех параметрах urpmi; страницы руководств — самые актуальные источники информации;<br />
* на странице [[Tools/urpmi/Upgrade|обновление ROSA с помощью urpmi]] обсуждается обновление ROSA с одной основной версии до другой, используя urpmi.<br />
<br />
{{Примечание|Страницы руководств (man-страницы) можно открывать во многих веб-браузерах, просто введите ''man:urpmi'' в командной строке браузера.}}<br />
<br />
Помимо небольшого введения на этой странице даётся обзор информации, отсутствующей в двух, приведённых выше, источниках. Предполагается, что вы имеете представление как пользоваться страницами руководств, и что вы ознакомились с выше указанной страницей. Если вы не сделали этого раньше, то рекомендуется сделать это именно сейчас. После этого вы можете вернуться к чтению этой страницы.<br />
<br />
{{Предупреждение|Данная страница может оказаться полезной, так как имеется ряд неочевидных проблем, с которыми вы можете столкнуться.}}<br />
<br />
== Использование {{Программа|urpmi}} ==<br />
=== Краткий список базовых функций ===<br />
<br />
<table border="0" cellspacing="0" cellpadding="1" style="border-style: solid; border-width: 1px; border-color: #AED6F2"> <tr><th bgcolor="#AED6F2"> <strong>Команда</strong> </th><th bgcolor="#AED6F2"> <strong>Что делает</strong> </th></tr><br />
<tr><td> urpmi --auto-update </td><td>объединяет функциональность urpmi.update -a и urpmi --auto-select</td></tr><br />
<tr><td>urpmq -i xxx.rpm</td><td>показывает информацию о пакете xxx.rpm, находящемся в текущем каталоге</td></tr><br />
<tr><td>urpmq -il xxx.rpm</td><td>показывает информацию о пакете xxx.rpm, находящемся в текущем каталоге и список файлов, которые он устанавливает</td></tr><br />
<tr><td>urpmq --changelog xxx.rpm</td><td>выводит журнал изменений пакета, находящегося в текущем каталоге</td></tr><br />
<tr><td>urpmq --whatrequires xxx.rpm</td><td>показывает, какие пакеты требуются пакету xxx.rpm, находящемуся в текущем каталоге</td></tr><br />
<tr><td>urpmf /путь/к/файлу</td><td>какой пакет установил «файл» в каталог «/путь/к»</td></tr><br />
<tr><td>urpmi --fuzzy --test xxx</td><td>показывает все rpm, совпадающие со строкой «xxx»</td></tr><br />
<tr><td>rpm -qf /path/to/file</td><td>то же, что и urpmf, но ищет среди установленных пакетов</td></tr><br />
<br />
<tr><td>urpmi.update updates</td><td>обновляет локальные данные о доступных пакетах хранилища «updates» </td></tr><br />
<tr><td>urpmc </td><td>обновляет локальные данные о доступных пакетах, принадлежащих ко всем источникам</td></tr><br />
<tr><td>&nbsp;</td><td>&nbsp;</td></tr><br />
<tr><th bgcolor="#AED6F2"> <strong>Команда</strong> </th><th bgcolor="#AED6F2"><strong>Что делает</strong></th></tr><br />
<tr><td>urpme xxx</td><td>удаляет пакет «xxx» (и все пакеты, зависящие от этого пакета)</td></tr><br />
<tr><td>urpmi --keep xxx.rpm</td><td> устанавливает пакет «xxx.rpm», содержащийся в текущем каталоге, со всеми зависимостиями этого пакета, но если что-нибудь в результате установки должно быть удалено, пакет установлен не будет.</td></tr><br />
<tr><td>urpmi --update --auto-select</td><td>устанавливает доступные обновления с включённых источников</td></tr><br />
<tr><td>urpmi --test --keep --auto --auto-select</td><td>обновить все пакеты с включённых источников, но ничего не устанавливать и не удалять, просто сообщить, что это будет работать</td></tr><br />
<tr><td>urpmi --keep --auto --auto-select</td><td>обновить все пакеты из включённых источников, но ничего не удалять, просто сообщить если что-то не работает</td></tr><br />
<tr><td>urpmi --auto-select</td><td>автоматически выбрать пакеты, которые можно обновить</td></tr><br />
</table><br />
<br />
= {{Программа|urpmi.addmedia}} =<br />
<br />
Всё начинается с добавления репозитория (или «хранилища», «зеркала»). Репозиторий можно добавить с помощью программы {{Программа|urpmi.addmedia}}.<br />
<br />
Список источников можно получить на странице [http://www.zarb.org/~trem/easyurpmi/?language=ru/ Easy Urpmi] или [http://mandrivausers.org/easyurpmi/?language=ru mandrivausers.org]. Формат команды для добавления репозитория имеет следующий вид:<br />
<br />
<pre><br />
urpmi.addmedia имя_источника ftp://ftp.сайт.com/путь/к/ROSA/RPMS<br />
</pre><br />
<br />
Но удобнее использовать программу с графическим интерфейсом (команда {{cmd|edit-urpm-sources.pl}}). Эту же программу можно запустить из центра управления ROSA (раздел «Управление программами», пункт «Настройки источников настройки/обновления ПО»).<br />
<br />
Структура зеркал ftp для ROSA включает в себя следующее:<br />
* <b>main</b> — содержит наиболее важные программы, поддерживаемые ROSA;<br />
* <b>contrib</b> — содержит дополнительные программы, добавленные участниками сообщества ROSA, но которые не обязательно должны получать обновления по безопасности;<br />
* <b>non-free</b> — содержит некоторые программы, которые не являются свободными.<br />
<br />
Каждое хранилище подразделяется ещё на 4:<br />
<br />
* <b>release</b> — здесь лежат пакеты в том состоянии, в котором они находились на момент выхода релиза;<br />
* <b>updates</b> — здесь лежат пакеты, обновлённые со дня выхода релиза по причинам безопасности или исправления ошибок. Это хранилище должны быть обязательно включено, даже если скорость вашего Интернет-соединения низкая. При добавлении хранилища с обновлениями добавьте переключатель {{cmd|--update}}, чтобы {{Программа|urpmi}} мог отличить это хранилище от обычных хранилищ;<br />
* <b>backports</b> — здесь лежат некоторые пакеты с новыми версиями программ, бэкпортированными из cooker;<br />
* <b>testing</b> — используется для тестирования свежих обновлений, что позволяет участникам, сообщающим об ошибках, проверить корректность обновлений.<br />
<br />
Чтобы устанавливать пакеты с зеркала, urpmi необходимо предоставить один из файлов, хранящих в сжатом виде либо <i>минимально необходимый</i>, лиюо <i>полный</i> набор данных о пакетах.<br />
<br />
Для более полного понимания организации структуры зеркала рекомендуется ознакомиться со страницами [[политики структуры зеркала]] и [[политики хранилища программ]].<br />
<br />
=== Восстановление потерянных источников (cds) ===<br />
<br />
Если в списке хранилищ отсутствуют некоторые CD или DVD, то их можно добавить в список с помощью команды: <pre>urpmi.addmedia --distrib cdrom removable://mnt/cdrom</pre>. В момент запуска команды на исполнения в приводе компакт-дисков должен находиться носитель, который нужно добавить в список.<br />
<br />
{{Примечание|Приведённый формат команды соответствует системам, версия которых ниже 2007.1. Все отсоединяемые устройства теперь монтируются в каталоге ''/media''.}}<br />
<br />
=== Копирование CD в домашний каталог и использование копий в urpmi ===<br />
<br />
Если вам не нравится жонглировать дисками при обновлении системы и у вас есть свободное место, создайте каталог (например: {{Источник|/home/uid/CDS/}}), скопируйте в этот каталог рекурсивно каталоги {{Источник|base/}} и {{Источник|ROSA/}} (т. е. вместе со всем содержимым их вложенных подкаталогов) с первого установочного CD. Затем, скопируйте все каталоги, начиная с {{Источник|RPMS2}} вплоть до {{Источник|RPMS8}}, со всех CD/DVD в каталог {{Источник|ROSA/}}. После извлечения или отключения установочных CD выполните следующую команду от имени суперпользователя root:<br />
<br />
<pre><br />
urpmi.addmedia --distrib HD file://home/uid/CDS<br />
</pre><br />
<br />
Так как в ROSA, начиная с версии {{Версия|2010.1}}, структура каталогов на CD была изменена, список каталогов, которые нужно рекурсивно скопировать, выглядит теперь так:<br />
<br />
<pre><br />
CD1:/media/main<br />
CD2:/media/main2<br />
CD3:/Applications<br />
/Drivers<br />
/media/commercial<br />
/media/dkms<br />
/media/drivers<br />
/main3<br />
CD4:/kde3.3<br />
/media/main4<br />
CD5:/media/main5<br />
CD6:/Applications<br />
/media/main6<br />
</pre><br />
<br />
По окончании копирования выполните следующие команды:<br />
<br />
<pre><br />
cd /home/uid/CDS<br />
genhdlist<br />
</pre><br />
<br />
Затем, воспользуйтесь менеджером источников. К нему можно получить доступ из центра управления ROSA ({{Меню|центр управления ROSA --> Управление программами --> Настройка источников установки/обновления ПО}}). Выберите созданный вами каталог и отключите все записи, имеющие отношение к CD.<br />
<br />
Другой метод заключается в копировании образов ISO в различные точки монтирования. Подробнее смотри [[#Copy_CDs_to_Hard_Drive_and_mounting_each_in_loopback|копирование CD на жёсткий диск и последующее их монтирование]].<br />
<br />
=== Копирование rpms (включая установочные CD) в отдельный каталог. Использование копии в urpmi ===<br />
<br />
Создайте каталог для хранения всех rpms, например {{Источник|~/RPMS}}<br />
<br />
Чтобы скопировать сразу «кучу» rpms (с установочных CD, например):<br />
<br />
<pre><br />
find /INSTALL_CDS/ -name *.rpm -print -exec cp {} ~/RPMS \;<br />
</pre><br />
<br />
Если вы скопировали установочные CD на жёсткий диск, или у вас есть их образы ISO на диске (о том, как монтировать образы, смотри [[#Copy_CDs_to_Hard_Drive|копирование CD на жёсткий диск]]), это можно сделать за один шаг. <br />
<br />
В этом примере CD монтируются как {{Источник|/INSTALL_CDS/CD1}}, {{Источник|/INSTALL_CDS/CD2}} и т. д. <br />
<br />
<pre><br />
cd ~/RPMS<br />
<br />
genhdlist<br />
</pre><br />
<br />
Это приведёт к созданию файлов {{Источник|hdlist.cz}} и {{Источник|sythesis.hdlist.cz}}, которые основываются на том, что они найдут в каталоге, в котором находятся.<br />
<br />
Найдите публичные ключи для rpms и скопируйте их в {{Источник|~/RPMS/pubkey}}. Они должны находиться в {{Источник|INSTALL_CDS/CD1/media/media_info}}:<br />
<br />
<pre><br />
mkdir ~/RPMS/pubkey<br />
<br />
cp /INSTALL_CDS/CD1/media/media_info/pubkey* ~/RPMS/pubkey/<br />
</pre><br />
<br />
Затем, от имени суперпользователя добавьте источник:<br />
<br />
<pre><br />
urpmi.addmedia local_rpms file://home/uid/RPMS/<br />
</pre><br />
<br />
{{Примечание|Обратите внимание на вкладку «Обсуждение» соответствующей английской статьи.}}<br />
<br />
=== Добавление источника для дистрибутива ===<br />
<br />
{{Программа|urpmi}} может добавить источники (т. е. main, updates, contrib ...) с выбранного зеркала с помощью одной-единственной команды. Наберите в командной строке следующую команду от имени суперпользователя:<br />
<br />
<pre><br />
urpmi.addmedia --distrib ftp://'MIRROR_SITE'/pub/ROSA/official/'VERSION'/'ARCH'<br />
</pre><br />
<br />
где:<br />
* 'MIRROR_SITE' действующий URL сервера ftp;<br />
* 'VERSION' версия вашей системы ROSA, для который вы хотите добавить источник<br />
* 'ARCH' одна из двух архитектур: i586 или x86_64, или возможно другая, которая существует не для всех версий ROSA (например sparc, pcc и т. д.).<br />
<br />
= {{Программа|urpmi.update}} =<br />
<br />
Команда {{cmd|urpmi.update}} обновляет список пакетов репозитория. Этот список меняется всякий раз, когда на сервере меняются пакеты. Таким образом, список необходимо обновлять каждый раз, когда вы захотите установить новый пакет с репозитория, в котором возможны изменения среди пакетов, например ROSA Cooker. Если вы пользуетесь репозиторием стабильного релиза, то такой репозиторий обычно не изменяется, поэтому нет необходимости обновлять список пакетов перед установкой какого-либо пакета. Это работает примерно следующим образом:<br />
<br />
<pre><br />
urpmi.update название_источника<br />
</pre><br />
<br />
или<br />
<br />
<pre><br />
urpmi.update -a<br />
</pre><br />
<br />
Аргумент -a означает "все источники".<br />
<br />
= {{Программа|urpmi.removemedia}} =<br />
<br />
Если Вы хотите избавиться от репозитория, используйте следующую команду:<br />
<br />
<pre><br />
urpmi.removemedia nameofmedia<br />
</pre><br />
<br />
= {{Программа|urpmf}} =<br />
<br />
С помощью {{Программа|urpmf}} можно узнать, к какому пакету принадлежит тот или иной файл, а также посмотреть описание пакета и т. п.<br />
<br />
Допустим, что вы хотите скомпилировать программу, написанную на языке программирования C, а компилятор жалуется на отсутствие файла {{Источник|jpeglib.h}}. Достаточно набрать следующую команду:<br />
<br />
{{cmd|urpmf jpeglib.h}}<br />
<br />
Например, вывод команды выглядит следующим образом:<br />
<br />
<pre><br />
libjpeg62-devel:/usr/include/jpeglib.h<br />
mozilla-devel:/usr/include/mozilla-1.4a/jpeg/jpeglib.h<br />
</pre><br />
<br />
Это означает, что заголовочный файл {{Источник|jpeglib.h}} является частью пакета {{pkg|libjpeg62-devel}}. Теперь, чтобы его установить, нужно набрать следующую команду:<br />
<br />
{{cmd|urpmi libjpeg62-devel}}<br />
<br />
Другой пример. Допустим, что вы хотите установить почтовый клиент, но вы не знаете ни одного почтового клиента для Linux. Вы можете выполнить поиск по описанию пакетов, используя выражения «mail» и «client». Например, команда {{cmd|urpmf --summary mail -a client}} возвратила следующее: <br />
<br />
<pre><br />
evolution:Integrated GNOME mail client, calendar and address book.<br />
squirrelmail:Squirrelmail is a webmail client for PHP4.<br />
sylpheed-claws:Enhanced version of the Sylpheed e-mail client<br />
comsat:A mail checker client and comsat mail checking server.<br />
cscmail:CSCMail is a GTK email client written in Perl<br />
sylpheed:A GTK+ based, lightweight, and fast e-mail client<br />
tradeclient:Email Client with PIM features for X<br />
</pre><br />
<br />
Параметр {{cmd|--summary}} используется для поиска по описанию. {{cmd|-a}} означает логическое «И».<br />
<br />
= {{Программа|urpmi}} =<br />
<br />
Это — главная команда программы управления пакетами, которая используется для установки пакетов вместе со всеми зависимостями:<br />
<br />
<pre><br />
urpmi имя_пакета<br />
</pre><br />
<br />
Например, если вы считаете, что {{Программа|Sylpheed}} — достойный для установки почтовый клиент, его можно установить с помощью команды: {{cmd|urpmi sylpheed}}.<br />
<br />
'''Замечание''': команда {{cmd|urpmi имя_пакета}} не обязательно установит последнюю версию пакета. {{Программа|Urpmi}} сравнивает номер версии установленного пакета с номером версии пакета из включённого источника. Исключение составляет тот факт, что иногда обновление пакета доступно под немного иным названием, обе версии пакета, старая и новая, остаются доступными во включённом источнике. Это делается по причинам обратной совместимости. <br />
<br />
Here is a notable example {{cmd|urpmi autoconf}} will not result in the latest version being installed, for the highest version of that package name is autoconf2.5-2.60.<br />
<br />
Вместо этого следует использовать команду {{cmd|urpmi autoconf2.5}}, которая приведёт к установке последней версии 2.5*. <br />
<br />
{{Примечание|Заметьте, что в вашей системе могут быть установлены 2 версии: ROSA автоматически выберет наиболее подходящую. <br />
Для получения более подробной информации по данному примеру смотри ''/usr/share/doc/autoconf-2.13/IMPORTANT.README.MDK''.}}<br />
<br />
Ниже даётся несколько замечаний об использовании команды {{cmd|urpmq —fuzzy}}, разъясняющих, как избежать в будущем подобных проблем с версиями.<br />
<br />
Ещё один пример использования {{Программа|urpmi}} — <b>обновление системы с помощью последних обновлений по безопасности и баг-фиксам</b>.<br />
<br />
<pre><br />
urpmi.update updates && urpmi --update --auto-select<br />
</pre><br />
<br />
В этом примере предполагается, что у {{Программа|urpmi}} есть источник под названием «updates», который был объявлен при добавлении как «источник обновлений». Поскольку содержимое источника обновлений меняется часто, необходимо периодически проверять наличие новых обновлений с помощью urpmi.update. Символы <b>{{cmd|&&}}</b> означают «если первая команда успешно выполнена, выполнить вторую команду». Во второй команде ключ {{cmd|--update}} означает «искать только в источниках, заявленных как обновляемые», а ключ {{cmd|--auto-select}} означает «выбрать доступные обновления для пакетов, установленных в системе». {{Программа|Urpmi}} выведет список пакетов, доступных для обновления, и спросит разрешения о продолжении своей работы.<br />
<br />
Если добавить ключ {{cmd|--auto}}, все обновляемые пакеты будут обновлены, ''' включая''' все требуемые зависимости. Если вы предпочитаете использовать графический интерфейс, воспользуйтесь программой {{Программа|rpmdrake}} из центра управления ROSA: {{Меню|Управление программами}} → {{Меню|Обновление системы}}.<br />
<br />
<br />
<br />
== {{Программа|urpmi --parallel}} ==<br />
<br />
В параллельном режиме работы {{Программа|urpmi}} обновления загружаются на одну из машин, а она в свою очередь раздаёт их остальным компьютерам, входящим в локальную сеть (смотри [http://archives.mandrivalinux.com/expert/2006-03/msg00001.php]).<br />
<br />
Команда {{cmd|urpmi --parallel}} установит обновления на всех определённых вами компьютерах. Подробнее смотри man-страницу {{Программа|urpmi}} ({{cmd|man urpmi}}), а также [http://www.happyassassin.net/2005/05/04/a-quick-guide-to-urpmi-parallel].<br />
<br />
Параллельный режим urpmi работает следующим образом: вы запускаете на выполнение команду {{cmd|urpmi}}, которая выполняется параллельно на нескольких машинах. Машина, на который вы запустили команду, тестирует результат на каждой машине из группы по очереди, загружает все необходимые пакеты для всех машин группы, предоставляет соответствующие пакеты каждый машине, затем, вызывает {{Программа|urpmi}} на машине для выполнения актуальной установки. Это отличная идея для быстрой установки программ на всех ваших компьютерах, или даже для поддержания программного обеспечения на всех компьютерах в актуальном состоянии с помощью нескольких команд, кроме того, это позволяет экономно использовать полосу пропускания канала, так как каждый необходимый пакет загружается только один раз. Единственный недостаток в настоящий момент — вы не можете включить сервер в группу, что является недостатком для малых домашних локальных сетей.<br />
<br />
Итак, как же этом пользоваться. На самом деле, всё просто. Сначала проверьте, что вы можете достучаться с сервера до каждой клиентской машины через {{Программа|ssh}} от имени суперпользователя (вы можете ввести идентификационную фразу или пароль, или можно использовать {{cmd|ssh-add}} для настройки ключей). Итак, надо установить {{pkg|urpmi-parallel-ssh}} на серверной машине, и исправить файл {{Источник|/etc/urpmi/parallel.cfg}}, он должен выглядеть примерно таким образом:<br />
<br />
<pre><br />
local:ssh:toy:htpc<br />
</pre><br />
<br />
первый параметр — имя группы (оставлено на ваше усмотрение), второй параметр оставьте «ssh». Оставшиеся параметры — имя хостов машин в группе. Их может быть сколько угодно (сервер не должен входить в их список: {{Программа|urpmi}} просто откажется работать, обнаружив свои lock-файлы).<br />
<br />
Далее, вы можете использовать этот файл. На сервере наберите команду:<br />
<br />
<pre><br />
urpmi --parallel local somepackage<br />
</pre><br />
<br />
До тех пор, пока {{Программа|urpmi}} на сервере будет иметь доступ ко всем пакетам, необходимым всем клиентским машинам из своих источников urpmi, всё должно работать гладко. Простейший способ гарантировать это — иметь на всех машинах (на сервере и клиентах) одни и те же источники urpmi.<br />
<br />
Кроме того, можно постоянно поддерживать группу машин в актуальном состоянии. Например, чтобы содержать все машины обновлёнными, в домашней сети, которая включает машины zen (сервер), toy и htpc, запустите следующую последовательность команд на zen:<br />
<br />
<pre><br />
fanout "localhost toy htpc" "urpmi.update -a"<br />
</pre><br />
<br />
программа {{Программа|fanout}} запускает одну команду на нескольких машинах одновременно, используя {{Программа|ssh}}.<br />
<br />
<pre><br />
urpmi -auto-select -keep -noclean -v<br />
</pre><br />
<br />
{{cmd|noclean}} оставляет пакеты на машине zen после установки; это значит, что когда команда {{cmd|parallel}} будет запущена в следующий раз, она не станет скачивать эти пакеты заново.<br />
<br />
<pre><br />
urpmi --parallel local -auto-select -keep -v<br />
</pre><br />
<br />
<br />
= {{Программа|urpme}} =<br />
<br />
{{cmd|urpme}} — команда, предназначенная для удаления программного обеспечения с компьютера. Также как и {{Программа|urpmi}}, {{Программа|urpme}} обрабатывает зависимости и извещает пользователя, что установленное программное обеспечение зависит от того программного обеспечения, которое он собирается удалить. В таком случае, у пользователя есть возможность отменить процедуру удаления или удалить пакет вместе с другими зависящими от него пакетами. Использование:<br />
<br />
{{cmd|urpme название_пакета}}<br />
<br />
Например, в системе установлено 2 почтовых клиента: Sylpheed и Evolution. В этом случае, если один из клиентов не используется, его можно удалить. К тому же, таким образом можно освободить немного места на жёстком диске. Чтобы удалить пакет Evolution, воспользуйтесь следующей командой:<br />
<br />
{{cmd|urpme evolution}}<br />
<br />
= {{Программа|urpmq}} =<br />
<br />
{{Программа|urpmq}} позвляет Вам запрашивать базу данных {{Программа|rpm}}, благодаря чему Вы можете выяснить информацию о пакетах, установленных Вами, а так же о других вещах в базе данных, например о том, какие у Вас имеются источники установки. <br />
<pre><br />
[root@isis root]# urpmq --list-media <br />
contrib<br />
cooker<br />
plf<br />
</pre><br />
Предостережение: Используя {{Программа|urpmq}} для поиска пакетов, удостоверьтесь, что понимаете разницу между использованием его с опцией <i>--fuzzy</i> и без нее. Вы можете не найти некоторые пакеты, которые Вы искали если не будете осторожными. Если {{Программа|urpmq}} находит пакет, название которого точно соответствует Вашему запросу, по умолчанию она выводит только название этого пакета, и Вы не увидите других пакетов, которые содержат то же название.<br />
<br />
Например: <br />
<br />
<pre><br />
<br />
# Представьте, что Ваш лучший друг рассказал Вам о vegastrike, классной 3D-игре.<br />
[root@localhost augustin]# urpmq vegastrike <br />
vegastrike <br />
# Круто! Есть пакет ROSA с точно таким именем!<br />
# Но Вы не видите других пакетов, которые содержат то же мя!<br />
<br />
# Запросим еще раз: обратите внимание на пропущенную 'e' в конце названия пакета<br />
[root@localhost augustin]# urpmq vegastrik <br />
No package named vegastrik<br />
The following packages contain vegastrik: vegastrike, vegastrike-data<br />
You should use "-a" to use all of them<br />
# В этот раз результат запроса сильно отличается<br />
# Мы увидели уже не один, а два пакета. <br />
<br />
# Сравните следующий запрос с предыдущими двумя<br />
[root@localhost augustin]# urpmq --fuzzy vegastrike <br />
vegastrike<br />
vegastrike-data<br />
// Обратите внимание на разницу, которую обеспечивает --fuzzy<br />
</pre><br />
<br />
{{cmd|urpmq --fuzzy}} так же очень полезна, когда нужно узнать какие другие доступные версии пакета имеются: иногда новая мажорная версия не предоставляет полной обратной совместимости. По этой причине, новая версия может распространяться под немного другим именем пакета. Сейчас, Вы уверены, что не пропустите ничего. <br />
<br />
Например:<br />
<br />
<pre><br />
[root@localhost augustin]# urpmi mplayer<br />
#Это не установит последнюю версию проигрывателя<br />
[root@localhost augustin]# urpmq --fuzzy mplayer<br />
The following packages contain mplayer:<br />
kmplayer<br />
mplayer<br />
mplayer-fonts<br />
mplayer-gui<br />
mplayer-skins<br />
mplayer1.0<br />
mplayer1.0-gui<br />
mplayerplugin<br />
transcode<br />
xmms-mplayer<br />
# Видите! Новый релиз 1.0 распространяется под другим названием <br />
# Вы предупреждены!<br />
</pre><br />
<br />
== gurpmi ==<br />
<br />
{{программа|gurpmi}} — графический фронт-энд для программы {{программа|urpmi}}. Может использоваться из командной строки для установки и поиска пакетов. Используется программой {{программа|rpmdrake}} для отображения сообщений о необходимости выполнения некоторых действий со стороны пользователя.<br />
<br />
== rpmdrake ==<br />
<br />
Для тех же задач ROSA предлагает набор графических инструментов. Подробнее см. [[Tools/MandrivaUpdate|Rpmdrake]].<br />
<br />
== smart ==<br />
<br />
Пакеты {{pkg|smart}}, {{pkg|smart-update}} и {{pkg|smart-gui}}, первоначально использовавшиеся фирмой Conectiva, представляют собой инструменты, основанные на языке программирования Python. Пакеты доступны в {{источник|contrib}}. Эти инструменты отличаются высокой скоростью работы, достаточной надёжностью, а также имеют некоторые преимущества перед оригинальными инструментами ROSA. Официально не поддерживаются. Домашняя страница: [http://labix.org/smart Smart Home]. На данный момент доступны во многих других дистрибутивах.<br />
<br />
= Вопросы безопасности =<br />
<br />
== Проблемы безопасности ==<br />
<br />
Чтобы программа {{программа|urpmi}} могла устанавливать пакеты, она должна быть запущена с привилегиями суперпользователя. Хитрый злоумышленник может обмануть пользователя, подсунув ему пакет для установки. Такие пакеты на первый взгляд выглядят как обычные пакеты, которыми регулярно пользуются множество пользователей, но в данном случае опасность заключается в том, что этот пакет может содержать программу-троян или какой-либо другой вредоносный код. Как только пакет будет установлен в системе, приложение может выпустить в систему какой-нибудь вирус, червя или даже программу-шпиона... До настоящего времени нам неизвестно о попытках использования таких эксплоитов, но в ближайшие несколько лет, когда GNU/Linux получит более широкое распространение, возможно, кто-то захочет попытаться это претворить в жизнь. К счастью, таких людей ждёт неудача, потому что внимание, уделяемое безопасности, всегда было неотъемлимой частью Linux-сообщества. Большинство пакетов имеют подпись, которая подтверждает подлинность пакета. Подробнее см. [[Docs/SysAdmin/Security/GnuPG|GnuPG]].<br />
<br />
Злоумышленник может попытаться внедрить вредоносную программу в пакет. Перед установкой {{программа|urpmi}} проверит целостность пакета, используя хэш-код MD5, и включённый в пакет ключ gpg. Подробнее см. соответствующий раздел.<br />
<br />
Иногда при работе с {{программа|urpmi}} могут быть получены следующие строки:<br />
<br />
<pre><br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
<br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
</pre><br />
<br />
Непонятно, в чём же здесь проблема: может быть файл был повреждён во время обновления, а может, процесс {{программа|urpmi}} был принудительно завершён нетерпеливым пользователем.<br />
<br />
Решение проблемы: удалить файл {{Источник|/var/lib/rpm/Pubkeys}}, повторно импортировать открытые ключи. См. [[Docs/SysAdmin/Security/GnuPG#rpm_package_validation_with_GnuPG_keys|GnuPG]].<br />
<br />
=== Хэширование MD5 ===<br />
<br />
Хэш MD5 представляет собой код, включённый в rpm-пакет. Этот код позволяет {{программа|urpmi}} проверить хэш пакета. Если по каким-либо причинам файл был повреждён, {{программа|rpm}} и {{программа|urpmi}} откажутся его устанавливать. <br />
<br />
Пример:<br />
<br />
<pre><br />
[root@localhost augustin]# urpmi kdesdk<br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
error: cannot open Pubkeys index using db3 - Invalid <br />
argument (22)<br />
The following packages have bad signatures:<br />
/var/cache/urpmi/rpms/kdesdk-3.1.3-9mdk.i586.rpm: Invalid <br />
signature ((SHA1) DSA sha1 MD5 GPG GPG#70771ff3 NOT OK)<br />
Do you want to continue installation ? (y/N) y<br />
installing /var/cache/urpmi/rpms/kdesdk-3.1.3-9mdk.i586.rpm<br />
error: /var/cache/urpmi/rpms/kdesdk-3.1.3-9mdk.i586.rpm: MD5 <br />
digest: BAD Expected(97f2ba5a91888cd3af40f89be6b65868) != <br />
(393221db35071aa90eaa73816a9a5ba8)<br />
unable to install package <br />
/var/cache/urpmi/rpms/kdesdk-3.1.3-9mdk.i586.rpm<br />
</pre><br />
<br />
В данном случае было получено два уведомления <i>Invalid signature ((SHA1) DSA sha1 MD5 GPG GPG#70771ff3 NOT OK)</i> и <i>MD5 digest: BAD Expected(97f2ba5a91888cd3af40f89be6b65868) != (393221db35071aa90eaa73816a9a5ba8)</i>. Файл {{Источник|kdesdk-3.1.3-9mdk.i586.rpm}} повреждён и установлен не будет.<br />
<br />
Решение: удалить файл из {{Источник|/var/cache/urpmi/rpms/}} и скачать его заново. Попытаться ещё раз установить его с помощью {{программа|urpmi}} или {{cmd|rpm --import <filename>}}<br />
<br />
Если это не помогло, значит используемое зеркало содержит повреждённый файл. Попытайтесь скачать файл вручную с двух-трёх других зеркал и сохранить его в каталоге {{Источник|/var/cache/urpmi/rpms/}}. Всегда удаляйте вручную предыдущий скачанный файл перед последующей попыткой использования другого зеркала. Затем, установите его снова с помощью {{программа|urpmi}}.<br />
<br />
Если после нескольких попыток будет возникать одна и та же проблема, возможно, что повреждённый файл попал на каждый ftp-сервер. Обратитесь в форум или список рассылки, возможно, что другие пользователи также столкнулись с этой проблемой. В таком случае, скорее всего новый файл появится в ближайшее время.<br />
<br />
= Решение проблем =<br />
<br />
== База данных RPM заблокирована ==<br />
<br />
От имени суперпользователя можно ввести:<br />
<br />
<pre><br />
killall urpmi urpmi.update urpme rpm urpmi.addmedia<br />
rm -f /var/lib/urpmi/.LOCK /var/lib/rpm/.RPMLOCK<br />
</pre><br />
<br />
Если это не разблокирует базу, можно перезагрузить систему.<br />
<br />
С другой стороны, такое использование программы {{программа|killall}} повышает риск повреждения базы данных RPM, так как вы не позволяете программам, работающим с базой, завершить свою работу. Поэтому будьте осторожны, используя данный приём.<br />
<br />
== Пересборка базы данных ==<br />
<br />
Может статься, что база rpm-пакетов поломалась. В таком случае, вы можете получить сообщение, что не установленный пакет уже установлен или наоборот.<br />
Чтобы исправить, воспользуйтесь командами:<br />
<br />
{{cmd|rm -rf /var/lib/rpm/__db}}*<br><br />
{{cmd|rpm --rebuilddb}}<br />
<br />
: * Неплохой идеей может быть периодической резервное копирование директории {{Источник|/var/lib/rpm}}. В этом случае вы всегда сможете вернуть предыдущую рабочую версию такими командами:<br />
<br />
{{cmd|rpm -ivh --justdb --noscripts --notriggers}}<br />
<br />
{{Примечание|В современном rpm5, опция rebuilddb устарела. Для восстановления базы, необходимо использовать соответствующую утилиту {{prog|db_recover}} из berkleydb внутри директории {{file|/var/lib/rpm}}. Например, если в системе используется libdb-5.1, то команда будет выглядеть следующим образом: {{cmd|cd /var/lib/rpm && db51_recover -ev}} }}<br />
<br />
== Ошибка "medium contrib uses an invalid list" ==<br />
<br />
<pre><br />
rm /var/lib/urpmi/list.contrib<br />
</pre><br />
<br />
Эта команда устранит ошибку, не влияя на установку пакетов.<br />
<br />
== RPM package verification ==<br />
<br />
Очень полезным при проверке сломавшейся системы может оказаться проверка установленных пакетов на соответствие базе данных пакетов.<br />
<br />
<pre><br />
rpm -Va<br />
</pre><br />
<br />
Эта команда сообщит вам, какие пакеты изменились с момента установки. Она покажет все несоответствия установленных в системе файлов тому, что должно быть, согласно базе urpmi. При непредвиденном отключении питания, зависании системы и других форс-мажорных обстоятельствах (и человеческом факторе) некоторые файлы могут повредиться или исчезнуть. Узнав, какие пакеты повреждены, вы можете переустановить их и исправить работу системы. Таким образом можно восстановить работоспособность даже незагружающейся системы, войдя в неё при помощи какого-нибудь Live-CD. Для переустановки пакетов используйте команду<br />
<pre><br />
urpmi --replacepkgs пакет_1 пакет_2 …<br />
</pre><br />
<br />
Для проверки одного пакета используйте команду {{Программа|rpm -V имя_пакета}} (достаточно только имени пакета).<br />
<br />
Для проверки контрольной суммы пакета (md5sum), хэша и цифровой подписи gpg:<br />
<br />
<pre><br />
rpm -K foo.123.rpm<br />
</pre><br />
или<br />
<pre><br />
rpm -K foo*<br />
</pre><br />
<br />
= Обновление до последней версии Росы с помощью {{Программа|urpmi}} =<br />
<br />
Urpmi также может быть использован для обновления вышей машины до более новой версии Росы. Для этого необходимо добавить репозитории с новыми пакетами и запустить {{Программа|urpmi --auto-update}}.<br />
<br />
= Другие возможности {{Программа|urpmi}} =<br />
<br />
== Установка пакета из сети и из локального файла ==<br />
<br />
{{Программа|urpmi}} может быть использован для установки локальных файлов {{Источник|rpm}} с разрешением всех зависимостей. Например, если вы собрали новую версию пакета {{Источник|foo-1.0-1bar.rpm}}, вы можете его установить в систему с помощью {{cmd|urpmi foo-1.0-1bar.rpm}}. Более того, в качестве аргумента можно задать ссылку на http или ftp сервер (и даже ssh, при условии, что и на сервере, и на клиенте установлен rsync).<br />
<br />
== Получение списка зависимостей перед установкой ==<br />
<br />
С помощью {{Программа|urpmq}} вы можете получить детальную информацию о зависимостях пакетов rpm. <br />
<br />
* {{cmd|urpmq -d}} выведет список всех пакетов, которые необходимы для установки заданного rpm.<br />
* используйте опцию <b>{{cmd|-m}}</b> для вывода только тех пакетов, которые еще не установлены в системе. <br />
* {{cmd|--sources}} выведет ссылки, с которых будут скачаны необходимые пакеты.<br />
<br />
Таким образом, команда {{cmd|urpmq -d -m --sources}} выведет вам список ссылок на пакеты, которые необходимо доустановить в систему. Такой список полезен, если у вас плохое соединение с Интернет и вы хотите скачать пакеты где-то в другом месте.<br />
<br />
== Получение информации о пакетах ==<br />
<br />
С помощью {{Программа|urpmq -i}} вы можете получить детальную информацию о пакете из репозитория. Попробуйте {{Программа|urpmq -i bash}}.<br />
<br />
= Установка ПО не в формате RPM =<br />
<br />
По возможности, для установки ПО вы должны использовать RPM-пакеты из репозиториев ROSA. Мы уверены, что наши репозитории содержат все необходимое для большинства пользователей. Тем не менее, иногда возникает необходимость поставить программу, отсутствующую в репозитории.<br />
<br />
Старайтесь не устанавливать ПО в обход базы данных RPM. Также не устанавливайте пакеты при помощи {{Программа|rpm --nodeps}}; мы не можем гарантировать, что установленное таким образом ПО будет корректно функционировать и не сломает систему.<br />
<br />
== Компилирование исходных кодов ==<br />
<br />
Вместо уже знакомой тройки команд:<br />
<br />
<pre><br />
./configure<br />
make<br />
make install<br />
</pre><br />
<br />
используйте {{программа|checkinstall}}:<br />
<br />
<pre><br />
./configure<br />
make<br />
checkinstall<br />
</pre><br />
<br />
После этого вы получите пакет, который можно установить с помощью {{Программа|urpmi}}, а потом удалить с помощью этой же программы. Исходный код некоторых приложений уже содержит spec-файл, и вы можете попробовать его использовать для сборки RPM-пакета:<br />
<br />
{{cmd|rpmbuild -tb ballname.tar.gz}}<br />
<br />
=== Установка двоичных пакетов ===<br />
<br />
Такие программы должны находиться в каталоге {{Источник|/usr/local}}. Этот каталог предназначен для хранения неофициальных пакетов.<br />
<br />
=== Проприетарные драйвера ===<br />
<br />
Все проприетарные драйвера находятся в хранилище {{источник|non-free}}. <br />
<br />
=== Пересборка RPMS ===<br />
<br />
Если у вас есть rpm-пакет, собранный для системы, отличающей от вашей, его можно пересобрать. Подробнее см. [[Development/Howto/RPM|сборка пакетов]].<br />
<br />
= Копирование CD/DVD на жёсткий диск и их последующее монтирование =<br />
<br />
Если вам не нравится постоянно менять носители в приводе, вы можете сохранить образы носителей на жёстком диске, настроив {{программа|urpmi}} на использование образов носителей вместо физических носителей.<br />
<br />
Сначала, создайте каталог для образов ISO носителей:<br />
<br />
<pre><br />
mkdir ~/iso<br />
</pre><br />
<br />
Скопируйте все носители в соответствующие каталоги:<br />
<br />
<pre><br />
dd if=/dev/cdrom of=~/iso/cd1<br />
dd if=/dev/cdrom of=~/iso/cd2<br />
dd if=/dev/cdrom of=~/iso/cd3<br />
...<br />
</pre><br />
<br />
От имени суперпользователя создайте точки монтирования для каждого носителя:<br />
<br />
<pre><br />
mkdir /mnt/cd1<br />
mkdir /mnt/cd2<br />
mkdir /mnt/cd3<br />
...<br />
</pre><br />
<br />
Смонтируйте носители с помощью команд:<br />
<br />
<pre><br />
mount -t iso9660 -o loop /home/uid/iso/cd1 /mnt/cd1<br />
mount -t iso9660 -o loop /home/uid/iso/cd2 /mnt/cd2<br />
mount -t iso9660 -o loop /home/uid/iso/cd3 /mnt/cd3<br />
...<br />
</pre><br />
<br />
Внесите изменения в файл {{Источник|/etc/urpmi/urpmi.cfg}}.<br />
<br />
Пример исходного файла:<br />
<pre><br />
Installation\ CD\ 1\ (cdrom1) removable://mnt/cdrom/media/main {<br />
hdlist: hdlist.Installation CD 1 (cdrom1).cz<br />
key-ids: 70771ff3<br />
removable: /dev/hdc<br />
with_hdlist: ../../media/media_info/hdlist1.cz<br />
}<br />
</pre><br />
<br />
Изменённый файл:<br />
<br />
<pre><br />
Installation\ CD\ 1\ (cdrom1) file://mnt/cd1/media/main {<br />
hdlist: hdlist.Installation CD 1 (cdrom1).cz<br />
key-ids: 70771ff3<br />
with_hdlist: ../../media/media_info/hdlist1.cz<br />
}<br />
</pre><br />
<br />
Другими словами, измените ''removable://mnt/cdrom'' на ''file://mnt/cd1'' для каждого носителя cd1, cd2, cd3 и т. д. Также удалите строки, содержащие запись ''removable'':<br />
<br />
<pre><br />
removable: /dev/hdc<br />
</pre><br />
<br />
[[Категория:Управление пакетами]]<br />
[[Категория:Инструменты_разработки]]<br />
<br />
[[en:urpmi]]</div>ElectroPositivhttp://wiki.rosalab.com/ru/index.php?title=%D0%A2%D0%BE%D0%BD%D0%BA%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B_%D1%81_Urpmi&diff=12868Тонкости работы с Urpmi2015-03-30T21:03:19Z<p>ElectroPositiv: /* {{Программа|urpmi.addmedia}} */</p>
<hr />
<div><br />
{{Программа|urpmi}} вне всяких сомнений является одним из наиболее важных инструментов ROSA. С помощью {{Программа|urpmi}} вы с лёгкостью сможете управлять пакетами. Если вы совладаете с {{Программа|urpmi}}, вы никогда не будете испытывать «ад зависимостей», на который жалуются многие неопытные пользователи. Например, простая команда {{cmd|urpmi sylpheed}} установит почтовый клиент [http://sylpheed.sraoss.jp/en/ Sylpheed], а вместе с ним и все необходимые библиотеки.<br />
= Где получить дополнительную информацию об {{Программа|urpmi}} =<br />
<br />
Urpmi — важный инструмент для всех пользователей ROSA, и он требует какое-то время для изучения. Эта страница даёт обзор наиболее часто используемых параметров. Следующие ресурсы позволяют получить дополнительную информацию об urpmi:<br />
<br />
* на {{Программа|man}}-страницах можно узнать обо всех параметрах urpmi; страницы руководств — самые актуальные источники информации;<br />
* на странице [[Tools/urpmi/Upgrade|обновление ROSA с помощью urpmi]] обсуждается обновление ROSA с одной основной версии до другой, используя urpmi.<br />
<br />
{{Примечание|Страницы руководств (man-страницы) можно открывать во многих веб-браузерах, просто введите ''man:urpmi'' в командной строке браузера.}}<br />
<br />
Помимо небольшого введения на этой странице даётся обзор информации, отсутствующей в двух, приведённых выше, источниках. Предполагается, что вы имеете представление как пользоваться страницами руководств, и что вы ознакомились с выше указанной страницей. Если вы не сделали этого раньше, то рекомендуется сделать это именно сейчас. После этого вы можете вернуться к чтению этой страницы.<br />
<br />
{{Предупреждение|Данная страница может оказаться полезной, так как имеется ряд неочевидных проблем, с которыми вы можете столкнуться.}}<br />
<br />
== Использование {{Программа|urpmi}} ==<br />
=== Краткий список базовых функций ===<br />
<br />
<table border="0" cellspacing="0" cellpadding="1" style="border-style: solid; border-width: 1px; border-color: #AED6F2"> <tr><th bgcolor="#AED6F2"> <strong>Команда</strong> </th><th bgcolor="#AED6F2"> <strong>Что делает</strong> </th></tr><br />
<tr><td> urpmi --auto-update </td><td>объединяет функциональность urpmi.update -a и urpmi --auto-select</td></tr><br />
<tr><td>urpmq -i xxx.rpm</td><td>показывает информацию о пакете xxx.rpm, находящемся в текущем каталоге</td></tr><br />
<tr><td>urpmq -il xxx.rpm</td><td>показывает информацию о пакете xxx.rpm, находящемся в текущем каталоге и список файлов, которые он устанавливает</td></tr><br />
<tr><td>urpmq --changelog xxx.rpm</td><td>выводит журнал изменений пакета, находящегося в текущем каталоге</td></tr><br />
<tr><td>urpmq --whatrequires xxx.rpm</td><td>показывает, какие пакеты требуются пакету xxx.rpm, находящемуся в текущем каталоге</td></tr><br />
<tr><td>urpmf /путь/к/файлу</td><td>какой пакет установил «файл» в каталог «/путь/к»</td></tr><br />
<tr><td>urpmi --fuzzy --test xxx</td><td>показывает все rpm, совпадающие со строкой «xxx»</td></tr><br />
<tr><td>rpm -qf /path/to/file</td><td>то же, что и urpmf, но ищет среди установленных пакетов</td></tr><br />
<br />
<tr><td>urpmi.update updates</td><td>обновляет локальные данные о доступных пакетах хранилища «updates» </td></tr><br />
<tr><td>urpmc </td><td>обновляет локальные данные о доступных пакетах, принадлежащих ко всем источникам</td></tr><br />
<tr><td>&nbsp;</td><td>&nbsp;</td></tr><br />
<tr><th bgcolor="#AED6F2"> <strong>Команда</strong> </th><th bgcolor="#AED6F2"><strong>Что делает</strong></th></tr><br />
<tr><td>urpme xxx</td><td>удаляет пакет «xxx» (и все пакеты, зависящие от этого пакета)</td></tr><br />
<tr><td>urpmi --keep xxx.rpm</td><td> устанавливает пакет «xxx.rpm», содержащийся в текущем каталоге, со всеми зависимостиями этого пакета, но если что-нибудь в результате установки должно быть удалено, пакет установлен не будет.</td></tr><br />
<tr><td>urpmi --update --auto-select</td><td>устанавливает доступные обновления с включённых источников</td></tr><br />
<tr><td>urpmi --test --keep --auto --auto-select</td><td>обновить все пакеты с включённых источников, но ничего не устанавливать и не удалять, просто сообщить, что это будет работать</td></tr><br />
<tr><td>urpmi --keep --auto --auto-select</td><td>обновить все пакеты из включённых источников, но ничего не удалять, просто сообщить если что-то не работает</td></tr><br />
<tr><td>urpmi --auto-select</td><td>автоматически выбрать пакеты, которые можно обновить</td></tr><br />
</table><br />
<br />
= {{Программа|urpmi.addmedia}} =<br />
<br />
Всё начинается с добавления репозитория (или «хранилища», «зеркала»). Репозиторий можно добавить с помощью программы {{Программа|urpmi.addmedia}}.<br />
<br />
Список источников можно получить на странице [http://www.zarb.org/~trem/easyurpmi/?language=ru/ Easy Urpmi] или [http://urpmi.mandriva.ru urpmi.edumandriva.ru]. Формат команды для добавления репозитория имеет следующий вид:<br />
<br />
<pre><br />
urpmi.addmedia имя_источника ftp://ftp.сайт.com/путь/к/ROSA/RPMS<br />
</pre><br />
<br />
Но удобнее использовать программу с графическим интерфейсом (команда {{cmd|edit-urpm-sources.pl}}). Эту же программу можно запустить из центра управления ROSA (раздел «Управление программами», пункт «Настройки источников настройки/обновления ПО»).<br />
<br />
Структура зеркал ftp для ROSA включает в себя следующее:<br />
* <b>main</b> — содержит наиболее важные программы, поддерживаемые ROSA;<br />
* <b>contrib</b> — содержит дополнительные программы, добавленные участниками сообщества ROSA, но которые не обязательно должны получать обновления по безопасности;<br />
* <b>non-free</b> — содержит некоторые программы, которые не являются свободными.<br />
<br />
Каждое хранилище подразделяется ещё на 4:<br />
<br />
* <b>release</b> — здесь лежат пакеты в том состоянии, в котором они находились на момент выхода релиза;<br />
* <b>updates</b> — здесь лежат пакеты, обновлённые со дня выхода релиза по причинам безопасности или исправления ошибок. Это хранилище должны быть обязательно включено, даже если скорость вашего Интернет-соединения низкая. При добавлении хранилища с обновлениями добавьте переключатель {{cmd|--update}}, чтобы {{Программа|urpmi}} мог отличить это хранилище от обычных хранилищ;<br />
* <b>backports</b> — здесь лежат некоторые пакеты с новыми версиями программ, бэкпортированными из cooker;<br />
* <b>testing</b> — используется для тестирования свежих обновлений, что позволяет участникам, сообщающим об ошибках, проверить корректность обновлений.<br />
<br />
Чтобы устанавливать пакеты с зеркала, urpmi необходимо предоставить один из файлов, хранящих в сжатом виде либо <i>минимально необходимый</i>, лиюо <i>полный</i> набор данных о пакетах.<br />
<br />
Для более полного понимания организации структуры зеркала рекомендуется ознакомиться со страницами [[политики структуры зеркала]] и [[политики хранилища программ]].<br />
<br />
=== Восстановление потерянных источников (cds) ===<br />
<br />
Если в списке хранилищ отсутствуют некоторые CD или DVD, то их можно добавить в список с помощью команды: <pre>urpmi.addmedia --distrib cdrom removable://mnt/cdrom</pre>. В момент запуска команды на исполнения в приводе компакт-дисков должен находиться носитель, который нужно добавить в список.<br />
<br />
{{Примечание|Приведённый формат команды соответствует системам, версия которых ниже 2007.1. Все отсоединяемые устройства теперь монтируются в каталоге ''/media''.}}<br />
<br />
=== Копирование CD в домашний каталог и использование копий в urpmi ===<br />
<br />
Если вам не нравится жонглировать дисками при обновлении системы и у вас есть свободное место, создайте каталог (например: {{Источник|/home/uid/CDS/}}), скопируйте в этот каталог рекурсивно каталоги {{Источник|base/}} и {{Источник|ROSA/}} (т. е. вместе со всем содержимым их вложенных подкаталогов) с первого установочного CD. Затем, скопируйте все каталоги, начиная с {{Источник|RPMS2}} вплоть до {{Источник|RPMS8}}, со всех CD/DVD в каталог {{Источник|ROSA/}}. После извлечения или отключения установочных CD выполните следующую команду от имени суперпользователя root:<br />
<br />
<pre><br />
urpmi.addmedia --distrib HD file://home/uid/CDS<br />
</pre><br />
<br />
Так как в ROSA, начиная с версии {{Версия|2010.1}}, структура каталогов на CD была изменена, список каталогов, которые нужно рекурсивно скопировать, выглядит теперь так:<br />
<br />
<pre><br />
CD1:/media/main<br />
CD2:/media/main2<br />
CD3:/Applications<br />
/Drivers<br />
/media/commercial<br />
/media/dkms<br />
/media/drivers<br />
/main3<br />
CD4:/kde3.3<br />
/media/main4<br />
CD5:/media/main5<br />
CD6:/Applications<br />
/media/main6<br />
</pre><br />
<br />
По окончании копирования выполните следующие команды:<br />
<br />
<pre><br />
cd /home/uid/CDS<br />
genhdlist<br />
</pre><br />
<br />
Затем, воспользуйтесь менеджером источников. К нему можно получить доступ из центра управления ROSA ({{Меню|центр управления ROSA --> Управление программами --> Настройка источников установки/обновления ПО}}). Выберите созданный вами каталог и отключите все записи, имеющие отношение к CD.<br />
<br />
Другой метод заключается в копировании образов ISO в различные точки монтирования. Подробнее смотри [[#Copy_CDs_to_Hard_Drive_and_mounting_each_in_loopback|копирование CD на жёсткий диск и последующее их монтирование]].<br />
<br />
=== Копирование rpms (включая установочные CD) в отдельный каталог. Использование копии в urpmi ===<br />
<br />
Создайте каталог для хранения всех rpms, например {{Источник|~/RPMS}}<br />
<br />
Чтобы скопировать сразу «кучу» rpms (с установочных CD, например):<br />
<br />
<pre><br />
find /INSTALL_CDS/ -name *.rpm -print -exec cp {} ~/RPMS \;<br />
</pre><br />
<br />
Если вы скопировали установочные CD на жёсткий диск, или у вас есть их образы ISO на диске (о том, как монтировать образы, смотри [[#Copy_CDs_to_Hard_Drive|копирование CD на жёсткий диск]]), это можно сделать за один шаг. <br />
<br />
В этом примере CD монтируются как {{Источник|/INSTALL_CDS/CD1}}, {{Источник|/INSTALL_CDS/CD2}} и т. д. <br />
<br />
<pre><br />
cd ~/RPMS<br />
<br />
genhdlist<br />
</pre><br />
<br />
Это приведёт к созданию файлов {{Источник|hdlist.cz}} и {{Источник|sythesis.hdlist.cz}}, которые основываются на том, что они найдут в каталоге, в котором находятся.<br />
<br />
Найдите публичные ключи для rpms и скопируйте их в {{Источник|~/RPMS/pubkey}}. Они должны находиться в {{Источник|INSTALL_CDS/CD1/media/media_info}}:<br />
<br />
<pre><br />
mkdir ~/RPMS/pubkey<br />
<br />
cp /INSTALL_CDS/CD1/media/media_info/pubkey* ~/RPMS/pubkey/<br />
</pre><br />
<br />
Затем, от имени суперпользователя добавьте источник:<br />
<br />
<pre><br />
urpmi.addmedia local_rpms file://home/uid/RPMS/<br />
</pre><br />
<br />
{{Примечание|Обратите внимание на вкладку «Обсуждение» соответствующей английской статьи.}}<br />
<br />
=== Добавление источника для дистрибутива ===<br />
<br />
{{Программа|urpmi}} может добавить источники (т. е. main, updates, contrib ...) с выбранного зеркала с помощью одной-единственной команды. Наберите в командной строке следующую команду от имени суперпользователя:<br />
<br />
<pre><br />
urpmi.addmedia --distrib ftp://'MIRROR_SITE'/pub/ROSA/official/'VERSION'/'ARCH'<br />
</pre><br />
<br />
где:<br />
* 'MIRROR_SITE' действующий URL сервера ftp;<br />
* 'VERSION' версия вашей системы ROSA, для который вы хотите добавить источник<br />
* 'ARCH' одна из двух архитектур: i586 или x86_64, или возможно другая, которая существует не для всех версий ROSA (например sparc, pcc и т. д.).<br />
<br />
= {{Программа|urpmi.update}} =<br />
<br />
Команда {{cmd|urpmi.update}} обновляет список пакетов репозитория. Этот список меняется всякий раз, когда на сервере меняются пакеты. Таким образом, список необходимо обновлять каждый раз, когда вы захотите установить новый пакет с репозитория, в котором возможны изменения среди пакетов, например ROSA Cooker. Если вы пользуетесь репозиторием стабильного релиза, то такой репозиторий обычно не изменяется, поэтому нет необходимости обновлять список пакетов перед установкой какого-либо пакета. Это работает примерно следующим образом:<br />
<br />
<pre><br />
urpmi.update название_источника<br />
</pre><br />
<br />
или<br />
<br />
<pre><br />
urpmi.update -a<br />
</pre><br />
<br />
Аргумент -a означает "все источники".<br />
<br />
= {{Программа|urpmi.removemedia}} =<br />
<br />
Если Вы хотите избавиться от репозитория, используйте следующую команду:<br />
<br />
<pre><br />
urpmi.removemedia nameofmedia<br />
</pre><br />
<br />
= {{Программа|urpmf}} =<br />
<br />
С помощью {{Программа|urpmf}} можно узнать, к какому пакету принадлежит тот или иной файл, а также посмотреть описание пакета и т. п.<br />
<br />
Допустим, что вы хотите скомпилировать программу, написанную на языке программирования C, а компилятор жалуется на отсутствие файла {{Источник|jpeglib.h}}. Достаточно набрать следующую команду:<br />
<br />
{{cmd|urpmf jpeglib.h}}<br />
<br />
Например, вывод команды выглядит следующим образом:<br />
<br />
<pre><br />
libjpeg62-devel:/usr/include/jpeglib.h<br />
mozilla-devel:/usr/include/mozilla-1.4a/jpeg/jpeglib.h<br />
</pre><br />
<br />
Это означает, что заголовочный файл {{Источник|jpeglib.h}} является частью пакета {{pkg|libjpeg62-devel}}. Теперь, чтобы его установить, нужно набрать следующую команду:<br />
<br />
{{cmd|urpmi libjpeg62-devel}}<br />
<br />
Другой пример. Допустим, что вы хотите установить почтовый клиент, но вы не знаете ни одного почтового клиента для Linux. Вы можете выполнить поиск по описанию пакетов, используя выражения «mail» и «client». Например, команда {{cmd|urpmf --summary mail -a client}} возвратила следующее: <br />
<br />
<pre><br />
evolution:Integrated GNOME mail client, calendar and address book.<br />
squirrelmail:Squirrelmail is a webmail client for PHP4.<br />
sylpheed-claws:Enhanced version of the Sylpheed e-mail client<br />
comsat:A mail checker client and comsat mail checking server.<br />
cscmail:CSCMail is a GTK email client written in Perl<br />
sylpheed:A GTK+ based, lightweight, and fast e-mail client<br />
tradeclient:Email Client with PIM features for X<br />
</pre><br />
<br />
Параметр {{cmd|--summary}} используется для поиска по описанию. {{cmd|-a}} означает логическое «И».<br />
<br />
= {{Программа|urpmi}} =<br />
<br />
Это — главная команда программы управления пакетами, которая используется для установки пакетов вместе со всеми зависимостями:<br />
<br />
<pre><br />
urpmi имя_пакета<br />
</pre><br />
<br />
Например, если вы считаете, что {{Программа|Sylpheed}} — достойный для установки почтовый клиент, его можно установить с помощью команды: {{cmd|urpmi sylpheed}}.<br />
<br />
'''Замечание''': команда {{cmd|urpmi имя_пакета}} не обязательно установит последнюю версию пакета. {{Программа|Urpmi}} сравнивает номер версии установленного пакета с номером версии пакета из включённого источника. Исключение составляет тот факт, что иногда обновление пакета доступно под немного иным названием, обе версии пакета, старая и новая, остаются доступными во включённом источнике. Это делается по причинам обратной совместимости. <br />
<br />
Here is a notable example {{cmd|urpmi autoconf}} will not result in the latest version being installed, for the highest version of that package name is autoconf2.5-2.60.<br />
<br />
Вместо этого следует использовать команду {{cmd|urpmi autoconf2.5}}, которая приведёт к установке последней версии 2.5*. <br />
<br />
{{Примечание|Заметьте, что в вашей системе могут быть установлены 2 версии: ROSA автоматически выберет наиболее подходящую. <br />
Для получения более подробной информации по данному примеру смотри ''/usr/share/doc/autoconf-2.13/IMPORTANT.README.MDK''.}}<br />
<br />
Ниже даётся несколько замечаний об использовании команды {{cmd|urpmq —fuzzy}}, разъясняющих, как избежать в будущем подобных проблем с версиями.<br />
<br />
Ещё один пример использования {{Программа|urpmi}} — <b>обновление системы с помощью последних обновлений по безопасности и баг-фиксам</b>.<br />
<br />
<pre><br />
urpmi.update updates && urpmi --update --auto-select<br />
</pre><br />
<br />
В этом примере предполагается, что у {{Программа|urpmi}} есть источник под названием «updates», который был объявлен при добавлении как «источник обновлений». Поскольку содержимое источника обновлений меняется часто, необходимо периодически проверять наличие новых обновлений с помощью urpmi.update. Символы <b>{{cmd|&&}}</b> означают «если первая команда успешно выполнена, выполнить вторую команду». Во второй команде ключ {{cmd|--update}} означает «искать только в источниках, заявленных как обновляемые», а ключ {{cmd|--auto-select}} означает «выбрать доступные обновления для пакетов, установленных в системе». {{Программа|Urpmi}} выведет список пакетов, доступных для обновления, и спросит разрешения о продолжении своей работы.<br />
<br />
Если добавить ключ {{cmd|--auto}}, все обновляемые пакеты будут обновлены, ''' включая''' все требуемые зависимости. Если вы предпочитаете использовать графический интерфейс, воспользуйтесь программой {{Программа|rpmdrake}} из центра управления ROSA: {{Меню|Управление программами}} → {{Меню|Обновление системы}}.<br />
<br />
<br />
<br />
== {{Программа|urpmi --parallel}} ==<br />
<br />
В параллельном режиме работы {{Программа|urpmi}} обновления загружаются на одну из машин, а она в свою очередь раздаёт их остальным компьютерам, входящим в локальную сеть (смотри [http://archives.mandrivalinux.com/expert/2006-03/msg00001.php]).<br />
<br />
Команда {{cmd|urpmi --parallel}} установит обновления на всех определённых вами компьютерах. Подробнее смотри man-страницу {{Программа|urpmi}} ({{cmd|man urpmi}}), а также [http://www.happyassassin.net/2005/05/04/a-quick-guide-to-urpmi-parallel].<br />
<br />
Параллельный режим urpmi работает следующим образом: вы запускаете на выполнение команду {{cmd|urpmi}}, которая выполняется параллельно на нескольких машинах. Машина, на который вы запустили команду, тестирует результат на каждой машине из группы по очереди, загружает все необходимые пакеты для всех машин группы, предоставляет соответствующие пакеты каждый машине, затем, вызывает {{Программа|urpmi}} на машине для выполнения актуальной установки. Это отличная идея для быстрой установки программ на всех ваших компьютерах, или даже для поддержания программного обеспечения на всех компьютерах в актуальном состоянии с помощью нескольких команд, кроме того, это позволяет экономно использовать полосу пропускания канала, так как каждый необходимый пакет загружается только один раз. Единственный недостаток в настоящий момент — вы не можете включить сервер в группу, что является недостатком для малых домашних локальных сетей.<br />
<br />
Итак, как же этом пользоваться. На самом деле, всё просто. Сначала проверьте, что вы можете достучаться с сервера до каждой клиентской машины через {{Программа|ssh}} от имени суперпользователя (вы можете ввести идентификационную фразу или пароль, или можно использовать {{cmd|ssh-add}} для настройки ключей). Итак, надо установить {{pkg|urpmi-parallel-ssh}} на серверной машине, и исправить файл {{Источник|/etc/urpmi/parallel.cfg}}, он должен выглядеть примерно таким образом:<br />
<br />
<pre><br />
local:ssh:toy:htpc<br />
</pre><br />
<br />
первый параметр — имя группы (оставлено на ваше усмотрение), второй параметр оставьте «ssh». Оставшиеся параметры — имя хостов машин в группе. Их может быть сколько угодно (сервер не должен входить в их список: {{Программа|urpmi}} просто откажется работать, обнаружив свои lock-файлы).<br />
<br />
Далее, вы можете использовать этот файл. На сервере наберите команду:<br />
<br />
<pre><br />
urpmi --parallel local somepackage<br />
</pre><br />
<br />
До тех пор, пока {{Программа|urpmi}} на сервере будет иметь доступ ко всем пакетам, необходимым всем клиентским машинам из своих источников urpmi, всё должно работать гладко. Простейший способ гарантировать это — иметь на всех машинах (на сервере и клиентах) одни и те же источники urpmi.<br />
<br />
Кроме того, можно постоянно поддерживать группу машин в актуальном состоянии. Например, чтобы содержать все машины обновлёнными, в домашней сети, которая включает машины zen (сервер), toy и htpc, запустите следующую последовательность команд на zen:<br />
<br />
<pre><br />
fanout "localhost toy htpc" "urpmi.update -a"<br />
</pre><br />
<br />
программа {{Программа|fanout}} запускает одну команду на нескольких машинах одновременно, используя {{Программа|ssh}}.<br />
<br />
<pre><br />
urpmi -auto-select -keep -noclean -v<br />
</pre><br />
<br />
{{cmd|noclean}} оставляет пакеты на машине zen после установки; это значит, что когда команда {{cmd|parallel}} будет запущена в следующий раз, она не станет скачивать эти пакеты заново.<br />
<br />
<pre><br />
urpmi --parallel local -auto-select -keep -v<br />
</pre><br />
<br />
<br />
= {{Программа|urpme}} =<br />
<br />
{{cmd|urpme}} — команда, предназначенная для удаления программного обеспечения с компьютера. Также как и {{Программа|urpmi}}, {{Программа|urpme}} обрабатывает зависимости и извещает пользователя, что установленное программное обеспечение зависит от того программного обеспечения, которое он собирается удалить. В таком случае, у пользователя есть возможность отменить процедуру удаления или удалить пакет вместе с другими зависящими от него пакетами. Использование:<br />
<br />
{{cmd|urpme название_пакета}}<br />
<br />
Например, в системе установлено 2 почтовых клиента: Sylpheed и Evolution. В этом случае, если один из клиентов не используется, его можно удалить. К тому же, таким образом можно освободить немного места на жёстком диске. Чтобы удалить пакет Evolution, воспользуйтесь следующей командой:<br />
<br />
{{cmd|urpme evolution}}<br />
<br />
= {{Программа|urpmq}} =<br />
<br />
{{Программа|urpmq}} позвляет Вам запрашивать базу данных {{Программа|rpm}}, благодаря чему Вы можете выяснить информацию о пакетах, установленных Вами, а так же о других вещах в базе данных, например о том, какие у Вас имеются источники установки. <br />
<pre><br />
[root@isis root]# urpmq --list-media <br />
contrib<br />
cooker<br />
plf<br />
</pre><br />
Предостережение: Используя {{Программа|urpmq}} для поиска пакетов, удостоверьтесь, что понимаете разницу между использованием его с опцией <i>--fuzzy</i> и без нее. Вы можете не найти некоторые пакеты, которые Вы искали если не будете осторожными. Если {{Программа|urpmq}} находит пакет, название которого точно соответствует Вашему запросу, по умолчанию она выводит только название этого пакета, и Вы не увидите других пакетов, которые содержат то же название.<br />
<br />
Например: <br />
<br />
<pre><br />
<br />
# Представьте, что Ваш лучший друг рассказал Вам о vegastrike, классной 3D-игре.<br />
[root@localhost augustin]# urpmq vegastrike <br />
vegastrike <br />
# Круто! Есть пакет ROSA с точно таким именем!<br />
# Но Вы не видите других пакетов, которые содержат то же мя!<br />
<br />
# Запросим еще раз: обратите внимание на пропущенную 'e' в конце названия пакета<br />
[root@localhost augustin]# urpmq vegastrik <br />
No package named vegastrik<br />
The following packages contain vegastrik: vegastrike, vegastrike-data<br />
You should use "-a" to use all of them<br />
# В этот раз результат запроса сильно отличается<br />
# Мы увидели уже не один, а два пакета. <br />
<br />
# Сравните следующий запрос с предыдущими двумя<br />
[root@localhost augustin]# urpmq --fuzzy vegastrike <br />
vegastrike<br />
vegastrike-data<br />
// Обратите внимание на разницу, которую обеспечивает --fuzzy<br />
</pre><br />
<br />
{{cmd|urpmq --fuzzy}} так же очень полезна, когда нужно узнать какие другие доступные версии пакета имеются: иногда новая мажорная версия не предоставляет полной обратной совместимости. По этой причине, новая версия может распространяться под немного другим именем пакета. Сейчас, Вы уверены, что не пропустите ничего. <br />
<br />
Например:<br />
<br />
<pre><br />
[root@localhost augustin]# urpmi mplayer<br />
#Это не установит последнюю версию проигрывателя<br />
[root@localhost augustin]# urpmq --fuzzy mplayer<br />
The following packages contain mplayer:<br />
kmplayer<br />
mplayer<br />
mplayer-fonts<br />
mplayer-gui<br />
mplayer-skins<br />
mplayer1.0<br />
mplayer1.0-gui<br />
mplayerplugin<br />
transcode<br />
xmms-mplayer<br />
# Видите! Новый релиз 1.0 распространяется под другим названием <br />
# Вы предупреждены!<br />
</pre><br />
<br />
== gurpmi ==<br />
<br />
{{программа|gurpmi}} — графический фронт-энд для программы {{программа|urpmi}}. Может использоваться из командной строки для установки и поиска пакетов. Используется программой {{программа|rpmdrake}} для отображения сообщений о необходимости выполнения некоторых действий со стороны пользователя.<br />
<br />
== rpmdrake ==<br />
<br />
Для тех же задач ROSA предлагает набор графических инструментов. Подробнее см. [[Tools/MandrivaUpdate|Rpmdrake]].<br />
<br />
== smart ==<br />
<br />
Пакеты {{pkg|smart}}, {{pkg|smart-update}} и {{pkg|smart-gui}}, первоначально использовавшиеся фирмой Conectiva, представляют собой инструменты, основанные на языке программирования Python. Пакеты доступны в {{источник|contrib}}. Эти инструменты отличаются высокой скоростью работы, достаточной надёжностью, а также имеют некоторые преимущества перед оригинальными инструментами ROSA. Официально не поддерживаются. Домашняя страница: [http://labix.org/smart Smart Home]. На данный момент доступны во многих других дистрибутивах.<br />
<br />
= Вопросы безопасности =<br />
<br />
== Проблемы безопасности ==<br />
<br />
Чтобы программа {{программа|urpmi}} могла устанавливать пакеты, она должна быть запущена с привилегиями суперпользователя. Хитрый злоумышленник может обмануть пользователя, подсунув ему пакет для установки. Такие пакеты на первый взгляд выглядят как обычные пакеты, которыми регулярно пользуются множество пользователей, но в данном случае опасность заключается в том, что этот пакет может содержать программу-троян или какой-либо другой вредоносный код. Как только пакет будет установлен в системе, приложение может выпустить в систему какой-нибудь вирус, червя или даже программу-шпиона... До настоящего времени нам неизвестно о попытках использования таких эксплоитов, но в ближайшие несколько лет, когда GNU/Linux получит более широкое распространение, возможно, кто-то захочет попытаться это претворить в жизнь. К счастью, таких людей ждёт неудача, потому что внимание, уделяемое безопасности, всегда было неотъемлимой частью Linux-сообщества. Большинство пакетов имеют подпись, которая подтверждает подлинность пакета. Подробнее см. [[Docs/SysAdmin/Security/GnuPG|GnuPG]].<br />
<br />
Злоумышленник может попытаться внедрить вредоносную программу в пакет. Перед установкой {{программа|urpmi}} проверит целостность пакета, используя хэш-код MD5, и включённый в пакет ключ gpg. Подробнее см. соответствующий раздел.<br />
<br />
Иногда при работе с {{программа|urpmi}} могут быть получены следующие строки:<br />
<br />
<pre><br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
<br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
</pre><br />
<br />
Непонятно, в чём же здесь проблема: может быть файл был повреждён во время обновления, а может, процесс {{программа|urpmi}} был принудительно завершён нетерпеливым пользователем.<br />
<br />
Решение проблемы: удалить файл {{Источник|/var/lib/rpm/Pubkeys}}, повторно импортировать открытые ключи. См. [[Docs/SysAdmin/Security/GnuPG#rpm_package_validation_with_GnuPG_keys|GnuPG]].<br />
<br />
=== Хэширование MD5 ===<br />
<br />
Хэш MD5 представляет собой код, включённый в rpm-пакет. Этот код позволяет {{программа|urpmi}} проверить хэш пакета. Если по каким-либо причинам файл был повреждён, {{программа|rpm}} и {{программа|urpmi}} откажутся его устанавливать. <br />
<br />
Пример:<br />
<br />
<pre><br />
[root@localhost augustin]# urpmi kdesdk<br />
rpmdb: /var/lib/rpm/Pubkeys: unexpected file type or format<br />
error: cannot open Pubkeys index using db3 - Invalid <br />
argument (22)<br />
The following packages have bad signatures:<br />
/var/cache/urpmi/rpms/kdesdk-3.1.3-9mdk.i586.rpm: Invalid <br />
signature ((SHA1) DSA sha1 MD5 GPG GPG#70771ff3 NOT OK)<br />
Do you want to continue installation ? (y/N) y<br />
installing /var/cache/urpmi/rpms/kdesdk-3.1.3-9mdk.i586.rpm<br />
error: /var/cache/urpmi/rpms/kdesdk-3.1.3-9mdk.i586.rpm: MD5 <br />
digest: BAD Expected(97f2ba5a91888cd3af40f89be6b65868) != <br />
(393221db35071aa90eaa73816a9a5ba8)<br />
unable to install package <br />
/var/cache/urpmi/rpms/kdesdk-3.1.3-9mdk.i586.rpm<br />
</pre><br />
<br />
В данном случае было получено два уведомления <i>Invalid signature ((SHA1) DSA sha1 MD5 GPG GPG#70771ff3 NOT OK)</i> и <i>MD5 digest: BAD Expected(97f2ba5a91888cd3af40f89be6b65868) != (393221db35071aa90eaa73816a9a5ba8)</i>. Файл {{Источник|kdesdk-3.1.3-9mdk.i586.rpm}} повреждён и установлен не будет.<br />
<br />
Решение: удалить файл из {{Источник|/var/cache/urpmi/rpms/}} и скачать его заново. Попытаться ещё раз установить его с помощью {{программа|urpmi}} или {{cmd|rpm --import <filename>}}<br />
<br />
Если это не помогло, значит используемое зеркало содержит повреждённый файл. Попытайтесь скачать файл вручную с двух-трёх других зеркал и сохранить его в каталоге {{Источник|/var/cache/urpmi/rpms/}}. Всегда удаляйте вручную предыдущий скачанный файл перед последующей попыткой использования другого зеркала. Затем, установите его снова с помощью {{программа|urpmi}}.<br />
<br />
Если после нескольких попыток будет возникать одна и та же проблема, возможно, что повреждённый файл попал на каждый ftp-сервер. Обратитесь в форум или список рассылки, возможно, что другие пользователи также столкнулись с этой проблемой. В таком случае, скорее всего новый файл появится в ближайшее время.<br />
<br />
= Решение проблем =<br />
<br />
== База данных RPM заблокирована ==<br />
<br />
От имени суперпользователя можно ввести:<br />
<br />
<pre><br />
killall urpmi urpmi.update urpme rpm urpmi.addmedia<br />
rm -f /var/lib/urpmi/.LOCK /var/lib/rpm/.RPMLOCK<br />
</pre><br />
<br />
Если это не разблокирует базу, можно перезагрузить систему.<br />
<br />
С другой стороны, такое использование программы {{программа|killall}} повышает риск повреждения базы данных RPM, так как вы не позволяете программам, работающим с базой, завершить свою работу. Поэтому будьте осторожны, используя данный приём.<br />
<br />
== Пересборка базы данных ==<br />
<br />
Может статься, что база rpm-пакетов поломалась. В таком случае, вы можете получить сообщение, что не установленный пакет уже установлен или наоборот.<br />
Чтобы исправить, воспользуйтесь командами:<br />
<br />
{{cmd|rm -rf /var/lib/rpm/__db}}*<br><br />
{{cmd|rpm --rebuilddb}}<br />
<br />
: * Неплохой идеей может быть периодической резервное копирование директории {{Источник|/var/lib/rpm}}. В этом случае вы всегда сможете вернуть предыдущую рабочую версию такими командами:<br />
<br />
{{cmd|rpm -ivh --justdb --noscripts --notriggers}}<br />
<br />
{{Примечание|В современном rpm5, опция rebuilddb устарела. Для восстановления базы, необходимо использовать соответствующую утилиту {{prog|db_recover}} из berkleydb внутри директории {{file|/var/lib/rpm}}. Например, если в системе используется libdb-5.1, то команда будет выглядеть следующим образом: {{cmd|cd /var/lib/rpm && db51_recover -ev}} }}<br />
<br />
== Ошибка "medium contrib uses an invalid list" ==<br />
<br />
<pre><br />
rm /var/lib/urpmi/list.contrib<br />
</pre><br />
<br />
Эта команда устранит ошибку, не влияя на установку пакетов.<br />
<br />
== RPM package verification ==<br />
<br />
Очень полезным при проверке сломавшейся системы может оказаться проверка установленных пакетов на соответствие базе данных пакетов.<br />
<br />
<pre><br />
rpm -Va<br />
</pre><br />
<br />
Эта команда сообщит вам, какие пакеты изменились с момента установки. Она покажет все несоответствия установленных в системе файлов тому, что должно быть, согласно базе urpmi. При непредвиденном отключении питания, зависании системы и других форс-мажорных обстоятельствах (и человеческом факторе) некоторые файлы могут повредиться или исчезнуть. Узнав, какие пакеты повреждены, вы можете переустановить их и исправить работу системы. Таким образом можно восстановить работоспособность даже незагружающейся системы, войдя в неё при помощи какого-нибудь Live-CD. Для переустановки пакетов используйте команду<br />
<pre><br />
urpmi --replacepkgs пакет_1 пакет_2 …<br />
</pre><br />
<br />
Для проверки одного пакета используйте команду {{Программа|rpm -V имя_пакета}} (достаточно только имени пакета).<br />
<br />
Для проверки контрольной суммы пакета (md5sum), хэша и цифровой подписи gpg:<br />
<br />
<pre><br />
rpm -K foo.123.rpm<br />
</pre><br />
или<br />
<pre><br />
rpm -K foo*<br />
</pre><br />
<br />
= Обновление до последней версии Росы с помощью {{Программа|urpmi}} =<br />
<br />
Urpmi также может быть использован для обновления вышей машины до более новой версии Росы. Для этого необходимо добавить репозитории с новыми пакетами и запустить {{Программа|urpmi --auto-update}}.<br />
<br />
= Другие возможности {{Программа|urpmi}} =<br />
<br />
== Установка пакета из сети и из локального файла ==<br />
<br />
{{Программа|urpmi}} может быть использован для установки локальных файлов {{Источник|rpm}} с разрешением всех зависимостей. Например, если вы собрали новую версию пакета {{Источник|foo-1.0-1bar.rpm}}, вы можете его установить в систему с помощью {{cmd|urpmi foo-1.0-1bar.rpm}}. Более того, в качестве аргумента можно задать ссылку на http или ftp сервер (и даже ssh, при условии, что и на сервере, и на клиенте установлен rsync).<br />
<br />
== Получение списка зависимостей перед установкой ==<br />
<br />
С помощью {{Программа|urpmq}} вы можете получить детальную информацию о зависимостях пакетов rpm. <br />
<br />
* {{cmd|urpmq -d}} выведет список всех пакетов, которые необходимы для установки заданного rpm.<br />
* используйте опцию <b>{{cmd|-m}}</b> для вывода только тех пакетов, которые еще не установлены в системе. <br />
* {{cmd|--sources}} выведет ссылки, с которых будут скачаны необходимые пакеты.<br />
<br />
Таким образом, команда {{cmd|urpmq -d -m --sources}} выведет вам список ссылок на пакеты, которые необходимо доустановить в систему. Такой список полезен, если у вас плохое соединение с Интернет и вы хотите скачать пакеты где-то в другом месте.<br />
<br />
== Получение информации о пакетах ==<br />
<br />
С помощью {{Программа|urpmq -i}} вы можете получить детальную информацию о пакете из репозитория. Попробуйте {{Программа|urpmq -i bash}}.<br />
<br />
= Установка ПО не в формате RPM =<br />
<br />
По возможности, для установки ПО вы должны использовать RPM-пакеты из репозиториев ROSA. Мы уверены, что наши репозитории содержат все необходимое для большинства пользователей. Тем не менее, иногда возникает необходимость поставить программу, отсутствующую в репозитории.<br />
<br />
Старайтесь не устанавливать ПО в обход базы данных RPM. Также не устанавливайте пакеты при помощи {{Программа|rpm --nodeps}}; мы не можем гарантировать, что установленное таким образом ПО будет корректно функционировать и не сломает систему.<br />
<br />
== Компилирование исходных кодов ==<br />
<br />
Вместо уже знакомой тройки команд:<br />
<br />
<pre><br />
./configure<br />
make<br />
make install<br />
</pre><br />
<br />
используйте {{программа|checkinstall}}:<br />
<br />
<pre><br />
./configure<br />
make<br />
checkinstall<br />
</pre><br />
<br />
После этого вы получите пакет, который можно установить с помощью {{Программа|urpmi}}, а потом удалить с помощью этой же программы. Исходный код некоторых приложений уже содержит spec-файл, и вы можете попробовать его использовать для сборки RPM-пакета:<br />
<br />
{{cmd|rpmbuild -tb ballname.tar.gz}}<br />
<br />
=== Установка двоичных пакетов ===<br />
<br />
Такие программы должны находиться в каталоге {{Источник|/usr/local}}. Этот каталог предназначен для хранения неофициальных пакетов.<br />
<br />
=== Проприетарные драйвера ===<br />
<br />
Все проприетарные драйвера находятся в хранилище {{источник|non-free}}. <br />
<br />
=== Пересборка RPMS ===<br />
<br />
Если у вас есть rpm-пакет, собранный для системы, отличающей от вашей, его можно пересобрать. Подробнее см. [[Development/Howto/RPM|сборка пакетов]].<br />
<br />
= Копирование CD/DVD на жёсткий диск и их последующее монтирование =<br />
<br />
Если вам не нравится постоянно менять носители в приводе, вы можете сохранить образы носителей на жёстком диске, настроив {{программа|urpmi}} на использование образов носителей вместо физических носителей.<br />
<br />
Сначала, создайте каталог для образов ISO носителей:<br />
<br />
<pre><br />
mkdir ~/iso<br />
</pre><br />
<br />
Скопируйте все носители в соответствующие каталоги:<br />
<br />
<pre><br />
dd if=/dev/cdrom of=~/iso/cd1<br />
dd if=/dev/cdrom of=~/iso/cd2<br />
dd if=/dev/cdrom of=~/iso/cd3<br />
...<br />
</pre><br />
<br />
От имени суперпользователя создайте точки монтирования для каждого носителя:<br />
<br />
<pre><br />
mkdir /mnt/cd1<br />
mkdir /mnt/cd2<br />
mkdir /mnt/cd3<br />
...<br />
</pre><br />
<br />
Смонтируйте носители с помощью команд:<br />
<br />
<pre><br />
mount -t iso9660 -o loop /home/uid/iso/cd1 /mnt/cd1<br />
mount -t iso9660 -o loop /home/uid/iso/cd2 /mnt/cd2<br />
mount -t iso9660 -o loop /home/uid/iso/cd3 /mnt/cd3<br />
...<br />
</pre><br />
<br />
Внесите изменения в файл {{Источник|/etc/urpmi/urpmi.cfg}}.<br />
<br />
Пример исходного файла:<br />
<pre><br />
Installation\ CD\ 1\ (cdrom1) removable://mnt/cdrom/media/main {<br />
hdlist: hdlist.Installation CD 1 (cdrom1).cz<br />
key-ids: 70771ff3<br />
removable: /dev/hdc<br />
with_hdlist: ../../media/media_info/hdlist1.cz<br />
}<br />
</pre><br />
<br />
Изменённый файл:<br />
<br />
<pre><br />
Installation\ CD\ 1\ (cdrom1) file://mnt/cd1/media/main {<br />
hdlist: hdlist.Installation CD 1 (cdrom1).cz<br />
key-ids: 70771ff3<br />
with_hdlist: ../../media/media_info/hdlist1.cz<br />
}<br />
</pre><br />
<br />
Другими словами, измените ''removable://mnt/cdrom'' на ''file://mnt/cd1'' для каждого носителя cd1, cd2, cd3 и т. д. Также удалите строки, содержащие запись ''removable'':<br />
<br />
<pre><br />
removable: /dev/hdc<br />
</pre><br />
<br />
[[Категория:Управление пакетами]]<br />
[[Категория:Инструменты_разработки]]<br />
<br />
[[en:urpmi]]</div>ElectroPositivhttp://wiki.rosalab.com/ru/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%D0%A2%D0%BE%D0%BD%D0%BA%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B_%D1%81_Urpmi/c000090&diff=12867Обсуждение:Тонкости работы с Urpmi/c0000902015-03-30T20:37:37Z<p>ElectroPositiv: Новый комментарий от ElectroPositiv: на странице Easy Urpmi или urpmi.edumandriva.ru. В тексте выше первая ссылка нерабочая. Вторая пер…</p>
<hr />
<div>на странице Easy Urpmi или urpmi.edumandriva.ru.<br />
В тексте выше первая ссылка нерабочая. Вторая переадресовывает на англоязычный сайт http://www.mandriva.com/en/<br />
{{wl-comment: }}</div>ElectroPositiv