openSUSE13.1インストールメモ

タグ: OpenSUSE  

openSUSE13.1のインストールメモです。本当にメモです。あまりお役には経ちません。

事前バックアップ

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

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

メディア

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

インストールDVDは大きいですので、ダウンロードと焼きこむために時間はかかります。複数台数インストールするなら、DVD一択ですが、一台だけにインストールするなら、ネットインストール版を使えば多少時間が早くて済むかもしれません。

今回はDVDでインストールしようとし、エラーが続発し、DVDを調べたら傷が多く、チェックで引っかかっため、ネットインストール版で行なっています。

ネットインストール版もGUIはDVD版と、ほとんどUIと手順は変わりません。インストールがDVDメインか、ネットメインかの違いです。openSUSEの場合、テキストモードでもYastが頑張ってくれるので、さほどインストールは面倒ではありません。

通常32bit版のほうが「枯れて」いて、安定しているものですが、最近は開発の環境も64bitが主流になっているせいか、64bit版のほうが安定したりします。64bit版のほうが容量を取りますが、速度は早いです。例えば、私の環境ではSSDからのブートで、grub起動後は、32bit版ですと20秒、64bit版なら15秒です。

インストール時

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

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

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

  1. DVDは正しく焼けているか確認しましょう。DVD自身でチェックできます。ブート時のオプションです。
  2. 再起動せず、一旦終了し、それから試してみましょう。
  3. デフォルトの英語のままで、インストールしてみましょう。
  4. テキストモードでインストールするとインストールできることがあります。

インストール後

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

私的設定

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

インストール時のパーティション設定

SSDディスクシステムについては、最新情報を検索し選択する。今のところ、安定性でext4が有利。

SSDドライブのパーティションに、discard,noatime,nodiratimeを追加する。

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%。

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

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

Firefoxでディスクにキャッシュさせない

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

browser.cache.disk.enable = false
browser.cache.memory.enable = true (デフォルト)
browser.cache.memory.capacity = -1 (デフォルト、自動調整)
Virtual Boxディレクトリーの移動

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

設定ファイルの書き戻し(ホームディレクトリー)

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

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

keepassx

パッケージ検索より、keepassxをインストール。リリース直後は、個人がメイクしたバージョンしかないだろうから、それをインストールする。しばらくするとsecurtyリポに登場する。頻繁にアップデートされるものではないため、リポの使用は一回だけにする。

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

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

KDEシステム設定

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

ホームの復帰

バックアップから、可視ファイルのみ書き戻す。ドットファイルを戻すとバージョンの違いによる、追跡不可能な挙動が起きやすく、起きると修正が大変。設定ファイルは必要に応じ、一つ一つ戻す。

ファイラー(Dolphin)の設定

  • ワンクリックオープン
  • 「削除」をコンテキストメニューから使えるようにする。

KDEツールバー(下部)

  • アクティビティー選択削除
  • 仮想ディクストップを一段3つへ変更
  • ウィジット追加より、システム負荷ビューアーを追加

デスクトップ

コンテキストメニューのフォルダーの設定より以下を変更

  • 壁紙を「エモーション」へ変更
  • アイコンサイズを小さくする

YaST

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

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

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

  • KATE:テキストエディターをインストール
  • git:バージョンコントロール
  • dropbox:Dropboxツール
  • PHPで検索し、必要な拡張パッケージをインストール(パッケージ検索から、php5-xdebugも入れておく。通常はserver:php:extentionsに用意されている。このバージョンが起動しなければ、本家から取得。)
  • apache2で検索し、必要そうなパッケージをインストール(今回はなし、後ほどYaSTから有効にする)

Dropboxの設定

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

KATEの設定

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

バックアップから、.kde4/share/config/katesyntaxhighlightingrcを復活させる。

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

Solarized

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

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

設定ファイルを戻さない場合、vimもsolarizedする。

再起動

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

Apacheの設定

Apacheを起動する前に、/etc/apache2/ui.phpで起動ユーザー/グループを変更しておく。一度起動してしまうと、セッション情報が/var/libのapache2とかphp5ディレクトリーにwwwuserで作成されてしまうので、所有者を変更する必要が起きる。

YaSTからGUIで設定。HTTPサーバーを選択する。初回起動時は、全部のオプションを見直すようにウィザードが走る。デフォルトのまま設定を進め、最後のページ(5/5)で、起動時にapacheも起動するように設定する。

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

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

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

さらに、今回の13.1からApacheのバージョンが上がったため、ドキュメントディレクトリーのオプションに"require all granted"が必要、Yastが(テンプレートファイルの内容から)自動生成する"Order...Allow..."の設定は必要ない。(テンプレートを書き換えてしまうのが一番簡単。)

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

開発マシン向き設定として、Apacheの動作ユーザー/グループを自分のものに変更する。/etc/apache2/uid.confで変更する。変更後は、ルートユーザーになり、service apache2 restartで再起動する。

APC

開発機に高速化はあまり必要ないが、どの程度早くなるのかを調査する場合に使用。ただし、通常こうした実験は実機で行わないと意味がない。(実機では調整が必要)

インストールはパッケージ検索からAPCで見つかる。それをインストール。インストール時、すぐに動作するようになっているため、特別な手間は必要なし。

APCの状態を見るためにはapcフォルダーをホームに作成、仮想ホストを割り付ける。そのフォルダーに移動し、"ln -s /usr/share/doc/packages/php5-APC/apc.php ."で、apc.phpを作成、.htaccessを作成しシンボリックリンクを許可しておく。更にapc.conf.phpを作成し以下の内容をセット、その後アクセスすれば、状態がWebページとして見られる。

<?php
   defaults('ADMIN_USERNAME','ユーザー名');  
   defaults('ADMIN_PASSWORD','パスワード');  

PHP5.5移行が普及すれば必要なくなる。

PHPMyAdmin

phpmyadminパッケージをインストール。Yastからphpmyadminという新しいホスト名を登録し、仮想ホストも登録。ドキュメントルートを/srv/www/htdocs/phpMyAdminに設定する。

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

mysqladmin -u root -h localhost password ”rootに対するパスワード”

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

Firefox

バックアップから.mozilaをまるごと上書き。すべて復活。

日本語入力

13.1から、Ibusが入力担当してくれており、Ibus自身をオンオフできなくなっている。そのため、Mozcのキーバインドで、英数と日本語入力を変更するように設定する。

Node.js

リポのNodeは古いため、npm経由のインストールでエラーが出る。そのため、最新版をインストールする。

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

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

git clone https://github.com/creationix/nvm.git ~/.nvm
source ~/.nvm/nvm.sh
nvm remote-ls
nvm install 最新バージョン

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

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

Sass & Compass & Gumby css framework

rubyもgemも、はじめから入っているから、gemでインストールする。コンパイルされるgemのためにdevelパッケージを用意しておく

sudo zypper install ruby20-devel ruby-common
sudo gem install sass
sudo gem install compass

Gumbyの問題は、依存モジュールの新しいバージョンだと、エラーが発生すること。そのため、エラーを起こすモジュールが同梱されている。それをそのまま使用したほうが安全。もし将来のバージョンで、動作するようになったら、必要なモジュールは最新版をインストールする。

sudo gem install modular-scale sassy-math

その後、プロジェクトのCompassのディレクトリーのconfig.rbのコメントに書かれている通り、2行コメントにし、2行のコメントを外せば完了。

ちなみにgemで入れたコマンドはバージョンを表す数字が後ろにつく。(たぶんグローバルで入れているため。)(例:compass2.0)

Gumbyプロジェクトのセットアップコマンド、claymateはnode.jsのパッケージ管理であるnpmからインストールする。

sudo npm install -g claymate

これで空のディレクトリーを作成し、その中でclaymate installをインストールするとデフォルトの構造が作成される。必要な本体は、app/bower_components/gumbyディレクトリーのため、これを必要な場所へ移動する。

後は、config.rbをディレクトリー構造に合わせ設定し、上記手順で入れたプラグインを有効にする。再度確認するが、新しいバージョンでエラーが発生する場合、元に戻し、同梱されているプラグインを使用する。

# Require any additional compass plugins here.

# Tell compass where to find local extensions
# If you followed directions and ran 'gem install modular-scale' comment the next two lines out:
# 上記指示通りに、以下の2行をコメントにする。
#      extensions_dir = "sass/extensions"
#      Compass::Frameworks.register('modular-scale', :path => File.expand_path("#{extensions_dir}/modular-scale"))
# 指示通りに、以下の2行のコメントを外す。
# Uncomment these to use regular Ruby gems.
require 'modular-scale'
require 'sassy-math'

# Set this to the root of your project when deployed:
# ディレクトリーを構造に合わせる
http_path = "../public"
css_dir = "../public/css"
sass_dir = "sass"
images_dir = "../public/img"
# 以下は変更なし

後はcompass watchでファイルの変更を監視し、自動的に変換される。

inotify

ファイル変更通知ツールのinotify-toolをインストール。

続いて、Laravelプロジェクトのapp/storageに対して、ルートでファイル監視を行うために、/etc/rc.d/boot.localファイルに追加する。

/home/hiro/bin/watch-storage /home/hiro/laravel-project/app/storage >& /dev/null &

Amarok

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

グラフィックイコライザーがすごい。:D 横に広げた分だけ細かくなる。いつもだとmp3用のパッケージがどうのこうのと言われるが、取り込まれているようだ。しかし、Packmanリポの再生パッケージと取り替えないと音質が良くない。(インストールした頃は良かったが、アップデートで音質低下。やはり、音質に関しては、packmanのリポのほうが優秀。)

すごいわ。このグラフィックイコライザー。イコライザー部分が10バンド、表示部分は100以上あるから、もしかしたら128かな?:D

でも最低の50バンドくらいに縮めたほうが、楽曲の傾向は読み取りやすい。

一部のフォーマットが読めないため、http://opensuse-community.org/Restricted_formatsからバージョンに合った拡張パッケージをインストール。インストール中にパッケージの衝突が発生するが、packmanのリポのものを取得するようにする。オリジナルリポは大抵調整不足で、音質が悪いので、上記からワンクリックで入るリポバージョンコーディックを入れるのは、基本。

Java

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

今回はrpmファイルをダウンロードし、クリックであとはおまかせ。

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

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

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

バックアップから、.nbiと.netbeansをリカバー。

sh ./netbeans--7.4-php-linux.sh 

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

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

VirtualBox

今回はパッケージvirtualboxを指定し、依存で入るパッケージをそのまま導入する。さらに、virtualbox-websrvvirtualbox-qtも同時にインストール。

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

Vagrant

公式サイトから、最新版をダウンロード。ダブルクリックでインストールされる。(前のバージョンでは動かなかったが、今バージョンはrpmファイルもダブルクリックでうまくインストールできるようだ。)

検索ツール

the silver searcher(高速検索:ag)とagrep(あいまい検索)をインストール。agrepはパッケージに存在している。agはパッケージ検索からインストール。utilityリポに存在する。

AWSコマンドラインツール

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

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、pavucontrol(PulseAudio音量調整)をインストールする。

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

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

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

sollar

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

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
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を導入する。

Vagrantのboxに対してAnsibleを使用する場合、sshpassが必要だが、公式リポにはない。Networkのリポに存在する。

ずっと続く