2019年10月21日月曜日

Arch Linuxをインストールする時の必須パッケージとして、新たにbaseパッケージが導入

Arch Linuxをインストールする時の必須パッケージとして、baseパッケージが導入された
最近、Arch LinuxのCoreリポジトリに「baseパッケージ」が導入された。Arch Linuxをインストールする際に、ほとんどの人が「base」をインストールしていると思う。

しかし、今回新たにリポジトリに登録された「baseパッケージ」と、2019年10月5日以前にインストールされた「base」は中身が異なっている。

今回の「base」の変更に伴い、色々と注意すべき点があるので、その注意点についてまとめておく。


これまでの「base」とは?(2019年10月5日以前)
以前から、「base」はArch Linuxのインストールガイドの中でも、インストールするように記載されていたので、ほとんどの人がbaseをインストールしているはず。

しかし、2019年10月5日以前にインストールされたbaseは、「baseグループ」。一方で、2019年10月6日以降のbaseは、「baseパッケージ」となった。
(※「グループ」とは、Arch Linuxが用意しているパッケージの集合体。例えば、「xorg」、「gnome」、「xfce4」などのグループが存在する。ある環境を導入する際に、多くのパッケージが必要となる場合があるが、pacmanからグループをインストールすることで、一括でこれらの環境を導入できるようになっている。)

baseのパッケージ化に伴い、baseをインストールすることにより導入されるパッケージの種類は大幅に変更されている。

現在、自分が使用している2017年にインストールした環境では、baseは「グループ」としてインストールされている。以下が、インストール時にbaseグループに属していたパッケージ。

$ pacman -Sg base

base bash
base bzip2
base cryptsetup
base device-mapper
base dhcpcd
base e2fsprogs
base findutils
base gawk
base gcc-libs
base gettext
base glibc
base inetutils
base iproute2
base iputils
base jfsutils
base licenses
base linux-firmware
base logrotate
base lvm2
base man-db
base man-pages
base mdadm
base nano
base netctl
base pacman
base pciutils
base perl
base procps-ng
base psmisc
base reiserfsprogs
base s-nail
base shadow
base sysfsutils
base systemd-sysvcompat
base texinfo
base usbutils
base util-linux
base vi
base xfsprogs

新たに導入された「baseパッケージ」とは?
新たに導入された、baseパッケージの中身を調べてみる。baseのPKGBUILDファイルを確認してみると、特に新たなパッケージが作られている訳ではなく、必要なパッケージ群を依存関係としてインストールするという仕組みとなっている。

以下が、baseパッケージの中身(PKGBUILD\trunk - svntogit/packages.git - Git clone of the 'packages' repository)。

# Maintainer: Arch Linux Team
# Contributor: Levente Polyak 
# Contributor: Eli Schwartz 

pkgname=base
pkgver=2
pkgrel=1
pkgdesc='Minimal package set to define a basic Arch Linux installation'
url='https://www.archlinux.org'
arch=('any')
license=('GPL')
depends=(
  # very very base
  'filesystem' 'gcc-libs' 'glibc' 'bash'

  # POSIX tools
  'coreutils' 'file' 'findutils' 'gawk' 'grep' 'procps-ng' 'sed' 'tar'

  # standard linux toolset
  'gettext' 'pciutils' 'psmisc' 'shadow' 'util-linux' 'bzip2' 'gzip' 'xz'

  # distro defined requirements
  'licenses' 'pacman' 'systemd' 'systemd-sysvcompat'

  # networking, ping, etc
  'iputils' 'iproute2'
)
optdepends=('linux: bare metal support')

# vim: ts=2 sw=2 et:

「baseグループ」と「baseパッケージ」の違い
以下が、「baseグループ(左)」と「baseパッケージ(右)」に属するパッケージを比較した結果。それぞれのパッケージで、あったりなかったりしてバラバラ。


必要な対応作業
「baseパッケージ」は必須パッケージとなり、インストールされていることが前提となった。なので、「baseパッケージ」のインストールを行っておく必要がある。

# pacman -Syu base

:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 archlinuxfr is up to date
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Packages (1) base-2-1

Total Download Size:   0.00 MiB
Total Installed Size:  0.00 MiB

:: Proceed with installation? [Y/n] 
:: Retrieving packages...
 base-2-1-any                           2.1 KiB  0.00B/s 00:00 [##################################] 100%
(1/1) checking keys in keyring                                 [##################################] 100%
(1/1) checking package integrity                               [##################################] 100%
(1/1) loading package files                                    [##################################] 100%
(1/1) checking for file conflicts                              [##################################] 100%
(1/1) checking available disk space                            [##################################] 100%
:: Processing package changes...
(1/1) installing base                                          [##################################] 100%
Optional dependencies for base
    linux: bare metal support [installed]

pacman上では、「グループ」でも「パッケージ」でも同じ-Sオプションでインストールできるようになっている。baseがパッケージ化された現在でも、「baseグループ」は残っている様子。ただし、pacman上で「base」をインストールすると、「baseパッケージ」が優先してインストールされるようになっているみたい。

Arch Linuxインストール時の変更点
Arch Linuxをクリーンインストールする際に、これまでの「baseグループ」を一括でインストールする方法がなくなってしまった。新たな「baseパッケージ」には「Linuxカーネル」も含まれないので細々と手動でインストールする必要がある。

Arch Linuxをインストールする際に、これまでbaseグループに含まれていたパッケージをインストールしたい場合は、これまで「baseグループ」をインストールしていた際のpacstrapコマンドを、以下のコマンドに置き換える必要がある。

旧コマンド
# pacstrap /mnt base base-devel

新コマンド
# pacstrap /mnt linux base base-devel cryptsetup device-mapper dhcpcd e2fsprogs inetutils jfsutils linux-firmware logrotate lvm2 man-db man-pages mdadm nano netctl perl reiserfsprogs s-nail sysfsutils texinfo usbutils vi xfsprogs


参考:

[1]Arch Linux JP Project - ニュース: `base` グループは必須の `base` パッケージに置き換えられました - 対応作業が必要です
[2]Arch Linux - Package Groups
[3]Meta package and package group - ArchWiki

スポンサーリンク

スポンサーリンク


関連コンテンツ


この記事をシェアする

0 件のコメント:

コメントを投稿