RedHat系でChromiumとFlashのインストール
Chromium+Flash インストール
研究室Linuxだけどニコニコ動画見れないよ!艦これ遠征出せないよ!
そんな方々もいるのではないでしょうか。
インストールできない…ChromiumでFlashが読み込めない…などなど苦戦しました><
RedHat系でChromium BrowserとFlash Playerの動作できたのでまとめてみました。
確認した環境は下記の通り。
使用したパッケージは下記の通り。
Chromium本体のインストール
ソースコードからインストールするとなると数時間要するらしい…
ので、今回はコンパイル済みのrpmパッケージを用います。
ncsu.edu(ノースカロライナ州立大学?)にそれなりに新しいパッケージを発見。
urlはこちら↓
http://install.linux.ncsu.edu/pub/yum/itecs/public/chromium/rhel7/x86_64/
今のところ最新版は下記の様。これをダウンロードします。
端末からならwgetコマンドなどで。
chromium-43.0.2357.81-2.el7.centos.x86_64.rpm 02-Jun-2015 15:16
root権限でダウンロードしたパッケージをインストール。
が、私の環境ではlibXss.so.1
ライブラリがないと怒られました。
[user@localhost ~]$ su [root@localhost user]# rpm -ivh chromium-43.0.2357.81-2.el7.centos.x86_64.rpm 警告: chromium-39.0.2171.99-1.el7.centos.x86_64.rpm: ヘッダー V4 DSA/SHA1 Signature、鍵 ID ******: NOKEY エラー: 依存性の欠如: libXss.so.1()(64bit) は chromium-39.0.2171.99-1.el7.centos.x86_64 に必要とされています。
とりあえずyumリポジトリ内で必要なパッケージを検索。運よくありました。
※Fedora22ではパッケージ管理がyumからdnfに変更されましたが、
扱い方は変わっていませんのでyumのところをdnfに置き換えて実行。
(例:dnf provides */libXss.so.1
)
[root@localhost user]# yum provides */libXss.so.1 libXScrnSaver-1.2.2-6.1.el7.i686 : X.Org X11 libXss runtime library リポジトリー : sl 一致 : ファイル名 : /usr/lib/libXss.so.1 libXScrnSaver-1.2.2-6.1.el7.x86_64 : X.Org X11 libXss runtime library リポジトリー : sl 一致 : ファイル名 : /usr/lib64/libXss.so.1
yumの標準リポジトリ内に必要パッケージが見つかったyum(dnf)でインストール。
※もしリポジトリ内になかった場合、epel等のリポジトリを追加して検索するか、
rpmパッケージを個別に捜してくることになるかも…
再度Chromiumをインストールします。
[root@localhost user]# yum install libXScrnSaver [root@localhost user]# rpm -ivh chromium-39.0.2171.99-1.el7.centos.x86_64.rpm
ここまででChromiumが起動できます。
Flash Playerのインストール
次に本題。Flashプラグインを導入します。
Chromium系のプラグインにはNPAPIとPPAPIがありますが、
NPAPIがサポートから除外されPPAPIに移行する流れのようです。
2015年9月までNPAPIは無効化されているだけのようで、
chrome://flags/#enable-npapi
にアクセスすることで使えるらしいのですが既に項目が見つかりません…
NPAPIじゃなければいけないわけじゃないので今回はPPAPIを導入したいと思います。
が!
Adobe公式ではPPAPIはLinux以外でしかサポートしていない…
そこでPepper Flashを用います。
おそらくGoogleがChrome向けに用意したものと思いますが、
検索してみたがソースファイル等も見つからず詳細不明…
PostInstallerFのFedora向けにPepper Flashがあったため、こちらをダウンロード。
urlはこちら↓
http://sourceforge.net/projects/postinstaller/files/fedora/releases/22/x86_64/chromium-pepper-flash-17.0.0.134-1.fc22.x86_64.rpm/download
最新版は以下の様。Chromium 45もリリースしているし既に更新止ってる気配がっ…(2015/06)
chromium-pepper-flash-17.0.0.134-1.fc22.x86_64.rpm 2015-03-13
[user@localhost ~]$ su [root@localhost user]# rpm -ivh chromium-pepper-flash-17.0.0.134-1.fc22.x86_64.rpm
恐らくこの状態でChromiumを起動してもFlashを認識できていないと思います。
Flashが読み込めているかのチェックはこちらなどを参考に。
原因はChromiumが起動時に参照するlibpepflashplayer.so
のディレクトリが一致していないため!
今回使用したChromiumパッケージのデフォルト配置先をrpm -qs
コマンドで確認。
[root@localhost user]# rpm -qs chromium-39.0.2171.99-1.el7.centos 通常 /opt/chromium 通常 /opt/chromium/chrome 通常 /opt/chromium/chrome-sandbox 通常 /opt/chromium/chrome-wrapper ...
この/opt/chromium/chrome-wrapper
にFlashの参照先が書かれている。
chrome-wrapperのほぼ最終行付近の記述を見てみる。
[root@localhost user]# cat /opt/chromium/chrome-wrapper ... if [ -f /opt/chromium/PepperFlash/libpepflashplayer.so ]; then exec $CMD_PREFIX "$HERE/chrome" --ppapi-flash-path=/opt/chromium/PepperFlash/libpepflashplayer.so "$@" else exec $CMD_PREFIX "$HERE/chrome" "$@" fi
ここで参照先が/opt/chromium/PepperFlash/libpepflashplayer.so
となっている。
次にPepper Flashの配置先を見てみる。
[root@localhost user]# rpm -qs chromium-pepper-flash-17.0.0.134-1.fc22 通常 /usr/lib64/chromium 通常 /usr/lib64/chromium/PepperFlash 通常 /usr/lib64/chromium/PepperFlash/libpepperflashplayer.so 通常 /usr/lib64/chromium/PepperFlash/manifest.json 通常 /usr/share/lisenses/chromium-pepper-flash/eula_text.html
Flashは/usr/lib64/chromium/PepperFlash/libpepperflashplayer.so
に配置されているので参照先が異なり、認識できてないですね。
FlashをChromiumに認識させるために起動オプションを変更します。
テキストエディタで/opt/chromium/chrome-wrapper
を開き、最終行を表示します。
デフォルトで
/opt/chromium/PepperFlash/libpepflashplayer.so
となっている部分を
/usr/lib64/chromium/PepperFlash/libpepflashplayer.so
に置き換えます。
if文の条件式中とppapi-flash-pathの2箇所があります。
… if [ -f /opt/chromium/PepperFlash/libpepflashplayer.so ]; then exec $CMD_PREFIX "$HERE/chrome" --ppapi-flash-path=/opt/chromium/PepperFlash/libpepflashplayer.so "$@" else exec $CMD_PREFIX "$HERE/chrome" "$@" fi
⇓
… if [ -f /usr/lib64/chromium/PepperFlash/libpepflashplayer.so ]; then exec $CMD_PREFIX "$HERE/chrome" --ppapi-flash-path=/usr/lib64/chromium/PepperFlash/libpepflashplayer.so "$@" else exec $CMD_PREFIX "$HERE/chrome" "$@" fi
これでFlash Playerも動作すると思われます。
先ほども掲載しましたが、動作確認はこちら↓
https://helpx.adobe.com/jp/flash-player/kb/235703.html
インストールしなくてもYouTubeが見れるぞ!という話も聞きますが、
これはYoutubeではHTML5に対応していて、Flash Playerを使わずとも再生出来るためです。
YouTubeのデフォルト設定はこちらから↓
https://www.youtube.com/html5
余談ですが、ChromiumとFlashのディレクトリが/opt
と/usr/lib64
に分かれて気持ち悪い…
rpmコマンドでインストールする際、--prefix
オプションで変更しようとしたが、
再配置不可パッケージの様…
[root@localhost user]# rpm -ivh --prefix=/usr/lib64 chromium-39.0.2171.99-1.el7.centos.x86_64.rpm エラー: パッケージchromiumは再配置できません。
--relocate
と--badreloc
を用いて強制的に再配置することでうまく行った。
[root@localhost user]# rpm -ivh --relocate /opt=/usr/lib64 --badloc chromium-39.0.2171.99-1.el7.centos.x86_64.rpm
しかし、この場合でも配置されるchrome-wrapperファイルには、
上記と同じlibpepflashplayer.so
の参照先が記述されていますので書き換えの必要があります。
参考:再配置不可rpmパッケージのインストール先の変更
RPMパッケージ管理 - ソフトウェアエンジニアリング - Torutk
rootアカウントでの起動対応
おまけですが、rootアカウントで起動できない場合の対処法です。
上記同様、テキストエディタで/opt/chromium/chrome-wrapper
を開き、最終行を表示します。
exec $CMD_PREFIX "$HERE/chrome" "$@"
に--user-data-dir
を付加して
exec $CMD_PREFIX "$HERE/chrome" "$@" --user-data-dir
とします。
これにてroot権限でもChromiumを使えるのではないでしょうか。
充実したLinux Lifeを!
初めての投稿ですので誤字・誤情報・新情報などありましたら叱咤激励していただけると嬉しいです。