1

Здравствуйте!
Осваиваю Mageia 4, новый для себя дистрибутив и пока не совсем понял приёмы взаимодействия с системой управления пакетами urpmi.
Как, например, в консоли вывести список пакетов, содержащих в своём названии "kernel", при этом чтобы в выводе отображалось какие пакеты установлены, какие нет?

2 (2015-02-25 17:19:44 отредактировано BoDun)

Список установленных пакетов по вашему запросу будет:

Консоль
rpm -qa | grep kernel

но в принципе, аналог этого же можно посмотреть в установка и удаление программ(drakrpm если не ошибаюсь)

Обычный юзер
Mageia 8 x86_64 Plasma

3

А нельзя, чтобы были все пакеты: и установленные, и неустановленные и чтобы вывод был в табулированной форме с символами u или i в первой колонке? Как в apt.

4 (2015-03-24 15:30:07 отредактировано algri14)

BoDun⇓ пишет:

Список установленных пакетов по вашему запросу будет:

Spoiler

Консоль
[algri@localhost ~]$ rpm -qa | grep kernel
kernel-server-latest-3.14.32-1.mga4
kernel-server-devel-3.14.32-1.mga4-1-1.mga4
kernel-server-3.12.21-2.mga4-1-1.mga4
kernel-server-3.14.32-1.mga4-1-1.mga4
nvidia-current-kernel-3.14.27-server-1.mga4-331.113-1.mga4.nonfree
nvidia-current-kernel-3.12.21-server-2.mga4-331.79-2.mga4.nonfree
kernel-server-devel-3.14.27-1.mga4-1-1.mga4
kernel-userspace-headers-3.14.32-1.mga4
kernel-server-3.14.27-1.mga4-1-1.mga4
kernel-server-devel-3.12.21-2.mga4-1-1.mga4
nvidia-current-kernel-server-latest-331.113-3.mga4.nonfree
kernel-server-devel-latest-3.14.32-1.mga4
nvidia-current-kernel-3.14.32-server-1.mga4-331.113-3.mga4.nonfree
kernel-firmware-nonfree-20140828-1.mga4.nonfree
kernel-firmware-20131013-2.mga4

BoDun⇓ пишет:

но в принципе, аналог этого же можно посмотреть в установка и удаление программ(drakrpm если не ошибаюсь)

а это в графике:
https://forum.mageia.org.ru/extensions/hcs_image_uploader/uploads/10000/2000/12156/thumb/p19f0i7pik1avj8vr13s1u1pkcp1.png
там вообще все пакеты которые есть в репе, установленные отмечены зелёной стрелкой.

Спасибо сказали: BoDun1

5

ptich.isk пишет:

вывести список пакетов, содержащих в своём названии "kernel"

ptich.isk пишет:

чтобы были все пакеты: и установленные, и неустановленные

Консоль
urpmq -y kernel

Выведет все пакет, содержащие kernel, доступные в репозитории.

ptich.isk пишет:

А нельзя, чтобы были все пакеты: и установленные, и неустановленные и чтобы вывод был в табулированной форме с символами u или i в первой колонке? Как в apt.

Я не знаю как в apt, но общий список доступных пакетов, в котором сразу помечено что установлено, а что нет, одной командой стандартными средствами urpmi, насколько мне известно, нельзя. Но это вовсе не значит, что это невозможно.

#!/bin/bash

urpmf --name ".*kernel.*" 2>&1 | while read line
do
    echo -e "${line}\t$(rpm -q --qf '%{installtime:date}\n' ${line})"
done

Сохраните в файл и выполните скрипт. В принципе, это и в однострок переписать можно для выполнения одной командой (просто очень уж громоздко выглядеть будет, потому скриптом выкладываю).
Выдаст список всех доступных в репозитории пакетов, имена которых содержат "kernel", если пакет установлен справа будет указана дата, когда пакет был установлен, если нет, будет написано что пакет не установлен.
Вроде такого

nvidia-current-kernel-server-latest    Ср 18 фев 2015 14:09:27
nvidia-current-kernel-desktop-latest    пакет nvidia-current-kernel-desktop-latest не установлен

У меня вывод выдало на 1000 строк, по этому весь вывод сюда не выкладываю.

Fedora & GNOME
Спасибо сказали: algri14, BoDun2

6

Как заставить консольные утилиты urpmi и urpme выполнять действия не сразу, а сначала выводить предупреждения?

7

ptich.isk, они по умолчанию итак выполняют действия не сразу, а просят подтверждение от пользователя

urpmi

Консоль
[root@localhost xxblx]# urpmi mariadb
Для удовлетворения зависимостей будут установлены следующие пакеты:
  Пакет                          Версия       Релиз         Платформа
(источник «Core Updates»)
  libjemalloc1                   3.6.0        1.mga4        i586   
  mariadb                        5.5.41       1.mga4        i586   
  mariadb-client                 5.5.41       1.mga4        i586   
  mariadb-common                 5.5.41       1.mga4        i586   
  mariadb-common-core            5.5.41       1.mga4        i586   
  mariadb-core                   5.5.41       1.mga4        i586   
  mariadb-extra                  5.5.41       1.mga4        i586    (рекомендуется)
Будет использовано 98МБ дополнительного дискового пространства.
Будет загружено 7.4МБ пакетов.
Установить 7 пакетов? (Y/n)

urpme

Консоль
[root@localhost xxblx]# urpme firefox
Для удовлетворения зависимостей будут удалены следующие 2 пакетов (88МБ):
  firefox-31.5.0-1.mga4.i586
  firefox-ru-31.5.0-1.mga4.noarch
   (из-за неудовлетворённости firefox == 0:31.5.0)
Удалить 2 пакетов? (y/N)

Fedora & GNOME

8 (2015-03-04 09:35:13 отредактировано ptich.isk)

xxblx, у меня не просят:

[iskatel@localhost ~]$ sudo urpmi nano


       http://mirrors.mageia.org/api/mageia.4.x86_64.list: media/core/release/nano-2.3.2-3.mga4.x86_64.rpm
устанавливается nano-2.3.2-3.mga4.x86_64.rpm из /var/cache/urpmi/rpms
Подготовка...                    #############################################
      1/1: nano                  #############################################

9

ptich.isk⇓ пишет:

[iskatel@localhost ~]$ sudo urpmi nano

Насколько я знаю, sudo у нас не используется. Для входа под root используется su и для установки просто urpmi <имя пакета>.
ps: А использование графики не вариант? Там точно на всё есть предупреждения.

Обычный юзер
Mageia 8 x86_64 Plasma

10

ptich.isk, с мелкими-то пакетами без зависимостей, да, не спрашивает подтверждения.
Теперь понял что именно вас интересовало.

Ну, можно сделать так.
Сохраните куда-нибудь у себя скрипт с названием, например, intercat_urpmi

#!/bin/bash

pkgs=""

for i in $@
do
    f=`urpmq "${i}"`
    if [ -n "${f}" ]; then
        pkgs="${pkgs}${i} "
    fi
done

if [ -z "${pkgs}" ]; then
    exit
fi

echo "Будут установлены следующие пакеты: ${pkgs}"
read -p "Продолжить (y/n): " RES
if [ "${RES}" = "y" ]; then
    urpmi "${pkgs}"
fi

Откройте на редактирование (от пользователя, не от root) ~/.bashrc (файл по умолчанию не отображается в файловом менеджере, по этому лучше сделать командой)

Консоль
текстовый_редактор ~/.bashrc

Там есть строка

# User specific aliases and functions

Добавьте после неё

alias interact_urpmi="/полный/путь/до/interact_urpmi"

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

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

Сохраните изменения. Дальше можно просто закрыть терминал и открыть заново.

Консоль
[xxblx@localhost ~]$ interact_urpmi nano
Будут установлены следующие пакеты: nano
Продолжить (y/n):

Fedora & GNOME
Спасибо сказали: BoDun1

11

Спасибо! И ещё вопрос по управлению пакетами, а именно по подключению репозиториев. Допустим я подключаю официальный репозиторий со страницы http://urpmi.mageia.org.ru/ или вручную командой "urpmi.addmedia --distrib http://mirror.yandex.ru/mageia/distrib/4/x86_64". После этого у меня файл /etc/urpmi/urpmi.cfg заполняется следующим содержанием:

{
}

Core\ Release http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/core/release {
  key-ids: 80420f66
}

Core\ Release\ Debug http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/debug/core/release {
  ignore
}

Core\ Updates http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/core/updates {
  key-ids: 80420f66
  update
}

Core\ Updates\ Debug http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/debug/core/updates {
  ignore
}

Core\ Updates\ Testing http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/core/updates_testing {
  ignore
}

Core\ Updates\ Testing\ Debug http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/debug/core/updates_testing {
  ignore
}

Core\ Backports http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/core/backports {
  ignore
}

Core\ Backports\ Debug http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/debug/core/backports {
  ignore
}

Core\ Backports\ Testing http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/core/backports_testing {
  ignore
}

Core\ Backports\ Testing\ Debug http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/debug/core/backports_testing {
  ignore
}

Nonfree\ Release http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/nonfree/release {
  key-ids: 80420f66
}

Nonfree\ Release\ Debug http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/debug/nonfree/release {
  ignore
}

Nonfree\ Updates http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/nonfree/updates {
  key-ids: 80420f66
  update
}

Nonfree\ Updates\ Debug http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/debug/nonfree/updates {
  ignore
}

Nonfree\ Updates\ Testing http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/nonfree/updates_testing {
  ignore
}

Nonfree\ Updates\ Testing\ Debug http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/debug/nonfree/updates_testing {
  ignore
}

Nonfree\ Backports http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/nonfree/backports {
  ignore
}

Nonfree\ Backports\ Debug http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/debug/nonfree/backports {
  ignore
}

Nonfree\ Backports\ Testing http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/nonfree/backports_testing {
  ignore
}

Nonfree\ Backports\ Testing\ Debug http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/debug/nonfree/backports_testing {
  ignore
}

Tainted\ Release http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/tainted/release {
  ignore
}

Tainted\ Release\ Debug http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/debug/tainted/release {
  ignore
}

Tainted\ Updates http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/tainted/updates {
  ignore
  update
}

Tainted\ Updates\ Debug http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/debug/tainted/updates {
  ignore
}

Tainted\ Updates\ Testing http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/tainted/updates_testing {
  ignore
}

Tainted\ Updates\ Testing\ Debug http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/debug/tainted/updates_testing {
  ignore
}

Tainted\ Backports http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/tainted/backports {
  ignore
}

Tainted\ Backports\ Debug http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/debug/tainted/backports {
  ignore
}

Tainted\ Backports\ Testing http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/tainted/backports_testing {
  ignore
}

Tainted\ Backports\ Testing\ Debug http://mirror.yandex.ru/mageia/distrib/4/x86_64/media/debug/tainted/backports_testing {
  ignore
}

Core\ 32bit\ Release http://mirror.yandex.ru/mageia/distrib/4/i586/media/core/release {
  key-ids: 80420f66
}

Core\ 32bit\ Updates http://mirror.yandex.ru/mageia/distrib/4/i586/media/core/updates {
  key-ids: 80420f66
  update
}

Core\ 32bit\ Updates\ Testing http://mirror.yandex.ru/mageia/distrib/4/i586/media/core/updates_testing {
  ignore
}

Core\ 32bit\ Backports http://mirror.yandex.ru/mageia/distrib/4/i586/media/core/backports {
  ignore
}

Core\ 32bit\ Backports\ Testing http://mirror.yandex.ru/mageia/distrib/4/i586/media/core/backports_testing {
  ignore
}

Nonfree\ 32bit\ Release http://mirror.yandex.ru/mageia/distrib/4/i586/media/nonfree/release {
  key-ids: 80420f66
}

Nonfree\ 32bit\ Updates http://mirror.yandex.ru/mageia/distrib/4/i586/media/nonfree/updates {
  key-ids: 80420f66
  update
}

Nonfree\ 32bit\ Updates\ Testing http://mirror.yandex.ru/mageia/distrib/4/i586/media/nonfree/updates_testing {
  ignore
}

Nonfree\ 32bit\ Backports http://mirror.yandex.ru/mageia/distrib/4/i586/media/nonfree/backports {
  ignore
}

Nonfree\ 32bit\ Backports\ Testing http://mirror.yandex.ru/mageia/distrib/4/i586/media/nonfree/backports_testing {
  ignore
}

Tainted\ 32bit\ Release http://mirror.yandex.ru/mageia/distrib/4/i586/media/tainted/release {
  ignore
}

Tainted\ 32bit\ Updates http://mirror.yandex.ru/mageia/distrib/4/i586/media/tainted/updates {
  ignore
  update
}

Tainted\ 32bit\ Updates\ Testing http://mirror.yandex.ru/mageia/distrib/4/i586/media/tainted/updates_testing {
  ignore
}

Tainted\ 32bit\ Backports http://mirror.yandex.ru/mageia/distrib/4/i586/media/tainted/backports {
  ignore
}

Tainted\ 32bit\ Backports\ Testing http://mirror.yandex.ru/mageia/distrib/4/i586/media/tainted/backports_testing {
  ignore
}

У меня что, вместе со стабильной веткой репозитория подключилась нестабильная (Testing)? И вместе с 64-битной 32-битная. Они точно конфликтовать не будут?

12

ptich.isk пишет:

У меня что, вместе со стабильной веткой репозитория подключилась нестабильная (Testing)?

Не совсем.
Тут нужно разграничить термины "подключилась" и "добавилась".

Официальный репозиторий поделен на три части Core, Nonfree и Tained.
Каждый из частей имеет ветки: Release, Updates, Backports.

Updates и Backports имеют помимо "самих себя" еще и под-части: Debug, Testing и Testing Debug. А Release же помимо себя имеет только одну под-часть Debug.

По умолчанию, в систему добавляется всё и сразу. Но при этом все Debug, Testing и Testing Debug добавляются выключенными (что вы можете видеть по наличию "ignore" у этих веток в /etc/urpmi/urpmi.cfg, т.е. тестинг и дебаг добавились, но не подключились) и стабильности вашей системы никак не угрожают, т.к. пакетный менеджер покуда они выключены, не видит пакеты из них и к установке не предлагает.


ptich.isk пишет:

У меня что, вместе со стабильной веткой репозитория подключилась нестабильная (Testing)? И вместе с 64-битной 32-битная. Они точно конфликтовать не будут?

К сожалению, есть много приложений, имеющих только 32-битные версии и без 32-битных библиотек они работать не будут. По этому 32-битные источники добавляются вместе с 64-битными, чтобы пользователь мог по необходимости доустановить 32-битные библиотеки в 64-битную систему. Актуально, например, для пользователей Skype или игроков, многие проприетарные игры имеют только 32-битную версию и требуют соответствующие библиотеки.
Конфликта опасаться не надо. Когда вы делаете

Консоль
urpmi пакет

По умолчанию urpmi всегда отдаст предпочтение пакету с архитектурой, как у вашей системы, т.е. 64-битному. И лишь в том случае, если 64-битного пакета не найдет, поставит 32-битный.
В общем-то, если вам не нужны 32-битные репозитории, можете просто отключить.

Fedora & GNOME

13

xxblx⇓ пишет:

вы можете видеть по наличию "ignore" у этих веток в /etc/urpmi/urpmi.cfg

А если стоит update, что это значит?

xxblx⇓ пишет:

К сожалению, есть много приложений, имеющих только 32-битные версии и без 32-битных библиотек они работать не будут. По этому 32-битные источники добавляются вместе с 64-битными, чтобы пользователь мог по необходимости доустановить 32-битные библиотеки в 64-битную систему. Актуально, например, для пользователей Skype или игроков, многие проприетарные игры имеют только 32-битную версию и требуют соответствующие библиотеки.

skype и wine, и ещё что-то проприетарное, я в курсе. Кажется ещё необходима особая версия glibc, которая может работать и 64-битными, и с 32-битными приложениями.

14

ptich.isk пишет:

А если стоит update, что это значит?

Значит источник помечен как источник для обновления.
Mageia Online Applet время от времени будет проверять наличие новых версий для установленных пакетов в источниках с пометкой update. В случае, если найдет новые версии, предложит, используя drakrpm-update, установить их.

Fedora & GNOME

15 (2015-03-29 21:36:34 отредактировано algri14)

ptich.isk⇓ пишет:

А если стоит update, что это значит?

Из этих источников идут обновления в систему. Галочки напротив них ставятся автоматом, напротив других их ставить не надо, остальные источники не предназначены для обновления.
https://forum.mageia.org.ru/extensions/hcs_image_uploader/uploads/10000/2000/12246/thumb/p19hjd4c8goa31kfe16l5nqbgvo1.png
мне достаточно этих источников, т.е. без Testing и Debug, а новичку они тем более не нужны