slimjetのインストール(CentOS7とDocker上のUbuntu16.04)

CentOS7へのインストール

  1. slimjetのダウンロードサイトから、tar.xzファイルをダウンロード。/opt/slimjetに tar xJf

  2. slimjet起動後、設定から、既定のブラウザにしたかったが、Slimjet cannot determine or set the default browserと表示されていて出来ない

  3. Minedaのメニュには、/etc/xdg/openbox/menu.xmlに入れることはできた

  4. 既定のブラウザの変更は、/usr/share/applications/mineapps.listをいじれば良いのかも知れない。

  5. ~/.local/share/applications/mineapps.listに以下を入れて見たが効果なし:

[Default Applications]

text/html=vivaldi-stable.desktop

application/xhtml+xml=vivaldi-stable.desktop

6. xdg-openで開くようにするには、BROWSERに設定すれば良いことがわかった。

BROWSER=/opt/slimjet/flashpeak-slimjet

ついでながら、Vivaldiもインストールしたが、何をしなくてもminedaのメニュに入った

Dockerコンテナのubuntu 16.04にインストール

  1. slimjetのサイトからdebをダウンロードするも、dpkg -i で、以下のエラー:

slimjet depends on libappindicator1; however:

Package libappindicator1 is not installed.

slimjet depends on fonts-liberation; however:

Package fonts-liberation is not installed.

2. apt-get install libappindicator1 fonts-liberation するも、以下のエラー:

The following packages have unmet dependencies:

libappindicator1 : Depends: libdbusmenu-gtk4 (>= 0.4.2) but it is not going to be installed

Depends: libindicator7 (>= 0.4.90) but it is not going to be installed

Recommends: indicator-application (>= 0.2.93) but it is not going to be installed

E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

3. apt-get -f install すると確かにインストールできた

4. /opt/slimjet/flashpeak-slimjetすると以下のエラー:

Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted

Trace/breakpoint trap (core dumped)

--no-sandoboxを与えれば起動するが、security上問題があるらしい。

https://stackoverflow.com/questions/50662388/running-headless-chrome-puppeteer-with-no-sandbox/53975412#53975412

の下の方に、seccompを使った対策が書いてある:

I was hitting a similar problem trying to run Chromium headless in an Alpine Docker container, and apparently so are many other (e.g., here, here). The --no-sandbox option is a straightforward workaround but obviously a poor security practice. What worked for me was setting a custom seccomp.

Download this file (if interested, see the author's notes here). Then pass the option --security-opt seccomp=path/to/chrome.json when starting Docker, or specify the same option in your docker-compose.yml if you're using one.