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 のパッケージ管理についての話でした。