SUSE Linux Enterprise Server / openSUSE Leap

前回は、Ubuntuのパッケージをアップデートする方法を紹介した。現在、UbuntuはWindows 10で最も導入が簡単なLinuxディストリビューションであることから、Webサーバ向けのプラットフォームとしては世界中で一番使われており、日本でも人気の高いLinuxディストリビューションと考えられている。よって、WindowsユーザーがLinuxを利用する取っ掛かりとして、Ubuntuのパッケージ更新方法を紹介しておくというのは妥当ではないかと思う。

そのほか、日本企業では、Red Hat Enterprise Linuxおよびそのコミュニティ開発版とも言えるCentOSも人気がある。しかし現在、この2つのLinuxディストリビューションはMicrosoft Storeには登録されていない。使用するには仮想環境に自分でインストールを実施する必要がある。いくつかの主要なLinuxディストリビューションをMicrosoft Store経由で簡単に利用できる中、取り組むには敷居が高い状態にあるのは間違いない。

そこで今回は、Windows 10で簡単に導入できるLinuxディストリビューションとして、「openSUSE Lieap 15.1」でパッケージをアップデートする方法を紹介しておこう。

  • openSUSE Leap 15.1

    openSUSE Leap 15.1

日本や米国のエンタープライズユースのLinuxディストリビューションと言えばRed Hat Enterprise Linuxだが、欧州になると状況がガラッと変わる。欧州でエンタープライズ向けのLinuxディストリビューションと言えば、SUSEの提供する「SUSE Linux Enterprise Server (SLES)」なのだ。SUSEはドイツの会社であり、欧州で強い人気を持っている。

openSUSEは、SUSE Linux Enterprise Serverのソースコードをベースに開発されているLinuxディストリビューションで、Red Hat Enterprise Linuxに対するCentOSと同じ位置付けにある。エンタープライズ向けのSUSE Linux Enterprise Server、コミュニティが開発するopenSUSE Leapといった感じだ。

Microsoft Storeには、SUSE Linux Enterprise ServerもopenSUSE Leapも登録されている。SUSE Linux Enterprise Serverのライセンスを持っているなら、SUSE Linux Enterprise Serverをインストールすればよいが、試すだけならopenSUSE Leapをインストールして使ってみることをお薦めしたい。

たまには普段使っていないLinuxディストリビューションに手を出すというのもよいものだ。特に、管理系コマンドの違いなどから、Linuxサーバの管理に対して新たな視点や操作方法の概念が得られたりするのが面白い。

openSUSE Leap 15.1でパッケージアップデート

パッケージの更新方法は、UbuntuでもopenSUSE Leapでも同じだ。最初にパッケージ管理のためのメタデータを更新し、次にメタデータに従って古いパッケージをまとめてアップグレードする。

openSUSE Leapでは、zypperというコマンドでパッケージ管理を実施する。メタデータのアップデートには、refreshというサブコマンドを使用する。つまり、「sudo zypper refresh」でパッケージ管理用メタデータを更新することができる。

  • sudo zypper refreshでパッケージ管理用メタデータを更新

    sudo zypper refreshでパッケージ管理用メタデータを更新

「sudo zypper list-updates」でアップデート可能なパッケージの一覧を表示させることができる。

  • sudo zypper list-updatesでアップデート可能なパッケージを一覧表示

    sudo zypper list-updatesでアップデート可能なパッケージを一覧表示

  • 大量のパッケージがアップデート可能な状態にある

    大量のパッケージがアップデート可能な状態にある

あとは「sudo zypper update」でパッケージをまとめてアップデートすることができる。

  • sudo zypper updateでパッケージをまとめてアップデート開始

    sudo zypper updateでパッケージをまとめてアップデート開始

  • パッケージアップデート中

    パッケージアップデート中

  • パッケージアップデート完了

    パッケージアップデート完了

アップデートを実施すると、依存関係などが変わったことで不要になったパッケージというものが出てくることがある。Ubuntuであれば、apt autoremoveでこうしたパッケージをまとめてアンインストールすることができた。

  • openSUSE Leapでは対象を確認してから個別にアンインストールする

    openSUSE Leapでは対象を確認してから個別にアンインストールする

openSUSE Leapでは、個別に不要になったパッケージをアンインストールする必要がある。「sudo zypper packages --orphaned --unneeded」のように、zypperコマンドを実行すると不要になったパッケージを一覧表示させることができるので、ここからパッケージ名を得て個別にアンインストール実施する。

openSUSE LeapとUbuntuの違いまとめ

前回Ubuntu向けに実行したコマンドと、今回openSUSE Leap向けに実行したコマンドを比較表にまとめると次のようになる。

SLES Ubuntu
zypper refresh apt update
zypper list-updates apt list --upgradable
zypper update apt upgrade
zypper packages --orphaned --unneeded; zypper remove パッケージ名 apt autoremove

パッケージのインストール、アンインストール、検索についても、比較表にまとめると次のようになる。

SLES Ubuntu
zypper install パッケージ名 apt install パッケージ名
zypper remove パッケージ名 apt remove パッケージ名
zypper search パッケージ名 apt search パッケージ名

不必要になったパッケージのアンインストールに関しては多少手順が異なるが、それ以外はよく似ている。パッケージ管理システムのベースとなっている考え方が似ているので、どの管理コマンドもサブコマンド名が異なるくらいで、似たような動きをするのだ。

複数のパッケージ管理システムを使っていて混乱することがあるのは、メタデータの更新とパッケージの更新にそれぞれ使われる単語が違うことだ。メタデータの更新をupdateとして扱うこともあれば、パッケージの更新をupdateとして扱うこともある。この辺りは英語の文章でも混在して使われることが多く、説明を読んだだけでは混乱してくることもある。

しかし、こんな感じでUbuntuもopenSUSE Leapも似たような体系で管理するということがわかってくると、それぞれに親近感が湧いてくるんじゃないだろうか。最初は苦労するかもしれないが、そんなに違いが大きいわけではない。ある程度違いまとめてしまえば、どちらもそれなりに使えるようになる。ぜひ一度、openSUSE Leapにも触れてもらえればと思う。