Systemctlの使用できない仮想環境(WSLやDockerコンテナ)でChromiumブラウザをインストールする

以前、書いたエントリーでWSL2-Docker環境ではChromiumブラウザがインストールできないという話をしていました。 パッケージがsnap経由で配布されていることによって、aptコマンドではダミーのインストールになってしまうためです。 snapsnapdというデーモン配下になっているため、snapdを動作をさせるためにsystemctlが必要になっています。

f:id:ueponx:20210104002850p:plain

参考

uepon.hatenadiary.com

エラーメッセージをみてもわかるのですが、systemctlが動作できない原因はPID=1のプロセスが/bin/bashで起動しているためで、通常の起動環境とは異なるためです。これを修正する方法はWSL単体ではあるようです。またディストリビューションUbuntuでなくCentOSでは対応しているコンテナのイメージ(Systemctl動作)が公式に配布されていることもあるので回避はできるようです。

f:id:ueponx:20210104002904p:plain

ただ、自分のやったWSL2-Docker環境では色々と試してみたのですが全く解決できませんでした。方法が無いわけでもないのでしょうが。

試行錯誤してうまく行った手は以下の様になりました。全然いい手でもなく、この手段を取るのであれば公式のGoogle Chromeのブラウザを入れたほうがいいかもです。

StableがだめならBeta版とかDeveloper版をいれればよいのでは?

色々と考えていく中でタイトルのようなことを考えたのです。Beta版Developer版も最初はsnap環境からしか入れられないと思っていたのですが、 調べてみると、こちらはaptのパッケージのおいてあるリポジトリの場所を追加することでインストールができるようでした。

ということでチャレンジしてみます。以下を参考にしています。

qastack.jp

別にDeveloper版でもいいかなと思ったので、今回はそちらのパッケージ場所を追加してみています。ドキュメントでは以下の様に書かれています。(sudoは抜いて、apt-getをaptにしています)

# add-apt-repository ppa:saiarcot895/chromium-dev  
# apt update  
# apt install chromium-browser  

このまま行けばいいのかなと思ったらadd-apt-repositoryコマンドないというエラーが出ます。そこで追加するコマンドを追加してインストールを以下の様にしてみました。

# apt update 
# apt install software-properties-common
# add-apt-repository ppa:saiarcot895/chromium-dev  
# apt update  
# apt install chromium-browser  

software-properties-commonというパッケージをインストールすることでadd-apt-repositoryコマンドを追加できます。というか、apt系のコマンドなのになぜそっちをインストールするのかなと思いますが。

これでインストールは完了します。起動してもsnapを使ってインストールせよと表示されることはありません。

ただ、このまま実行では駄目です。こちらのDeveloper版のオプションで--no-sandboxオプションをつけないと起動しません。このあたりはChromeブラウザと同じです。 オプションを追加することで、無事に起動するようになります。

# chromium-browser --no-sandbox

f:id:ueponx:20210102211957p:plain

バージョン表示もDeveloper版になっています。

おわりに

オプションをつけろと言われてしまうので、実質Chromeブラウザと同じ状況です。これでいいのかなという気はしますが、一つの解決策としてメモを置いておきます。

/* -----codeの行番号----- */