openSuse、Leap/Tumbleweedインストールメモ

タグ: OpenSUSE  

openSUSEは13.2以降、通常の定期リリース版の"Leap"と、最新版に近いバージョンがどんどんリリースされるローリング・リリース版の"Tumbleweed"と2種類リリースされます。

openSUSEは「まあ、だいじょうぶ」レベルでも、どんどんリリースしてくれますので、ローリング・リリース版はある程度のリスクを追いながらも、新しいパッケージがどんどん利用できます。

リリース時にTumbleweed版を使い、調子が悪かったのでLeapを使いました。その後、packmanリポとの連携が崩れたり、大きな不調がでたり認め一時Mintへ逃げましたが、基本的なツールの一部がうまく動作しないため、2年ぶりにTumleweedへ戻ってきました。(追記:アップデート不可能になったため、1年ぶりにLeapへ戻ってきました。)

インストール時のメモです。

事前バックアップ

事前にrsyncで影響を受けないパーティションか外部ストレージへホームディレクトリーの内容を退避しておく。

インストールの方針によっては、ブラウザのブックマークを独自に保存しておいたほうが良い。日本語入力やエディターのキー割り当てもエクスポートできるものは、とっておいたほうが良い。

メディア

インストールDVDとライブCD、ネットインストール版があります。一応、日本語環境ならDVD版から入れるほうが、経験上設定が楽です。

インストールDVDは大きいですので、ダウンロードと焼きこむために時間はかかります。複数台数インストールするなら、DVD一択ですが、一台だけにインストールするなら、ネットインストール版を使えば多少時間が早くて済むかもしれません。(実際は、ダウンロードに時間がかかりますので、いざという時のため通常のインストールDVDを焼くか、USBメモリに入れておきましょう。) ネットインストール版もGUIはDVD版と、ほとんどUIと手順は変わりません。インストールがDVDメインか、ネットメインかの違いです。openSUSEの場合、テキストモードでもYastが頑張ってくれるので、さほどインストールは面倒ではありません。

USBに保存し、インストールすることも可能です。試したところDVDより当然インストール速度は上がります。再インストールも楽ですのでおすすめです。(マザーボードでUSBメディアからのインストールをできるように設定する必要はあります。)

USBからのインストール

sudo zypper in imagewriter

"SUSE studio イメージライター"を起動し、USBへ焼き付ける。使用するUSBは内容が全部消去されることに注意を払うこと。

注意点

  • デフォルトのファイルシステムはbtrfsになります。無回転のデバイスの場合自動的にssdに最適に動作するようです。13.2の時に、パニック起こりまくり、ジャーナルの処理が重く、時にはCPUを使いっぱなしで数時間(HD)という状況に出会いましたが、もうバグも枯れた頃ですので、現在はルートをbtrfsにしています。
  • ルートをbtrfsに指定すると、必要なサブボリュームはopenSUSEが設定してくれます。

起動時が遅い

起動時のスプラッシュ画面で、左右のカーソルキーを押すと、起動時のターミナルへの出力が表示されます。

起動が遅い場合、ターミナルへの表示を確認します。後ほど、起動時のログを見ることも可能です。

"start a job for デバイスのUUID"のようなメッセージは、パーティションが有効になるのをシステムが待っています。私が経験したものと、ネット上の情報を調べると、どうやらスワップが原因で発生することが多いようです。デバイス名に表示されるUUIDがスワップのパーティションの場合、この可能性があります。

原因は、1.ハイバーネートをしようとして失敗したためスワップが中途半端な状態、2.UUIDが設定と一致していない状況が多いようです。一度スワップを削除し、再度作り直し、その新しいスワップのUUIDを/etc/fstabと、GRUBの起動時のパラメータの"resume"先として指定します。

特にGRUBのレジューム先のパーティション名は、YastなどでSWAPパーティションを操作しただけでは、現在自動的に変更されないようなので、自分で指定し直す必要があります。

私の場合スワップの他に、BTRFSのルートマウントに対しても、同様の"start a job..."で待つ状況になっていましたが、スワープの不具合を修正しているうちに、こちらは自然と解消されました。

追記:再度BTRFSのルートとスワップで同じ状況へ戻りました。幸い、当方ではスワップを使うような状況は起きないため、スワップを削除し、GRUBの起動アイテムの設定から"resume=..."を消しました。これで、再現することはなくなりました。

ただし、ハイバーネートは当然できなくなります。わたしは、復帰後のハードウェアが不安定になることが多いため、もともとopenSUSEのハイバーネートを使用していないため、この設定で問題ありません。今現在、可能性として思いつくのは、メモリが8Gなのに対し、スワップが4Gだったため、この現象が起きていた可能性があります。

追記2:どうやらBTRFSのルートに対するメッセージ表示は、fstabファイルの最初のエントリーである理由からであるようです。パーティションをマウントしようとして、何かの原因でできない場合でも、このメッセージが表示されます。

BTRFSに限らず、ルートディレクトリ(fstabの最初のエントリ)に対して「ジョブを起動中」起動ログメッセージが出され、すぐに起動されない場合、マウントできないため、その間表示されるようです。

どうやら、パーティションの使用パーセンテージが一定以上になると、毎回それを処理しようとして時間がかかっているようです。これも推測ですが、残りが少なくなってもある一定容量残っている場合は1分半、残っていない場合は無期限に処理するようです。

インストール時

インストール段階で、パッケージ選択できます。できるのですが、この段階ではデフォルトのままにしておくほうが、安定してインストールできます。新規にインストールする場合は、インストールパッケージを選んでも、問題になることは少ないようです。

今回は「基本開発」だけを選択し、追加インストールしました。基本開発は直接開発しない場合でも、ソースからコンパイルする場合に有効なので、入れておきましょう。

インストールでトラブる場合は以下の点をチェックしましょう。

  1. DVDは正しく焼けているか確認しましょう。DVD自身でチェックできます。ブート時のオプションです。
  2. 再起動せず、一旦終了し、それから試してみましょう。
  3. デフォルトの英語のままで、インストールしてみましょう。(ただし、後から日本語キーボードの切り替えに手こずります。多分3層で切り替えなくてはなりませんが、KDEとその下くらいはわかりましたが、もう一つの切り替え方が分かりません。せめて何であるが名前が分かれば検索もできますが、それすら私には分かりませんでした。)
  4. テキストモードでインストールするとインストールできることがあります。

インストール後

リリース直後でなければ、アップデートがあるはずです。まず先にアップデートを行いましょう。それが終わるまで、他のことをするのは、止めておきましょう。

さすがにTumbleweedはローリング・リリースですので、最新のISOファイルであれば、アップデートはさほど多くないでしょう。古いISOを利用する場合は、それなりにアップデートはあるでしょう。

私的設定

ここからは、私の個人設定です。

インストール時のパーティション設定(現在未設定)

SSDディスクシステムについては、最新情報を検索し選択する。

SSDドライブのext4パーティションに、discard,noatime,nodiratimeを追加する。 => 最近はdiscardだけ。

discard:自動trim、noatime:アクセスタイム(read)を書き戻さない、nodiratime:ディレクトリーへのアクセスタイムを書き戻さない。(ただし、discardは削除時毎回fstrimを実行する。fstrimにより、削除マークが付けられた領域が実際に削除され、速度アップにつながるが、削除時の毎回trimにより、速度は落ちる可能性あり。その場合はdiscardを止め、cronでSSDのパーティションルートパスに対しfstrimを実行する。今回SSDパーティションは/と/homeなので、両方に対してfstrimするcronを指定する。)

SSD向けカーネルチューニング(現在未設定)

スーパユーザーになり、以下を実行。

ディスクのタイプにより、スケジュールを切り分ける。

/etc/udev/rules.d/60-sched.rulesファイルを以下の内容で作成する。

# SSDのように回転しないディスクは、deadlineを指定。noopでもよし。
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"

# 回転する通常のディスクには、cfqスケジュールを指定。(デフォルトだからなくても良いかも)
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="cfq"
全ssdマシン向け、先読みの停止(将来全SSD化した時のため)
systemctl disable systemd-readahead-collect.service
systemctl disable systemd-readahead-replay.service
ローカルsysctlの設定

/etc/sysctl.d/99-sysctl.confに以下の行を追加。

vm.swappiness=1
vm.vfs_cache_pressure=50

swappinessはメモリが1%を切らないとswapを使用しない設定。 vfs_cahe_pressureはどの程度キャッシュに退避させるか。デフォルト100%。 現状、スワップアウトすることが極端に少ないため、SSDを保護の方向に調整。

ローカルで使用するキャッシュをtmpfsへ

~/.cacheなど、ディレクトリーのアチラコチラに存在する一時ファイルは、tmpfsにする。Yastのパーティションから設定。デフォルトで設定される他のtmpfsに合わせるのであれば、サイズを50%で指定する。(現在、Yastから設定できない。)

tmpディレクトリーのクリーンアップ(これは設定)

openSUSEはポリシーにより、/tmpと/usr/tmpのクリーンアップは行なわない。自前で設定が必要。

sudo mv /usr/lib/tmpfiles.d/tmp.conf /etc/tmpfiles.d/tmp.conf

次にコピー先のtmp.confのクリーンアップ先を変更します。削除間隔が-のままだと、自動削除は行われない。RedHatのように/tmp下を10日、/var/tmp下を30日で削除する設定の場合:

# extなどのフォーマットRedHat風
d /tmp 1777 root root 10d
d /var/tmp 1777 root root 30d

# btrfsなどサブボリュームがあるタイプはdの代わりにqを指定
q /tmp 1777 root root 10d
q /var/tmp 1777 root root 30d

即時削除の場合は間隔に0を指定する。

Firefoxでディスクにキャッシュさせない(現在未設定)

Firefoxを開き、URLバーにabout:configを入力し、以下の値に設定値を変更する。(設定ファイルを書き戻せば、一緒に戻されるはず。)

browser.cache.disk.enable = false
browser.cache.memory.enable = true (デフォルト)
browser.cache.memory.capacity = -1 (デフォルト、自動調整)

設定ファイルの書き戻し(ホームディレクトリー)(今のhomeは単独パーティション)

基本は/homeを別パーティションにしておくのがベスト。書き戻しを行わずに済む。

バックアップから、.bash_itディレクトリー、.composerディレクトリー、.fontsディレクトリー、.sshディレクトリー、.Vagrantディレクトリー、.vimディレクトリー、VirtualBoxディレクトリーを書き戻す。

バックアップから、.bash、.git、.vim*ファイルを書き戻す。

Virtual Box(現在設定)

Virtual Boxをインストールする。

zypper install virtualbox virtualbox-qt

自分のアカウントをvboxusersグループに所属させる必要があるため、Yastの「ユーザとグループの管理」から設定する。

仮想マシン管理ツールのファイル→環境設定で、Virtual Boxの保存ディレクトリーをルートから外す。(一度設定すれば、ホームディレクトリーに情報が残るので、ホームディレクトリーを使いまわす場合は、必要ない。すでに仮想環境に関してはCPUネックなので、SSDとディスクでは速度に変化があまりない。それと仮想環境のIOは結構激しい。)

keepassx

zypper install keepassx

keypassxではなく、keepassxである。本当に間違いやすい。

自動保存オプションをセットする。

KDEシステム設定(homeは独立パーティションのため未設定)

  • CapsLockキーをCtrlにする。
  • 起動時のNumLockをオンにする。
  • KDEウィンドウのsolarizedカラースキーマ(dark、light)を新しいカラースキーマ取得ボタンから、インストールする。周辺の明るさに合わせて、どちらかを設定。(どうもKDE5では今の所設定が甘く、使いづらい。しばらくデフォルトを使用する。)
  • フォントサイズを大きくする。
  • 電源管理で、余計なことをされないように設定。
  • セーバー(ロッカー)を起動しないように設定。(設定場所が変更、「ワークスペーステーマ」から設定)
  • kcronをインストール。KDEのシステム設定にタスクスケジューラーが現れるようになり、GUIでcronの設定が可能になる。
  • KDE開始時に起動するプログラムを起動と終了、自動起動へ登録。「起動時」は.kde/Autostartへ登録され、デーモンタイプのシェルでも使える。「KDEの起動前」に終了しないタイプのプログラム/シェルを登録すると、KDEが立ち上がらなくなる。この場合、ALT+F2あたりにあるttyからログインし、.kde4/envに登録されている内容を削除する。
  • ワークスペースの挙動の仮想ディスクトップでから、数を3、段数は1に設定。

YaST(home独立パーティションのため、引き継がれる。未設定)

  • カーネル設定でSYS Rqキーを有効にする。これでいざとなったら、SYS Rq(ALT+Print Screen)+「霊?寒ぶ!」(REISUB)により、フリーズから抜け出せる可能性が大きくなる。
  • ブートローダーのタイムアウトを3秒に変更。
  • パーティション設定で、ラベルをつけているパーティションはルート下に同名でマウントする。その際、NTFSのパーティションはdmask、fmaskともに0(制限なし)にする。EXTのパーティションはデフォルトのまま。(あえてマウントしなくて最近は勝手にマウントしてくれるのだが、その際ルートパスワードの入力が求められるため、起動時にマウントするようにしておいたほうが、後が楽。)
  • ネットワークの設定で、ホスト名/DNSのタブから、ホスト名を設定する。その時にループバックに割りつけるをチェックしておくと、/etc/hostsへ一緒に書き込んでくれる。(名前にsuseが含まれていると、ホスト名がオレンジで表示されるように設定済み、入っていない場合は緑)

ソフトウェアのインストール

とりあえず、必要なものだけ。後ほど、順次インストール。

  • パターンでWeb及びLAMPサーバーと基本的な開発の2パターンを指定(この時点でphp5の代わりにphp7を指定する)

  • sudo zypper install kate git xsel dropbox inotify-tools kcron pavucontrol the_silver_searcher agrep ansible pandoc dolphin-plugins ed xautomation gimp inkscape docker docker-compose

  • PHPで検索し、必要な拡張パッケージをインストール(パッケージ検索から、php5-xdebugも入れておく。通常はserver:php:extentionsに用意されている。このバージョンが起動しなければ、本家から取得。)

ファイラー(Dolphin)の設定(引き継がれるため未設定)

  • サービスから、削除、Dropbox、Gitを有効にする。(Git使用中止、ファイルが多くなるとCPUを潰す)
  • ワンクリックオープン

カーソルのブリンク停止(現在未設定)

KMenuのユーティリティから、Qt4設定を起動し、インターフェイスタブのブリンク感覚を値をマウスで下げて、ブリンクしない設定にする。その後ファイルメニュー項目から、内容を保存する。

Dropboxの設定(インストールすれば、設定が引き継がれるため、未設定)

端末からdropboxを起動する。

dropbox start -i

ダウンロード、インストール、続いてGUIでの設定となる。アカウント情報を入れれば終了。次回からは、ログイン後自動的に起動する。

KATEの設定(home独立パーティションのため引き継がれる。未設定)

/homeの連用、書き戻しを行わない場合、以下の手順で設定を戻す。

バックアップから.kde4/share/app/kate/下のsessionsフォルダー、kateDefaultshortcuts.rcとkateui.rcを復活させる。 バックアップから、.kde4/share/config/katesyntaxhighlightingrcを復活させる。

  • 外部プログラムによる変更を警告するように設定。
  • プラグインで、ターミナルツールビュー、タブバー、ビルドプラグインを有効に設定。
  • ターミナルを自動同期するように設定。
  • 動的な行の折り返しを有効に設定。
  • 拡張機能でAuto Braceを有効に設定。
  • フォントをDejaVu Sans Mono/Book 14pointに設定。

プラグインを同時に有効にすると、起動時に1CPUを長時間食い潰す。一度プラグインを減らし、再度一つずつ設定すると、この現象は起きなかった。

Solarized(引き継がれるため未設定)

https://github.com/hayalci/kde-colors-solarizedでkateとkonsole、KDEカラーパレットにsolarizedを追加。随時、調整。

もしくは、バックアップから、カラースキーマを上書きする。(KATEはkaterc)

設定ファイルを戻さない場合、vimもsolarizedをいれる。(詳細は検索のこと)

再起動

あまり一度に設定せず、時々再起動をかけたほうが安心。

ホスト名

/etc/hostsかYastのホスト名から、phpmyadminなど必要なホスト名をそれぞれローカルループバック(192.168.xxx.xxx)へ割りつける。Apacheの仮想ホスト設定で使用する。

Apacheの設定(Vagrant/Docker使用するため未設定)

42.2注意: 原因はわからないが、Leap42.2をインストール後、ApacheもNginxも仮想ホストが動作しなかった。どうやら、仮想ホストに割り当てていたIPv4が無視されており、唯一の解決策は/etc/hostsのIpv6のループバックに、使用するドメイン名をショートカットとして追加することだった。IPv6がデフォルトで動作するようになり、その対応が中途半端らしい。ローリング・リリース版であるTumbleweedでは問題なく動作していた。

YaSTからGUIで設定。HTTPサーバーを選択する。初回起動時は、全部のオプションを見直すようにウィザードが走る。サーバーモジュールでは"rewrite"を有効にし、最後のページ(5/5)で、起動時にapacheも起動するように設定する。

仮想ホストの設定ポイント:

  • phpmyadmin ドキュメントルートをwww/htdoc/PHPMyAdminにし、index.phpをディレクトリーインデックスへ
  • toran.local ドキュメントルートをwebにし、app.phpをディレクトリーインデックスへ

(バグっているため仮想ホストが設定できない場合は、手動で/etc/hostsと/etc/apache2/vhosts.d下を設定。テンプレートファイルをxxxxx.confとしてコピーし、内容を指定する。)

この時点でlocalhostへアクセスし、It works!が表示されれば起動OK。

開発マシンなので利便性のため、/etc/apache2/uid.phpで起動ユーザー/グループを変更しておく。多少セキュリティーも考えるなら、ユーザーだけを自分のものに変更する。変更後、sudo service apache2 restartで設定を反映する。

/var/libのphp5やapache2の所有者を自分のユーザー(hiro)へ変更。

chown -R hiro php5 apache2

もう一度、YaSTからHTTPサーバーを起動し、サーバーモジュールを設定する。rewriteだけを有効へセット。あとはホストタブで、仮想ホストを設定する。

仮想ホスト設定のコツは、新規登録時のディレクトリーオプション、ディレクトリーインデックスにインデックスファイル(index.htmlやindex.php)を設定しておくことと、作成し終えたらすぐにそれを編集し、ドキュメントルートのAllowOverrideをnone以外に設定する(開発時であれば、allで良い)こと。

また、ログファイルをホームに書いておくと、トラブル時の現象の解決時にすぐにアクセスできて便利。"ErrorLog /home/hiro/error.log"

オレオレサーバ証明(未設定)

ComposerがHTTPS通信でないとワーニングを出すようになったため、プロキシのToranを対応させる必要がある。

sudo gensslcert -C toran.local -n toran.local -e メールアドレス

これで、必要なファイルが/etc/apache2のssl.*ディレクトリ下へ設定される。特にssl.crtディレクトリ下のファイルは、コマンドラインとWebサーバの実行ユーザの両方から読めるように、オーナーと実行権を変更しておく。

Apache2のsslモジュールを有効にしておく。Yastを起動しない場合は、自分で再起動する。

それでもYast2のGUIでは、SSL設定が有効にならない。手動で仮想ホストを設定する。toran.local.confとしてvhosts.dに保存する。

<IfDefine SSL>
<IfDefine !NOSSL>

<VirtualHost _default_:443>
        DocumentRoot "/home/hiro/works/toran/web"
        ServerName toran.local:443
        ServerAdmin webmaster@example.com
        ErrorLog /var/log/apache2/error_log
        TransferLog /var/log/apache2/access_log

        SSLEngine on

        SSLCertificateFile /etc/apache2/ssl.crt/toran.local-server.crt
        SSLCertificateKeyFile /etc/apache2/ssl.key/toran.local-server.key
        SSLCertificateChainFile /etc/apache2/ssl.crt/toran.local-ca.crt

        <Directory /home/hiro/works/toran/web>
          AllowOverride None
          Require all granted
          DirectoryIndex app.php
        </Directory>
        </VirtualHost>

</IfDefine>
</IfDefine>

これで、SSL自体は有効となる。

OpenSSLなどの設定を登録するには、/etc/apache2/ssl.crt/toran.local-ca.crtファイルをファイル部ライザで開き、ダブルクリックで「アプリケーション起動」すると、新たなCAとして追加登録してくれる。

あとは、~/.composerのconfig.jsonなどで、toranのURLへhttpsでアクセスするように、変更する。

MySQL

MySQLのサーバーを起動しておく必要がある。Yastのサービスマネージャーから設定する。もしくは端末から設定する。

sudo su
service mysql start
chkconfig mysql on

rootユーザーはインストール状態では、パスワードが設定されていない。これではphpMyAdminからログインさせてもらえないため、パスワードを設定。

$> mysql -u root
# 以降はmysqlで操作
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'::1' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'ホスト名' = PASSWORD('newpwd');

あとは、ブラウザからphpmyadminにアクセスし、ユーザー名root、パスワードは指定したものでログインすれば使用できる。

どうも上手く行かず、全テーブルごと削除して、まっさらな状態でやり直したい場合は、全データベースを削除する。

sudo su
cd /var/lib/mysql
service stop mysql
rm -R *
service start mysql

sami(現在未使用)

PHPのドキュメントジェネレーターをダウンロード。

curl -O http://get.sensiolabs.org/sami.phar
chmod a+x sami.phar
mv sami.phar ~/bin/sami

最後で実行パスの通っているディレクトリーへ移動、リネーム。

Firefox(引き継がれるため、未設定)

/homeの連用、もしくは書き戻しをしていないのであれば、バックアップから.mozilaをまるごと上書き。すべて復活。

日本語入力(引き継がれるため、未設定)

メジャーアップグレードごとに変更あり。リリース後しばらくすると安定する。

今回は何もしなくてもIBUSのMOZCが動き、設定も引き継がれている。

Node.js

公式リポが新しければ、そのまま使用。現在、公式リポのnode.jsはnodejs4とnodejs6が存在し、それに合わせてnmpもnmp4とnmp6が存在する。バージョン6をインストールする。

古い場合、npm経由のインストールでエラーが出る。そのため、最新版をインストールする。(今回は新バージョンをダウンロードし、.bash_profileの設定を変更したのみ)

curl https://raw.github.com/creationix/nvm/master/install.sh | sh

今回はこれで成功。

上記の自動インストールが失敗する場合は、手動でインストール

# clone済みであれば、pullして最新にする
git clone https://github.com/creationix/nvm.git ~/.nvm
source ~/.nvm/nvm.sh
nvm ls-remote
# 表示される結果を確認して
nvm install 最新バージョン

次に、.bash_profileに付け加える。

if [[ -s ~/.nvm/nvm.sh ]];
then
   source ~/.nvm/nvm.sh
   nvm use v4.x.x > /dev/null
fi

Amarok

音楽プレーヤーのAmarokを起動。後からでも良いのだが、音楽ファイルの存在するフォルダーを指定。

プロプライエタリなフォーマットが読めないため、http://opensuse-community.org/Restricted_formatsから、バージョンに合った拡張パッケージをインストール。(適切なボタンをクリック)

さらに、http://opensuse-guide.org/codecs.phpもインストール。(ボタンクリック)

これで、サードパーティーのPackmanなどのリポジトリが指定され、必要なパッケージがインストールされる。

ただし、パッケージのコンフリクトが起きる場合は、Packmanリポジトリを優先にする必要がある。上記ページに指示されているとおりに、Yastパッケージマネージャーから、「システムのパッケージをPackmanリポジトリ」から取得するように切り替える。

もしくは、コマンドラインから指定する。

sudo zypper dup --from http://packman.inode.at/suse/openSUSE_Leap_42.2

まず、音声や動作のトラブルが出た場合に、最初に行うことは、ホームの.kde4/shareに存在する、amarokに関連していそうなディレクトリを下の階層まで探し、削除する。さらに以下が有効。

rm ~/.cache/gstreamer-1.0/*

それでもだめなら、amarokを端末から起動すると、エラーメッセージが表示され、それを手がかりにすることができる。それでも有効な情報が得られない場合は、amarok --bebugで起動すると、デバッグ情報が表示される。(細かすぎて、かえって原因を調べるのが難しいかもしれない。)

vlc

vlcはPackmanのvlc-codecsコーディックをインストールしないと、mp4などほとんどの動画が再生不可能。ただし、入れても再生が乱れる。

バックエンドにffmpegを試用している場合、以下のコーディックインストールで動作するという情報があるが、動作しないようだ。

sudo zypper in gstreamer-plugins-bad-orig-addon gstreamer-plugins-ugly-orig-addon gstreamer-plugins-libav

Java(未設定)

※ PHP版のNetbeansはJava同梱になったので、PHP版だけ使用するならば別に入れる必要がない。

NetBeansを動作させるために、Java JDKをOracleから入手。このOS入れ替え時期に、ついでに最新版に入れ替える。

http://www.oracle.com/technetwork/java/javase/downloads/index.html

今回はrpmファイルをダウンロードし、右クリックのApperインストーラーで後はおまかせ。

インストール後、Javaを今インストールしたSE版に切り替える。

cd /usr/java/jdk1.8.0_64/bin <= インストールバージョン
sudo su
for bin in *; do update-alternatives --install /usr/bin/$bin $bin $(pwd)/$bin 20000; done

update-alternativeで管理されていないコマンドはエラーになるが無視する。

続いてNetBeansを入手。ホームディレクトリーへ移動。

/homeの連用、書き戻しをしていないなら、バックアップから、.nbiと.netbeansをリカバー。

sh ./netbeans-8.0.2-linux.sh  # ファイル名はバージョンと選んだパッケージにより違います

標準ではIDEの文字サイズが小さすぎるため、少し大きくする。インストールしたnetbeans-7.4/etc/netbeans.configを開き、起動オプション(netbeans_default_options)に--fontsize 14を追加する。

もしくは、テーマをNimbusに変更する。文字の大きさは簡単に変更できないが、表示がきれいなため、小さくても分かりやすい。上記と同じ方法で起動オプションに、"--laf Nimbus"を追加する。

Vagrant

公式サイトから、最新版をダウンロードし、インストール。

AWSコマンドラインツール(未設定)

直接wgetで取り込んで、インストーラーを走らせる方法だと、コマンドの補完が効かない。pip経由でインストールするほうが、手間がかからない。

sudo easy_install pip
sudo pip install awscli
# bashの場合
complete -C aws_completer aws

バックアップから、.aws/configファイルを書き戻す。なければ、以下の感じで。

[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
output = table

[profile cli]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
output = json

KDEのクリーンナップ

~/.kde4の中に、マシン名(hostnameコマンドで表示)が後に続く、chche-socket-tmp-ディレクトリーが作成される。現在のマシン名(ホスト名)以外のディレクトリーは削除する。

再生音の録音(必要に応じ設定)

audacityで録音し、何かの音を再生すると、PulseAudio音量調整の再生ペインに"ALSA plug-in [Audacity] ALSA Chapture から"と表示され、入力先を選べるようになるので、"Monitor of ..."を選ぶことで、再生音をチャプターできる。

その際、Audacity側で録音音を再生しないように指定していないとハウリングが発生する。(録音と再生から、オーバーダブを切っておく)

なお、AudacityがALSEのボリュームを起動時や設定時に変更してしまうので、直前に調整すること。

sollar(使用しない)

LogitechのUnityingは、そのままでも使用できるが、1レシーバーで1デバイスしか処理できない。4デバイスまで1レシーバーで受け持たせるために、ユーティリティーをインストールする。標準リポには存在しないため、プライベートリポジトリーから見つける。一度レシーバーが設定されていれば、openSUSEを再インストールしても必要ない。

http://software.opensuse.org/package/Solaar

GUIが起動しなければ、コマンドラインを使用する。/dev/hidraw...がレシーバーのデバイスである。

先ず、外したいレシーバーのペアを解消する。

sudo solaar-cli -D /dev/hidraw3 show
sudo solaar-cli -D /dev/hidraw3 unpair 1

続いてまとめたいレシーバーを指定し、ペアリングを行う。

sudo solaar-cli -D /dev/hidraw1 pair

20秒間、ハンドシェイクされるので、その間に対象のデバイスのスイッチを切り、再度オンにする。

Beanstalkd(未使用)

リポには存在しない。ソースから簡単にコンパイルできる。次のページの上部のソースダウンロードリンクから取得する。

http://kr.github.io/beanstalkd/download.html

取得したtar.gzファイルを解凍し、出来上がったディレクトリーへ移動する。makeは標準的な生成手順で行う。

make
sudo make install

サービスの登録

ルートユーザーになり、systemdへサービスとして登録する。先ず、lock walディレクトリーを作成する。ただし、起動が不安手になることもあるので、最新情報を調べたほうが良いかも知れない。

mkdir /var/lib/beanstalkd

続いて、/etc/systemd/system/beanstalk.serviceを以下の通りに作成する。

[Unit]
Description=Beanstalkd work queue

[Service]
ExecStart=/usr/local/bin/beanstalkd -l 127.0.0.1 -p 11300 -b /var/lib/beanstalkd
Restart=always

[Install]
WantedBy=multi-user.target

これでシステムレベルのサービスとして登録したので、Yastの「サービスマネージャー」(ランレベルごとのものと2つあるが、ただの「サービスマネージャー」)で"runlevel3"を選択すると、"beanstalkd"アイテム表示される。"active"、"Enable"に設定する。

起動や再起動は"service"か"systemctl"コマンド(ルートユーザーで実行)からも行える。

Ansible

リポジトリーからAnsibleをインストールする。もし、古すぎて動かないようなら、pipでインストール。

sudo pip install ansible

インストールエラーになる場合、その単体パッケージ(多分pycryptoが作成できないエラーになるので、これだけ)zypperでインストールするとインストールできる。

ダメなら以下の方法で、自分で最新版を取ってくることも可能。

sudo zypper install python-devel # Python.hを含んでいるパッケージ
sudo pip install paramiko PyYAML Jinja2 httplib2
git clone git://github.com/ansible/ansible.git --recursive
cd ./ansible
git pull --rebase
git submodule update --init --recursive
sudo make install

Vagrantのboxに対してAnsibleを使用する場合、sshpassが必要。

peco(インストールのたびにアップデート)

セレクタ−ツールのpecoをインストール。https://github.com/peco/peco/releases から最新のバイナリーをダウンロードし、解凍、中に存在するpecoを実行パスの通っているディレクトリーへ保存する。

現在の環境ではホームのbinディレクトリーに入れてあるため、/homeを使い回せばすぐ使えるが、バージョンアップのため、openSUSEのバージョンアップのたびに入れ替える。

Composer(未設定)

自分のbinファイルにインストールしてあれば、毎回入れなおす必要なし。(PHPのモジュールはきちんと揃える必要あり。)composer self-updateで自己メンテナンスできる。

新規インストールの場合:

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

GitHubとPackagistのキャッシュプロキシとなる、Toran Proxyをインストールする。フェッチコマンドのcron間隔は10分。(1分だとフェッチ中のプロキシ停止が頻繁に起きすぎる)

Nginx(Vagrant/Docker使用のため未設定)

openSUSEリポのバージョンは古いため、NginxがSLES向けに提供しているNginxバージョンを選択する。とくに、location解決のログが取れないため、複雑な設定ファイルをデバッグする際に苦労する。新しいバージョンは詳細なログが取れる。

リポジトリの追加は、http://nginx.org/en/linux_packages.htmlに記載されている手順に従う。

インストールパッケージのバージョン選択は、nginxをインストール後、パッケージ管理で"nginx"を選択し、下のバージョンタグから選択可能。マイナーバージョンの一番大きな最新パッケージをインストールする。

スクレイピングツール

html-xml-utilsをパッケージ検索からインストールする。

https://software.opensuse.org/package/html-xml-utils?search_term=html-xml-utils

utilityリポジトリに最新版が用意されている。

温度モニタ

sudo zypper in sensors
sudo sensors-detect

表示される内容を読みながら、yes/noを指定する。デフォルトのまま設定すると、CPUのコア温度が読めないこともある。

設定が終われば、sensorsコマンドでグラフィックカードやCPUの温度が読めるようになる。KDEのウィジェットも動作するようになる。

動画など

zypper in obs-studio kdenlive

golang

リポジトリのバージョンは古いため、gvmを使用してインストールする。

bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

go1.5からgo自身で言語をコンパイルするが、そのためにはgo1.4が必要になるため、最初はgo1.4をインストールする。(ただし、インストールを-Bオプションでバイナリを取得する場合にはいらないかもしれない。)

gvm install go1.4 -B
gvm use go1.4
export GOROOT_BOOTSTRAP=$GOROOT

gvm listはインストール済みバージョンの表示、gvm listallは利用可能なバージョンの表示。最新バージョンを確認し、インストールする。

# ソースを読み込み、コンパイルする場合
gvm install バージョン名

# バイナリを取得する場合
gvm install バージョン名 -B

インストールしたらgoで使用するバージョンを指定する。

# そのターミナルセッションの間のみ使用する場合
gvm use バージョン名

# 以降、ターミナルを起動するごとに使用する場合
gvm use バージョン名 --default

jump

ディレクトリ移動ショートカットコマンド。

go get github.com/gsamokovarov/jump

インストール済みディレクトリへ移動し、go installでコンパイル済みのjump実行コマンドが使えるようになる。

.bashrc.bash_profileへ、eval "$(jump shell)"を追加すると、短縮エイリアスjが使えるようになる。j workなどで、過去に移動したworkディレクトリへ移動。タブによる補完も効く。

exaインストール

lsのカラフルGitサポート版。デフォルトリポにあるので、zypper in exaでインストール。

エイリアスは以下で定義。

alias lll='exa -lhg --git --accessed --modified --created'
alias laa='exa -lhga --git --accessed --modified --created'

<<<ずっと続く>>>