2018年1月18日木曜日

華麗なるLinuxの世界14 〜ソフトウェアインスコ祭り2〜

華麗なるLinuxの世界14 〜ソフトウェアインスコ祭り2〜

では、前回の続き。単純なyumでは入らないソフトを入れる。
その過程でLinuxを取り巻く環境や、Linuxの操作の基本を
実地で学んでいく。
今回入れるのはnvidia driver, firefox quantum, ibus-mozc

まずnvidia driver
これは単純な話でメーカーのサイトから拾うだけ。
メーカーが無償公開しているのなら
いっそリポジトリに登録してくれてもいいのでは?
そうなればyumで簡単に入るのだが?という話ではある。
しかしそこが例のフリーソフトの問題だ。
「無料で提供されたからといって、
それがフリーソフトとは限らない。
ソースコード公開や改変、再配布等の自由が認められなければ
真のフリーソフトではない。
我々はソレスタルビーイング、いや、間違えた
我々は真のフリーソフトを推進する者。
プロプライエタリソフトの支配に異議を唱える私設武装組織」
これがredhat/fedora/centosのスタンスだ。
「真のフリー(ソフト)」の反対が「プロプライエタリ」
例えばwindowsなんかは典型的なプロプライエタリだ。

実際の作業内容は単純。
まずnvidiaのドライバのダウンロードページ(ここ)を開く。
nvidiaみたいな大手のメーカーは製品だって大量に作っている。
もちろんドライバだって大量にある。
たったひとつのドライバで過去から現在までの
何十、何百種類の製品をフルに機能させられるドライバなんか
作れるわけがない。
例えばnvidiaは1993年創業。90年代の時点で
2017年や2018年の製品がどうなるか100%読むのは不可能。
自社製品だけならまだしも、他社の製品、
例えばwindowsや、ディスプレイや、CPU等、
そういうものも含めて90年代の時点で
2017年、2018年の最新モデルの最新機能までは予測不能。
だから新機能、新製品が発表される度に
新ドライバを開発するのに決まっている。
当然、その都度、その都度、開発していれば、
ドライバだって大量に蓄積される。 
そこで沢山あるドライバーのうち、どれをダウンロードするのか
選択する必要性が出る。
今回の場合はチップセットがGT1030
製品のタイプ=GeForce
製品のシリーズ=Geforce 10 Series
製品ファミリ=GeForce GT 1030
オペレーティングシステム=Linux 64 bit
言語=Japanese 
以上を選択したら検索を押す。次の画面でダウンロードできる。

注目はlinux対応のドライバがちゃんと開発されているという所。
「すべてのオペレーティングシステムを表示する」を選ぶと
SolarisやFreeBSDのドライバすら開発されている。
Linuxと言えばメーカーから「いらん子」扱いされている
陰キャの代表みたいなイメージではなかろうか?
しかし、そんな昔のイメージにしがみついている間に
世間はどんどん先を行っていると自覚した方がいい。

たとえばLinuxと言えば「最新の3Dゲームができない」
という常識も崩壊しつつある。
ゲームのプラットフォームとして有名なSteamでは
Linux対応のゲームが次々と公開されている。
10年前の常識だけでドヤ顔していたら
そのうち「老害」と陰口を叩かれるから気を付けた方がいい。
参考(リンク) Steamがlinuxに正式対応したのは
2013年2月の話。もう5年も前の話だ。 

さて、ではダウンロードできたドライバのインストールを開始。
# yum update
# reboot

// 過去記事の段階で既にupdateは済んでいるはず
// "念の為"にupdateするという意味
# yum install kernel-devel-$(uname -r) gcc

// 作業に必要なブツをダウンロード・インストールしている
# echo 'blacklist nouveau' >> /etc/modprobe.d/blacklist.conf
# dracut /boot/initramfs-$(uname -r).img $(uname -r) --force
// これからプロプライエタリドライバを入れるに際して
// ドライバの競合を防ぐ為にヌーボードライバを無効化する
// ヌーボードライバとはcentos/fedoraが標準搭載しているもの
# systemctl disable gdm
// gdm=gnome display managerの無効化
# reboot

// この状態で再起動するともちろんCUIで立ち上がる
// つまり以下の作業はコマンドラインで行う必要がある
// gnome標準ではユーザー名が画面に表示されて
// enterを押せばPW入力画面になるはずだ
// しかしコマンドラインのログインはまずはユーザー名入力から
// 自分自身で手打ちする事になる。
// もちろん当ブログをブラウザで見ながら作業はできない。
// 以下の4行はメモしておくかスマホで見ながら行う事になる
# bash NVIDIA-Linux-x86_64-352.30.run
# nvidia-xconfig
# systemctl enable gdm
# reboot 

// ドライバのバージョンは不定期に更新されるので
// 単純にコピペするとエラーになる可能性あり
// 再起動後はパッと見は通常の起動のようだが
// GPUのドライバが動いている
// application >> other >> nvidia xserver settingsで
// GPUの状況等見る事もできるようになっている 

次。firefox quantum with adobe flash
centosにも最初からfirefoxは入っている。
しかしバージョンが古い(52.2.0
# yum updateを行ったとしても入るのが52.6.0-1だ
(2018年2月5日時点)
一方firefoxはバージョン57以降quantumと称している。
「firefox始まって以来の大改革」と言われる最新版だ。
是非とも入れたいではないか。

参考(リンク):firefoxを作っているmozillaのブログの
クアンタム紹介記事
(Introducing the New Firefox: Firefox Quantum)
この中に
It’s by far the biggest update we’ve had since we launched Firefox 1.0 in 2004
という表現が出てくる。

まずはここ(リンク)で最新版のfirefoxのバージョン確認
また、途中で旧版firefoxを削除する関係上
firefoxのアイコンが欲しくなる。
適当に画像検索でもしてfirefox用の画像を拾っておく
今回は仮に拾った画像の名前がfirefox.pngであると仮定する。
$ cd /opt
$ su
# wget https://download-installer.cdn.mozilla.net\

/pub/firefox/releases/57.0.4/linux-x86_64/en-\
US/firefox-57.0.4.tar.bz2
// wgetで最新版のfirefoxを拾う
# tar xfj firefox-57.0.4.tar.bz2

// 解凍
# exit

// ルート権限から一般ユーザーに戻る
$ /opt/firefox/firefox

// 最新版のfirefoxが起動する事を確認
// 但し旧版が起動中はこのコマンドを使っても旧版が立ち上がる
// 逆に新版(57.0.4)が起動中は上のapplicationメニューから

// 立ち上げても新版が立ち上がる
// とりあえずはfirefoxのウィンドウを全部閉じてから
// このコマンドで最新版が立ち上がるという確認をする
$ cd /usr/share/applications/
$ su
# cp firefox.desktop firefox-quantum.desktop
# nano firefox-quantum.desktop

Name=Firefox Quantum Web Browser
Exec=/opt/firefox/firefox %u

// 上記の2行を修正する。ctrl + o >> enter >> ctrl + x
// 以上の作業でapplications >> internetの中に

// firefox quantumが出るようになる
# yum remove firefox

// 旧版削除
# cp firefox.png /usr/share/applications/
// firefox.pngを/usr/share/applicationsにコピー
# cd /usr/share/applications/
# nano firefox-quantum.desktop

// Icon=のところ書きなおす

//  ./firefox.pngはダメ ちゃんとフルパスで書く
// これでfirefoxインストール完了。flashは入っていない。
// しかしニコニコ動画もyoutubeも見られる。
// とは言え、東京電力の福一ライブカメラ(ここ)等
// flashが無いとエラーになる時代遅れのHPもいまだ実在する。
// そこで、以下、このfirefox quantumにflashを入れる。 
// 実はadobe flash以外にもpepper flash等
// 少し違うflashも存在する。今回入れるのはadobe flash

まずadobe本家(ここ)でflashをダウンロードする。
ブラウザからダウンロードしてもいいしCLIなら以下のように。
$ cd // homeに移動
$ wget https://fpdownload.adobe.com/get/flashplayer\
/pdc/28.0.0.137/flash_player_npapi_\
linux.x86_64.tar.gz
// コツは.tar.gzを落とす事
// yumやrpmもあるがこれはインストールしても無反応
// エラーが出ることもなく、インストールできるのに
// 肝心のHPの表示がflash無しの時と何も変わらないので
// 何が悪いのか不明 面倒臭いから.tar.gzで入れるのが早い。
$ tar -zxvf flash_player_npapi_linux.x86_64.tar.gz
$ cd flash_player_npapi_linux.x86_64
$ su
# cp libflashplayer.so /usr/lib/mozilla/plugins
// "libflashplayer.so"を"/usr/lib/mozilla/plugins"にコピー
// これ以降firefoxでalt押す >> 上のtools >> 
// add-ons >> pluginsにflashが出てくるので
// 右の方のalways activate等を選べばよい 
これでフクイチライブカメラ監視作業も捗る。 

次。ibus-mozc
過去記事でソースコード修正の方法については紹介した。
(華麗なるlinuxの世界8)
しかしこの方法をcentosで行うには問題がある。
どうせ当ブログの読者でも実際に試した人など皆無だろう。
だから私以外何が問題なのか誰も気付いていないだろう(爆w)

ぐぐればcentos7にibus-mozcを入れる方法というのは
あちこちのHPに記載がある。
以前紹介したのとソックリなやり方だ。たとえばここ(リンク) 
だがこの方法はダメなやり方だ。

# yum install protobuf
# yum localinstall zinnia-0.06-16.fc19.x86_64.rpm
# yum install zinnia

// ここが問題あり。epelからver.0.06-22.el7が拾えるが
// こいつが曲者。これは新しするせいで
// 次に必要になるzinnia-tomoeがインストール不可になる。
// では先程のリンクにも紹介されている通り
// zinnia-0.06-16を使えばいいのでは?というと
// 今度はjava-1.8.0-openjdkが入らなくなる。
// openjdkの依存関係でzinnia0.06-22.el7が
// 要求されるのが原因
// 0.06-16 → openjdkが入らなくなる
// 0.06-22 → ibus-mozcが入らなくなる

// ではopenjdkを1.7か1.6で諦めれば?というのもひとつの手だ
// しかしそれでも問題が全面解決はしない。この先は未検証だが
// このソースコード改変版ibus-mozcを使っていると
// たまにコピペができない事態が発生する
// どうも何かがフリーズしているくさいが
// 完全に文字入力を受け付けなくなる訳でもなくて
// 一体何が悪いのか不明
// "たまに"しか起きない症状なので
// そもそも特定の原因があるのかどうかすら検証しにくい

今回は以上の問題をまるっと解決する
ミラコーな方法を紹介したい。
元々はここのブログで紹介されていた方法だ。
ソースをちょいといじってrpmを作り直すという
基本方針は同じだが実際の作業内容は結構違う。

$ wget http://ftp.iij.ad.jp/pub/linux/Fedora/archive\

/fedora/linux/releases/19/Everything/source/SRPMS\
/m/mozc-1.10.1390.102-1.fc19.src.rpm
// fedora19用のmozcのソースを拾う
# yum install openssl-devel protobuf-devel qt-devel \

ibus-devel emacs
// 必要なもののインスコ
# yum install libxcb-devel zlib-devel glib2-devel \

gtk2-devel
// これらも必要だが私の環境ではインスコ済みと出た
# yum install --enablerepo=epel zinnia-devel gyp \

xemacs xemacs-packages-extra
// 以上4つはepelで拾える
# rpm -ivh mozc-1.10.1390.102-1.fc19.src.rpm
// SRPMインスコ

$ cd ~/rpmbuild/SPECS/
$ nano mozc.spec

Requires: zinnia-tomoe // これ削除
Requires: zinnia-tomoe-ja // これ追加
Requires: zinnia-tomoe-zh_CN // これ追加

# rpmbuild -ba mozc.spec

//  数分かかるはず + exit 0 と出たら終了
# yum install --enablerepo=epel protobuf zinnia \
zinnia-tomoe-ja zinnia-tomoe-zh_CN
# cd ../RPMS/x86_64/

// 上のリンクには書いていないがこのcd...は必須

// これをやらないとNo such file or directoryのエラーで止まる
# rpm -ivh mozc-1.10.1390.102-1.el7.centos.x86_64.rpm
# rpm -ivh ibus-mozc-1.10.1390.102-1.el7.centos.x86_64.rpm

(一旦PC再起動)
settings >> regison & languageで追加して終了

最後はお約束のひと言をオナシャス
「黒幕はキリスト教徒!」

0 件のコメント: