2022-01-15

Linux ディストロ探訪(28) 〜 CBL-Mariner 〜

CBL-Mariner は、Microsoft 社のクラウドインフラおよびエッジ製品・サービス向けの社内 Linux ディストリビューションです。大々的なリリースイベントがありませんでしたが、最初に一般公開されたのは、2020 年 11 月 5 日(現地時間)のようです [1]

デスクトップ用途のディストロではありませんが、一度は動かしてみようと GNOME Boxes の仮想マシンへインストールしてみました。

Oracle VM VirtualBox で起動した CBL-Mariner 1.0 のインストーラ

※ 上図は Oracle VM VirtualBox で起動した CBL Mariner 1.0 の Graphical Installer ですが、本記事では GNOME Boxes で Terminal Installer を使ってインストールした例を紹介しています。

OUTLINE

CBL-Mariner のインストール

CBL-Mariner 1.0 をインストールするには、まずインストール用の iso イメージのファイルを生成する必要があります。iso イメージ作成からインストールまで 参考サイト [3] に詳しく説明されていますので、参考にさせていただきました。

準備

前述の参考サイトでは Ubuntu を使って iso イメージを生成していますが、Fedora でもできるんじゃないかと期待して何度か試してみましたが、残念ながら iso イメージ作成のところでエラーが出てできませんでした。

仕方なく、GNOBE Boxes の仮想マシンへ Ubuntu 20.04.3 LTS をインストールして、この環境で iso イメージを生成しました。

Ubuntu 20.04.03 x86_64

Ubuntu をインストール、再起動してインストールされたパッケージを最新のバージョンに更新した後、更に下記のように必要なパッケージを追加します。

bitwalk@ubuntu-PC:~/Projects$ sudo apt install git make tar wget curl rpm qemu-utils golang-go genisoimage python2-minimal bison gawk
[sudo] bitwalk のパスワード: 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
   :
   :

iso イメージの作成までは、この Ubuntu で作業をしました。

Git リポジトリの取得

CBL-Mariner のリポジトリは下記の Github のサイトで公開されています。

適当なディレクトリで、上記リポジトリをクローンします。

bitwalk@ubuntu-PC:~/Projects$ git clone https://github.com/microsoft/CBL-Mariner.git
Cloning into 'CBL-Mariner'...
remote: Enumerating objects: 53278, done.
   :
   :

インストールイメージの作成

リポジトリをクローンした後、下記のように toolkit ディレクトリへ移り、make で iso イメージをビルドします。

bitwalk@ubuntu-PC:~/Projects$ cd CBL-Mariner/toolkit
bitwalk@ubuntu-PC:~/Projects/CBL-Mariner/toolkit$ sudo make iso REBUILD_TOOLS=y REBUILD_PACKAGES=n CONFIG_FILE=./imageconfigs/full.json
cd /home/bitwalk/Projects/CBL-Mariner/toolkit/tools/ && \
	go test -covermode=atomic -coverprofile=/home/bitwalk/Projects/CBL-Mariner/build/tools/internal.test_coverage ./...
go: downloading github.com/cavaliercoder/go-cpio v0.0.0-20180626203310-925f9528c45e
go: downloading github.com/rivo/tview v0.0.0-20200219135020-0ba8301b415c
   :
   :
WARN[0007] Max brk space used 57000                     
WARN[0007] 352636 extents written (688 MB)              
bitwalk@ubuntu-PC:~/Projects/CBL-Mariner/toolkit$ ls ../out/images/full/
full-1.0.20220113.2016.iso
bitwalk@ubuntu-PC:~/Projects/CBL-Mariner/toolkit$ 

処理に成功すると CBL-Mariner/out/images/full/ 内に full-1.0.20220113.2016.iso が生成されます。斜体部分の数字はタイムスタンプです。

GNOME Boxes へインストール

iso イメージを生成できたので、以降は普段使っている Fedora 35 上の GNOME Boxes 上にインストールします。

Fedora Linux 35 x86_64

GNOME Boxes 上で、生成した iso イメージを起動します。

 

仮想マシンに GNOME Boxes を使っているせいでしょうか、何度試しても Graphical Installer が起動しませんでした。結局、Terminal Installer を選択してテキストモードの画面でインストールしました。インストールに必要な設定は、Graphical Installer と同じ内容のようです。

 

EULA(ソフトウェア利用許諾契約)に承諾して次へ進みます。

 

CBL-Mariner Full を選択します。

 

(一箇所しかありませんが)インストール先を選択します。

 

ストレージの暗号化はスキップしました。

 

ホスト名を設定します。

 

ユーザーアカウントとパスワードを設定します。

 

インストールの設定が完了したので [Yes] を選択してインストールを始めます。

 

インストールが始まります。

 

インストールが 47 秒で終了しました。こういう表示がされるということは、インストール速度にこだわりがあるのでしょうか。

[Restart] で再起動します。

 

再起動後、設定したユーザーアカウントでログインできることを確認します。

 

インストール後

インストーラでは動作に必要な最低限の設定しかされていないので、追加でタイムゾーンとキーボードのレイアウト設定をしました。

 

タイムゾーンの設定

下記のようにしてタイムゾーンを Asia/Tokyo に設定します。

 

キーボードレイアウト

下記のように sudo で dnf コマンドを使って、足りないパッケージをインストールしてキーボードのレイアウトを日本語キーボードに設定します。

bitwalk [ ~ ]$ sudo dnf -y install kbd polkit
:
:
bitwalk [ ~ ]$ sudo localectl set-keymap jp106

パッケージ管理

CBL-Mariner では rpm パッケージを採用しているせいでしょうか、RHEL や Fedora を使っているような感覚で使えます。

 

dnf と tdnf によるシステム管理

パッケージのインストールなどを管理するコマンドは rpm コマンドに加えて dnf および tdnf を利用できます。

tdnf は RHEL や Fedora では利用できないパッケージなのですが、調べてみると、Photon OS という、コンテナ向け Linux で開発され利用できるパッケージのようです [4]。Python に依存しない dnf の C 言語実装版ということです。

tdnf コマンド
usage: tdnf [options] COMMAND

options    [-c [config file]]
           [--alldeps]
           [--debugsolver]
           [--destdir [path]]
           [--disablerepo=]
           [--enablerepo=]
           [--noplugins]
           [--enableplugin=]
           [--disableplugin=]
           [--rpmverbosity [debug level name]] [-v] [-y] [--assumeno]
           [--version] [--installroot [path]]
           [--nogpgcheck]
           [-q, --quiet]
           [--releasever RELEASEVER] [--setopt SETOPTS]
           [--refresh]
           [--exclude [file1,file2,...]]
           [--security]
           [--sec-severity CVSS_v3.0_Severity]
           [--showorder]
           [--reboot-required]
           [--skipsignature]
           [--skipdigest]
List of Main Commands

check-local               Checks local rpm folder for problems
check-update              Check for available package upgrades
clean                     Remove cached data
distro-sync               Synchronize installed packages to the latest available versions
download                  download a package
download-nodeps           download a package without dependencies
downgrade                 downgrade a package
erase                     Remove a package or packages from your system
help                      Display a helpful usage message
info                      Display details about a package or group of packages
install                   Install a package or packages on your system
list                      List a package or groups of packages
makecache                 Generate the metadata cache
provides                  Find what package provides the given value
remove                    Remove a package or packages from your system
reinstall                 reinstall a package
repolist                  Display the configured software repositories
search                    Search package details for the given string
updateinfo                Display advisories about packages
upgrade                   Upgrade a package or packages on your system
upgrade-to                Upgrade a package on your system to the specified version

まとめ

項目 説明
ディストリビューション CBL-Mariner
プロジェクトサイト https://github.com/microsoft/CBL-Mariner
デスクトップ環境 -
対応プラットフォーム x86_64
パッケージ管理 tdnf, dnf
日本語入力 -
寸評

Microsoft 社謹製の Linux ディストロということに興味を持って仮想マシンにインストールをしてみました。Microsoft 社の Azure や社内向けの Linux とは言え、Microsoft が Linux を公開するとは時代は変わったものだとつくづく思います。

CBL-Mariner で cockpit のパッケージを利用できたので、VM の外からアクセスできるように VirtualBox でインストールをやり直してあれこれやってみましたが、結局エラーで満足できる結果になりませんでした。そういうわけで今回の記事では掲載を見送っています。

CBL-Mariner は Microsoft 社の OSS への取り組みが判る例の一つだと思うので、今のところ CBL-Mariner を積極的に試用したいと考える動機はありませんが、しばらく仮想環境に残しておいて動向を watch したいと思います。

参考サイト

  1. マイクロソフト、社内用Linuxディストロ「CBL-Mariner」を公開--Azureサービス、エッジ機器向けに活用 - ZDNet Japan [2020-11-12]
  2. マイクロソフトの社内用Linuxディストリビューション「CBL-Mariner」とは - ZDNet Japan [2021-07-19]
  3. CBL-Mariner Linux 1.0 Released by Microsoft, Here's How to Install it[2021-07-13]
  4. Introduction to tdnf · VMware Photon OS 3.0 Documentation
  5. Ballmer: 'Linux is a cancer' • The Register [2001-06-02]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ Linuxへ
にほんブログ村
このエントリーをはてなブックマークに追加

0 件のコメント: