Так как Ваша основная цель состоит в том, чтобы сохранить дисковое пространство, существует другое решение: дедупликация (и вероятно сжатие) на уровне файловой системы. По сравнению с решением жесткой ссылки это не имеет проблемы непреднамеренного влияния на другие связанные файлы.
ZFS имеет dedup (блочный уровень, не уровень файла) начиная с версии 23 пула и сжатия с тех пор давным-давно. При использовании Linux можно попробовать zfs-предохранитель, или если Вы используете BSD, он исходно поддерживается.
Если Вы устанавливаете yum-utils
, это даст Вам yum-debug-dump
который запишет те переменные и больше информации об отладке в файл. Нет никакой опции записать в stdout, он будет всегда писать в некоторый файл, который действительно не настолько полезен.
Это - очевидно, не отличное решение, таким образом, вот острота Python, которую можно скопировать и вставить, который распечатает те переменные к stdout.
python -c 'import yum, pprint; yb = yum.YumBase(); pprint.pprint(yb.conf.yumvar, width=1)'
Это работает над CentOS 5 и 6, но не 4. конфетка записана в Python, таким образом, вкусный модуль Python уже находится на Вашем сервере, никакая потребность установить что-либо exra.
Вот то, на что это похоже на CentOS 5:
[root@somebox]# python -c 'import yum, pprint; yb = yum.YumBase(); pprint.pprint(yb.conf.yumvar, width=1)'
{'arch': 'ia32e',
'basearch': 'x86_64',
'releasever': '5',
'yum0': '200',
'yum5': 'foo'}
[root@somebox]#
Для получения всех их, необходимо будет использовать код как отправленный mmckinst, но если Вы просто хотите проверить $releasever
можно работать yum version nogroups
на RHEL-6.
Другая вещь сделать, в RHEL-6, состоит в том, чтобы просто создать Ваше собственное в /etc/yum/vars
.
/etc/yum/vars
выполнить? Кроме того, Вы, оказывается, знаете, изменилось ли это от RHEL5 до RHEL6?
– Stefan Lasiewski
29.09.2011, 19:12
/etc/yum/vars
может быть найден в access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux / …
– Stefan Lasiewski
03.12.2012, 21:47
Другой способ видеть результаты подстановки переменных состоит в том, чтобы сделать что-то вроде этого:
yum-config-manager -c /etc/reposyncb.conf | grep -i spacewalk
Я переделывал вкусные переменные для управления, какой клиент выхода в открытый космос выбран для создания локального repo и найден этим полезным, чтобы видеть, как переменные интерпретируются.
releasever
.
– Stefan Lasiewski
01.10.2013, 03:14
На всякий случай, если кто-нибудь окажется здесь, как я, ища эквивалентный ответ для dnf в Fedora, я нашел следующий однострочный файл python:
python3 -c 'import dnf, pprint; db = dnf.dnf.Base(); pprint.pprint(db.conf.substitutions,width=1)'
В Fedora 24 это выглядит так:
{'arch': 'x86_64',
'basearch': 'x86_64',
'releasever': '24'}
И более подробно о том, как назначается $releasever:
Функция _getsysver запрашивает базу данных rpm следующим образом:
rpm -q --provides $(rpm -q --whatprovides "system-release(releasever)") | grep "system-release(releasever)" | cut -d ' ' -f 3
"system-release(releasever)" значение определено здесь, и оно может быть переопределено distroverpkg в yum. conf
Если запрос не вернул никакого значения, releasever устанавливается в '$releasever' (например, если вы установили distroverpkg=centos-release, но установили rpm redhat-release-server)
.Для CentOS 8 Stream, который использует больше переменных, таких как $stream -, вы также можете сделать это:-
# cd /etc/dnf/vars;grep. *
что раскрывает их таким образом:-
contentdir:centos
infra:stock
stream:8-stream
yum-debug-dump
кажется, делает то, в чем я нуждаюсь. Похож на информацию, все там под%%%%YUM INFO
раздел. Я, может казаться, не делаю вещи как$YUM0-$YUM9
появитесь, но я никогда не использую те переменные так или иначе. – Stefan Lasiewski 07.09.2011, 04:12/usr/bin/python -c 'import yum;yb=yum.YumBase();yb.doConfigSetup(init_plugins=False);print yb.conf.yumvar["releasever"]'
– Rockallite 09.02.2017, 09:36