1 (2015-10-11 21:07:19 отредактировано algri14)

Иногда требуется узнать зависимости конкретного пакета, в Магее_4 я делал это с помощью пакета smart, но в Магее_5 этого пакета нет.
После поиска по инету нашёл здесь команду:

Консоль
[algri@localhost ~]$ rpm -qR caffeine
python-xlib
python-notify
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
python(abi) = 2.7
typelib(GObject)
typelib(Gio)
typelib(Gtk)
typelib(Notify)
rpmlib(PayloadIsXz) <= 5.2-1

http://i11.pixs.ru/thumbs/1/7/1/zavisimost_3730721_19104171.jpg
как видите — 8 пакетов в GUI и 11 пакетов в консоли, почему такая разница?
На тему пакетов и зависимостей к ним в инете много материала, в CentOS и Fedora, Debian/Ubuntu, но не всё подходит для Магеи. В других дистрах есть возможность узнать про зависимости пакета ещё до его установки в систему, есть ли такое в Магее? Иногда элементарно требуется узнать, сколько зависимостей притянет тот или иной пакет.

2 (2015-10-11 21:03:48 отредактировано algri14)

xxblx⇓ пишет:

Не GUI, конечно, но всё же

Консоль
urpmq --requires-recursive пакет

Ну да, попробовал и .... уж не знаю верить ли своим глазам

urpmq --requires caffeine

Консоль
[algri@localhost ~]$ urpmq --requires caffeine
--requires behaviour changed, use --requires-recursive to get the old behaviour
caffeine: python-xlib
caffeine: python-notify
caffeine: python(abi)[== 2.7]
caffeine: typelib(GObject)
caffeine: typelib(Gio)
caffeine: typelib(Gtk)
caffeine: typelib(Notify)
caffeine: python-xlib
caffeine: python-notify
caffeine: python(abi)[== 2.7]
caffeine: typelib(GObject)
caffeine: typelib(Gio)
caffeine: typelib(Gtk)
caffeine: typelib(Notify)

urpmq --requires-recursive caffeine

Консоль
[algri@localhost ~]$ urpmq --requires-recursive caffeine
alsa-utils
aumix-text
bash
bash-completion
caffeine
chkconfig
common-licenses
coreutils
cracklib-dicts
dash-static
dbus
dhcp-client
dhcp-common
diffutils
dmsetup
e2fsprogs
ethtool
filesystem
findutils
gawk
gdk-pixbuf2.0
gettext-base
glibc
grep
ifmetric
ifplugd
info-install
initscripts
iproute2
iputils
kbd
kmod
libacl1
libalsa-data
libalsa2
libattr1
libaudit1
libblkid1
libbzip2_1
libcap-ng0                                                                                                                                                   
libcap2                                                                                                                                                     
libcrack2                                                                                                                                                   
libcryptsetup4
libdaemon0
libdb5.3
libdbnss5.3
libdbus1_3
libdevmapper-event1.02
libdevmapper1.02
libexpat1
libext2fs2
libffi6
libgcc1
libgcrypt11
libgdbm4
libgdk_pixbuf-gir2.0
libgdk_pixbuf2.0_0
libgio2.0_0
libglib-gir2.0
libglib2.0_0
libgmp10
libgnutls-ssl27
libgnutls28
libgpg-error-common
libgpg-error0
libgtk-gir2.0|libgtk-gir3.0
libhogweed2
libintl8
libjasper1
libjbig1
libjpeg8
libkmod2
liblockdev1
liblzma5
libmicrohttpd10
libmount1
libncurses5
libncursesw5
libnettle4
libnotify-gir0.7
libnotify4
libopenssl-engines1.0.0
libopenssl1.0.0
libp11-kit0
libpam0
libpam_userpass1
libpci3
libpcre1
libpng16_16
libpopt0
libpth20
libpython2.7
libreadline6
libsigsegv2
libsqlite3_0
libstdc++6
libsystemd-daemon0
libsystemd-id128_0
libsystemd-journal0
libsystemd-login0
libtasn1_6
libtcb0
libtiff5
libudev1
libuuid1
libwrap0
libx11_6
libxau6
libxcb1
libxdmcp6
libzlib1|libuClibc-zlib1
lockdev
mingetty
multiarch-utils
ncurses
net-tools
notification-daemon|mate-notification-daemon|cinnamon|xfce4-notifyd|gnome-shell
nss-myhostname
nss_tcb
p11-kit
pam
pam_tcb
pciutils
perl-File-Sync
perl-MDK-Common
perl-base
pkgconfig
popt-data
prcsys
procps
psmisc
python
python-notify
python-xlib
resolvconf
rpm-helper
run-parts
sed
setup
shadow-utils
sound-scripts
systemd
systemd-units
sysvinit-legacy-tools
tcb
update-alternatives
util-linux
which
xz

xxblx, поясните вывод urpmq --requires-recursive caffeine пожалуйста

3

algri14 пишет:

xxblx, поясните вывод urpmq --requires-recursive caffeine пожалуйста

--requires показывает что требуется для работы конкретно этому пакету (caffeine), например, какие библиотеки
--requires-recursive показывает какие вообще пакеты должны быть установлены для работы этого пакета, т.е. зависимости и зависимости зависимостей.

Fedora & GNOME

4

xxblx⇓ пишет:

--requires-recursive показывает какие вообще пакеты должны быть установлены для работы этого пакета, т.е. зависимости и зависимости зависимостей.

зависимости зависимостей это уже перебор, хотя может быть кому то и потребуется.
Меня интересует вот что, почему такая разница в количестве пакетов по зависимостям — 8; 11 и 14, какой команде верить?

5

algri14 пишет:

какой команде верить?

Штатной для Mageia - urpmi. Всякие левые smart'ы я вообще как вариант не расцениваю, а rpm может не видеть, например, рекомендуемых пакетов (необязательных зависимостей), в нем такой фичи просто не предусмотрено.

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

6

Вопрос возник по ходу жизни, при удалении пакетов-сирот надо проверить его зависимости, вот команда:

Консоль: user
[user@localhost ~]$ urpmq --whatrequires название_пакета

покажет список всех пакетов.rpm для которых он требуется.
Но консоль покажет список всех пакетов вообще, а нужны только те, что установлены в системе.
Народ, подскажите что добавить в команду?

7 (2017-02-02 00:02:30 отредактировано algri14)

Благодаря diablopc, вопрос решился, для примера взят пакет в Магее-4 python-xlib , ссылка на Linux Forum → Очистить систему от ненужных пакетов

Консоль
[algri@localhost ~]$ for i in $(urpmq --whatrequires python-xlib); do rpm -q $i; done  | grep -v "не установлен"
caffeine-2.4.1.498-1.mga4.mrc
caffeine-2.4.1.498-1.mga4.mrc
python-xlib-0.15-6.mga4

diablopc пишет:

Если добавить в ~/.bashrc

urpmreq ()
{
for i in $(urpmq --whatrequires $1); do rpm -q $i; done  | grep -v "не установлен"
}

То можно буде делать вызов вотЬ так:

Консоль
[user@linuxforum.ru ~]$ urpmreq имя_пакета

Напримет так:

Консоль
[algri@localhost ~]$ urpmreq python-xlib
caffeine-2.4.1.498-1.mga4.mrc
caffeine-2.4.1.498-1.mga4.mrc
python-xlib-0.15-6.mga4

т.е. пакет python-xlib требуется по зависимости только для пакета caffeine-2.4.1.498-1.mga4.mrc