Edited at

CentOS 7インストーラの「ソフトウェアの選択」の中身を調べてみた

More than 5 years have passed since last update.


前提条件

この資料では、CentOS 7のインストーラの言語選択で「日本語」を選択したものとしている。


「ソフトウェアの選択」の方式

CentOS 7のインストーラでは6までとは違い、インストールするパッケージを1つ1つ選択することはできない。

まず9種類の大枠(environment group)から1つを選び、さらにオプションで追加したいパッケージのgroupを選択する形になっている。しかしそのパッケージのgroupも何でも追加できるわけではなく、environment groupごとに決められたものだけを追加できる。

さて、一度CentOS 7のインストールを終わらせてしまえば、yum groups listを実行すれば「Available environment groups」にenvironment groupの一覧が書かれていることがわかる。以下の9つであり、インストーラの中で見えたものと完全に一致する。

最小限のインストール

インフラストラクチャサーバー
ファイルとプリントサーバー
ベーシック Web サーバー
仮想化ホスト
サーバー (GUI 使用)
GNOME Desktop
KDE Plasma Workspaces
開発およびクリエイティブワークステーション

ちなみに、yum groups listはCentOS 6で使われているバージョンのyumではyum grouplistに当たるコマンドであるが、CentOS 6にはenvironment groupはまだ使われていない。

CentOS 6での「yum groupなんとか」はCentOS 7ではすべて「yum groups なんとか」となっているが、「yum groupなんとか」もまだ通してくれる。


「ソフトウェアの選択」の中身


environment groupの中身

それぞれのenvironment groupの中身を知るにはyum groups info <environment group名とかIDとか>を実行すれば良い。"インフラストラクチャサーバー"だとyum groups info インフラストラクチャサーバーを実行すると以下が出力される。

なお、この例の通りコマンド実行の際のenvironment groupの名前が日本語でも問題なく処理されるが、スペースが入っている場合は""で囲むこと。

Environment Group: インフラストラクチャサーバー

Environment-Id: infrastructure-server-environment
説明: ネットワークインフラストラクチャのサービスを動作させるサーバーです。
Mandatory Groups:
+base
+core
Optional Groups:
+backup-server
+directory-client
+directory-server
+dns-server
+file-server
+ftp-server
+guest-agents
+ha
+hardware-monitoring
+identity-management-server
+infiniband
+java-platform
+large-systems
+load-balancer
+mail-server
+mariadb
+network-file-system-client
+performance
+postgresql
+print-server
+remote-system-management
+resilient-storage
+virtualization-hypervisor

Mandatory Groupsに書かれたgroup ID、つまり"インフラストラクチャサーバー"においては「base」と「core」が、このenvironment groupをインストーラのソフトウェアの選択で選んだ場合に必ずインストールされるgroupになる。

Optional Groupsに書かれたgroup IDは、このenvironment groupをインストーラのソフトウェアの選択でオプションとして選ぶことができる選択肢と一致する(もっとも、インストーラではgroup IDではなく日本語のgroup名が表示される)。

ただしこれ以外にも「compat-libraries(互換性ライブラリ)」「development(開発ツール)」「smart-card(スマートカードサポート)」の3つのgroupは必ずオプションとして表示されるようだ。

以下に9つのenvironment groupのyum groups infoの結果を貼っておく。

https://gist.github.com/yunano/38d3a79e28c58d4a4ce0


groupの中身

これらgroupに含まれるパッケージの一覧は、またyum groups info <group名とかIDとか>で知ることができる。

以下はyum groups info coreの出力である。

グループ: コア

グループ ID: core
説明: 最小限のインストール
強制的なパッケージ:
audit
basesystem
bash
biosdevname
btrfs-progs
coreutils
cronie
curl
dhclient
e2fsprogs
filesystem
glibc
hostname
initscripts
iproute
iprutils
iptables
iputils
irqbalance
kbd
kexec-tools
less
man-db
ncurses
openssh-clients
openssh-server
parted
passwd
plymouth
policycoreutils
procps-ng
rootfiles
rpm
rsyslog
selinux-policy-targeted
setup
shadow-utils
sudo
systemd
tar
tuned
util-linux
vim-minimal
xfsprogs
yum
標準パッケージ:
NetworkManager
NetworkManager-tui
aic94xx-firmware
alsa-firmware
+bfa-firmware
dracut-config-rescue
ivtv-firmware
iwl100-firmware
iwl1000-firmware
iwl105-firmware
iwl135-firmware
iwl2000-firmware
iwl2030-firmware
iwl3160-firmware
iwl3945-firmware
iwl4965-firmware
iwl5000-firmware
iwl5150-firmware
iwl6000-firmware
iwl6000g2a-firmware
iwl6000g2b-firmware
iwl6050-firmware
iwl7260-firmware
kernel-tools
libertas-sd8686-firmware
libertas-sd8787-firmware
libertas-usb8388-firmware
linux-firmware
microcode_ctl
postfix
+ql2100-firmware
+ql2200-firmware
+ql23xx-firmware
オプション パッケージ:
dracut-config-generic
dracut-fips
dracut-fips-aesni
dracut-network
openssh-keycat
selinux-policy-mls
tboot

「強制的なパッケージ」「標準パッケージ」「オプションパッケージ」の3つがあるが、インストーラによってインストールされるのは「強制的なパッケージ」「標準パッケージ」に書かれたパッケージであり、「オプションパッケージ」はインストールされない。

ちなみにコマンドラインでならyum --setopt=group_package_types=optional groups install coreでオプションパッケージをインストールすることができる。optionalの代わりにmandatoryで強制的なパッケージ、defaultで標準パッケージ。カンマ区切りで複数指定もできる。

一部のパッケージ名の前に付いている+は、要はこのgroupをインストールすれば今はまだインストールされていない+の付いたパッケージがインストールされる、という意味である(ただし、yum groups mark convertを実行しないと現状に合わない旨が、上記の出力結果から省略した部分に書かれている。この辺りはman yumを見ろとのこと)。よってどれに+が付くかは環境によって違う。


結局のところ

私はMandatory Groupsに「core」しか含まれない"最小限のインストール"より、「base」も含む"インフラストラクチャサーバー"を選ぶことにする、というおはなし。

以下はyum groups info baseの出力である。これのすべてが欲しいわけではないが、個別にインストールするにはちょっと多い程度には欲しいものがある。"最小限のインストール"ではインストールされないと話題のifconfigやnetstatを含むパッケージであるnet-toolsもここにあるね。

まあ「base」に含まれていて「core」にないパッケージでも、"最小限のインストール"であっても依存関係でインストールされるものも一部ある。whichとか。

グループ: ベース

グループ ID: base
説明: CentOS Linux の基本インストール
強制的なパッケージ:
acl
at
attr
authconfig
bc
bind-utils
centos-indexhtml
cpio
crda
crontabs
cyrus-sasl-plain
dbus
ed
file
firewalld
logrotate
lsof
man-db
net-tools
ntsysv
pciutils
psacct
quota
setserial
traceroute
usb_modeswitch
標準パッケージ:
abrt-addon-ccpp
abrt-addon-python
abrt-cli
abrt-console-notification
bash-completion
blktrace
bridge-utils
bzip2
chrony
cryptsetup
dmraid
dosfstools
ethtool
fprintd-pam
gnupg2
hunspell
hunspell-en
kpatch
ledmon
libaio
libreport-plugin-mailx
libstoragemgmt
lvm2
man-pages
man-pages-overrides
mdadm
mlocate
mtr
nano
ntpdate
pinfo
plymouth
pm-utils
rdate
rfkill
rng-tools
rsync
scl-utils
setuptool
smartmontools
sos
sssd-client
strace
sysstat
systemtap-runtime
tcpdump
tcsh
teamd
time
unzip
usbutils
vim-enhanced
virt-what
wget
which
words
xfsdump
xz
yum-langpacks
+yum-plugin-security
yum-utils
zip
オプション パッケージ:
PyPAM
acpid
audispd-plugins
brltty
cryptsetup-reencrypt
device-mapper-persistent-data
dos2unix
dumpet
genisoimage
gpm
i2c-tools
kabi-yum-plugins
libatomic
libcgroup
libcgroup-tools
libitm
libstoragemgmt-netapp-plugin
libstoragemgmt-nstor-plugin
libstoragemgmt-smis-plugin
libstoragemgmt-targetd-plugin
libstoragemgmt-udev
linuxptp
logwatch
mkbootdisk
mtools
ncurses-term
ntp
oddjob
pax
prelink
python-volume_key
redhat-lsb-core
redhat-upgrade-dracut
redhat-upgrade-tool
rsyslog-gnutls
rsyslog-gssapi
rsyslog-relp
sgpio
sox
squashfs-tools
star
tmpwatch
udftools
uuidd
volume_key
wodim
x86info
yum-plugin-aliases
yum-plugin-changelog
yum-plugin-tmprepo
yum-plugin-verify
yum-plugin-versionlock
zsh
条件付パッケージ:
+rubygem-abrt