ホーム » 技術 » CentOS8はどれぐらい変わったか(パッケージ編)

CentOS8はどれぐらい変わったか(パッケージ編)

初めてのCentOS8のインストールに当たっては、カジュアルにMinimumグループを選んだ。CentOS7の頃は特に問題を感じなかったからだ。もちろんMinimumはあれもこれも入っていないので、追加しなければならないパッケージは多い。が、少なくとも必要最低限は入っていると期待できた。それよりもよく分からないパッケージグループを選んでコンテナなんちゃら、とかをインストールされるよりはマシと思うのだ。

が、CentOS8のMinimumをインストールして、tarが入っていないことに気づいたとき、これはヤバいなと考え直した。今回のメジャーアップデートにおいては、yumdnfに移行するという結構大きな変更があったが、同時にパッケージの作り直しも行われたわけで、よくよく調べておかないと大事なものがなくなっているかもしれない。

933

自分はGUIインストーラは信じていないので(選択肢が少なすぎ、選択の幅も狭すぎ、結局思ったようにはインストールできない)、Minimumでインストールした後でコンソールから調整するか、最終的にはKickstartでインストールできるようパッケージおよびグループリストを完成させることを目指すことにする。

新旧パッケージを比較する

というわけで、まずは新旧CentOSのMinimumパッケージリストを比較するところから始める。パッケージグループの内容を確認するには、yum/dnfで次のようなコマンドを使う。

[root@c7 ~]# yum groupinfo 'Minimal Install'
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * epel: nrt.edge.kernel.org
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp

Environment Group: Minimal Install
 Environment-Id: minimal
 Description: Basic functionality.
 Mandatory Groups:
   +core
 Optional Groups:
   +debugging
[root@c8 ~]# dnf groupinfo 'Minimal Install'
Last metadata expiration check: 0:00:08 ago on Thu 26 Sep 2019 10:34:52 PM EDT.
Environment Group: Minimal Install
 Description: Basic functionality.
 Mandatory Groups:
   Core
 Optional Groups:
   Guest Agents
   Standard

CentOS7/8、双方とも[Cc]oreというグループに紐づいているようだ。Coreの中身は具体的なパッケージのリストなので、これを比較してみよう。

[root@c8 ~]# dnf groupinfo Core
Last metadata expiration check: 0:03:08 ago on Thu 26 Sep 2019 10:34:52 PM EDT.

Group: Core
 Description: Smallest possible installation
 Mandatory Packages:
   audit
   basesystem
   bash
   coreutils
:
:

こんな具合にリストが出てくる。パッケージにはMandatory、Default、Optionalの3つのカテゴリがあるが、Optionalは置いといてMandatoryとDefaultのパッケージを抜き出して、sortしてcommしてみよう。するとこうなる。

■CentOS7のみ(CentOS8から消えたもの)
btrfs-progs
dhclient
iptables
postfix
tar

■CentOS8のみ(CentOS7から増えたもの)
authselect              grubby                  rng-tools
dnf                     lsscsi                  sssd-common
dnf-plugins-core        prefixdevname           sssd-kcm
dnf-plugin-spacewalk

■両方にあるもの
audit                    initscripts              ncurses                  rsyslog
basesystem               iproute                  NetworkManager           selinux-policy-targeted
bash                     iprutils                 NetworkManager-team      setup
biosdevname              iputils                  NetworkManager-tui       sg3_utils
coreutils                irqbalance               openssh-clients          sg3_utils-libs
cronie                   kbd                      openssh-server           shadow-utils
curl                     kernel-tools             parted                   sudo
dracut-config-rescue     kexec-tools              passwd                   systemd
e2fsprogs                less                     plymouth                 tuned
filesystem               libsysfs                 policycoreutils          util-linux
firewalld                lshw                     procps-ng                vim-minimal
glibc                    man-db                   rootfiles                xfsprogs
hostname                 microcode_ctl            rpm                      yum

※ *-firmware は除いた

…こうしてみるとなんでtarを抜いたのかという気分になってくる。

入れてみたいパッケージグループを考える

入れるべきパッケージグループはどうだろう? 普段使うコマンドがたくさん入っていて、使わないものは極力入っていないパッケージグループがあればベストだ。CentOS8が現在サポートしているパッケージグループは以下の通りだ。

[root@c8 ~]# dnf grouplist
Last metadata expiration check: 0:07:37 ago on Thu 26 Sep 2019 11:15:44 PM EDT.
Available Environment Groups:
   Server with GUI
   Server
   Workstation
   KDE Plasma Workspaces
   Virtualization Host
   Custom Operating System
Installed Environment Groups:
   Minimal Install
Installed Groups:
   System Tools
Available Groups:
   Container Management
   .NET Core Development
   RPM Development Tools
   Smart Card Support
   Development Tools
   Graphical Administration Tools
   Headless Management
   Legacy UNIX Compatibility
   Network Servers
   Scientific Support
   Security Tools
   Fedora Packager

パッと見たところ、Serverが自分にはあっていそうだが、

[root@c8 ~]# dnf groupinfo Server
Last metadata expiration check: 0:07:37 ago on Thu 26 Sep 2019 11:15:44 PM EDT.
Environment Group: Server
 Description: An integrated, easy-to-manage server.
no group 'dns-server' from environment 'server-product-environment'
 Mandatory Groups:
   Container Management
   Core
   Hardware Support
   Headless Management
   Server product core
   Standard
 Optional Groups:
   Basic Web Server
   Debugging Tools
   FTP Server
   File and Storage Server
   GNOME
   Guest Agents
   Hardware Monitoring Utilities
   Infiniband Support
   Mail Server
   Network File System Client
   Network Servers
   Performance Tools
   Remote Management for Linux
   Virtualization Hypervisor
   Windows File Server

なんだかどれも魅力的には見えない。

Standard

さてリストをよく見ていると、Standardというのがあるのに気づく。実はCoreのOptional Groupにもあって、Minimal Installでは入らないが、なかなかよさそうだ。内容はこんな感じ。

acl                      ed                       mlocate                  sudo
at                       ethtool                  mtr                      symlinks
attr                     file                     nano                     systemd-udev
bash-completion          fprintd-pam              net-tools                tar
bc                       gnupg2                   nmap-ncat                tcpdump
blktrace                 insights-client          pciutils                 teamd
bpftool                  iptstate                 pinfo                    time
bzip2                    irqbalance               plymouth                 tree
centos-release           kmod-kvdo                psacct                   unzip
centos-release-eula      kpatch                   quota                    usbutils
chrony                   ledmon                   realmd                   util-linux-user
cockpit                  libstoragemgmt           rng-tools                vdo
cpio                     logrotate                rsync                    vim-enhanced
crontabs                 lsof                     rsyslog-gnutls           virt-what
cryptsetup               lvm2                     rsyslog-gssapi           wget
cyrus-sasl-plain         mailcap                  rsyslog-relp             which
dbus                     man-pages                smartmontools            words
dnf-plugin-spacewalk     mcelog                   sos                      xfsdump
dos2unix                 mdadm                    sssd                     zip
dosfstools               microcode_ctl            strace

いくつかのコマンドはシステムコマンドの依存関係ですでに入っているものもあるが、これを追加することでいろいろ捗りそうなものもある。個人的にはtarlsofnet-toolsrsyncstracewgetzipがうれしい。

Development Tools

もうひとつ、さくらのクラウドのCentOS7のアーカイブに入っているパッケージグループであるDevelopment Toolsも確認しておこう。

asciidoc                 gcc                      make                     redhat-rpm-config
autoconf                 gcc-c++                  patchutils               rpm-build
automake                 gdb                      perl-Fedora-VSP          rpm-sign
binutils                 git                      perl-generators          source-highlight
bison                    glibc-devel              pesign                   strace
byacc                    intltool                 pkgconf                  systemtap
ctags                    libtool                  pkgconf-m4               valgrind
diffstat                 ltrace                   pkgconf-pkg-config       valgrind-devel
flex

これもgitmakeなどなど入っているのでよい感じだ。

まとめ

さて、Minimumインストールの後、どのようにすればよいかだが、StandardとDevelopment Toolsを入れた後、細かなパッケージを適宜追加・削除するのがいいのかな、と思う。ちなみにStandardの中にはcockpitというWeb管理ツールが入っているのだが、この種のものは嫌いなのでどうしても入れたくない。手動で2つのパッケージグループをインストールし、かつcockpitを除外したいならこうなる。

dnf install @Standard '@Development Tools' -x cockpit* -x nano

とりあえずはこれでなんとか始めるしかないようだ。Kickstartは調整に時間がかかるので、完成したらまた別の記事にしたいと思う。