VMware Photon OS はコンテナむけの軽量 OS として提供されているので、
デフォルトでインストールされるパッケージも最小限にされています。
そのため、当然ながら他のディストリビューションで普段利用しているコマンドが
インストールされていなかったりすることもあります。
たとえば、Photon OS 1.0 の OVA (Build は 62c543d)をデプロイしてみると、
diff コマンドがインストールされていなかったりします。
root@photon-NaoOL4Nm6 [ ~ ]# cat /etc/photon-release
VMware Photon Linux 1.0
PHOTON_BUILD_NUMBER=62c543d
root@photon-NaoOL4Nm6 [ ~ ]# diff
-bash: diff: command not found
root@photon-NaoOL4Nm6 [ ~ ]# which diff
which: no diff in (/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin)
デフォルトの RPM 構成は今後のアップデートでも、また変わったりするのではないかと思います。
そこで今回は Photon OS への RPM 追加についての話です。
Photon OS では、Yum リポジトリで RPM が提供されていれば、
tdnf コマンドでインストールすることができます。
ただし、標準では yum コマンドではなく tdnf コマンドを利用します。
yum コマンドは、デフォルトではインストールされていません。
root@photon-NaoOL4Nm6 [ ~ ]# yum
-bash: yum: command not found
tdnf では yum コマンドと同様のオプションが使用できるようになっています。
たとえば、下記のように「diff」がインストールされていそうな RPM を探したりできます。
例では、Photon でも diffutils が提供されていることが分かります。
そしてインストールすると、diff コマンドが利用可能になります。
root@photon-NaoOL4Nm6 [ ~ ]# tdnf search diff
diffutils : Programs that show the differences between files or directories
root@photon-NaoOL4Nm6 [ ~ ]# tdnf install -y diffutils
Installing:
diffutils x86_64 3.3-3.ph1 862.60 k
Total installed size: 862.60 k
Downloading:
diffutils 319216 100%
Testing transaction
Running transaction
Complete!
root@photon-NaoOL4Nm6 [ ~ ]# which diff
/usr/bin/diff
ちなみに、yum を tdnf でインストールすることもできます。
root@photon-NaoOL4Nm6 [ ~ ]# tdnf install -y yum
Installing:
rpm-devel x86_64 4.11.2-11.ph1 389.27 k
libxml2 x86_64 2.9.4-3.ph1 7.27 M
pycurl x86_64 7.21.5-3.ph1 143.50 k
yum-metadata-parser x86_64 1.1.4-2.ph1 57.10 k
urlgrabber noarch 3.10.1-2.ph1 505.29 k
yum noarch 3.4.3-6.ph1 4.18 M
Total installed size: 12.52 M
Downloading:
yum 1359795 100%
urlgrabber 150199 100%
yum-metadata-parser 24490 100%
pycurl 52877 100%
libxml2 1548443 100%
rpm-devel 117961 100%
Testing transaction
Running transaction
Complete!
root@photon-NaoOL4Nm6 [ ~ ]#
yum コマンドが利用できるようになりました。
root@photon-NaoOL4Nm6 [ ~ ]# yum repolist
Failed to set locale, defaulting to C
lightwave | 1.3 kB 00:00
lightwave/primary | 13 kB 00:00
lightwave 68/68
photon | 1.3 kB 00:00
photon/primary | 202 kB 00:00
photon 537/537
photon-extras | 1.3 kB 00:00
photon-extras/primary | 6.8 kB 00:00
photon-extras 29/29
photon-updates | 1.3 kB 00:00
photon-updates/primary | 490 kB 00:00
photon-updates 1421/1421
repo id repo name status
lightwave VMware Lightwave 1.0(x86_64) 68
photon VMware Photon Linux 1.0(x86_64) 537
photon-extras VMware Photon Extras 1.0(x86_64) 29
photon-updates VMware Photon Linux 1.0(x86_64)Updates 1421
repolist: 2055
root@photon-NaoOL4Nm6 [ ~ ]#
ただ、デフォルトでは tdnf コマンドを利用するようになっていて、
Photon 以外の Linux ディストリビューションでもYUM 以外の
パッケージマネージャ(Fedra では DNF とか)を採用しているようなので、
個人的には可能な限り yum よりも tdnf を利用しておくとよいかなと思っています。
以上、Photon のパッケージ管理についての話でした。