ラベル Linux の投稿を表示しています。 すべての投稿を表示
ラベル Linux の投稿を表示しています。 すべての投稿を表示

2014/08/28

HP ProLiant ML310e Gen8 v2にUbuntu Server 14.04LTS

職場のオフィス内サーバーをそろそろリプレースしないとな、というのでHP ProLiant ML310e Gen8 v2を購入してもらって、Ubuntu Server 14.04LTSをセットアップしたりしています。

いくつか気づいた点などあったので、ブログに書いてみようと。

トルクスドライバーが付いてない

HPのサーバー(MicroServerなども)では、HDDの固定にネジ穴が星形のネジが使われています。以前はL字型のトルクスドライバーがサーバーに付いてたのですが、ML310e Gen8 v2からは付いてないそうです。

HPのサポートページに「注意:一部の ProLiant Gen8 サーバー - HP ProLiant Gen8 サーバーからの T-10/T-15 トルクスドライバー工具の除去」と説明されています。

結局、トルクスドライバーを購入しました。

HDDの取り付けはT-10というサイズのトルクスネジでした。トルクスネジはネジ穴中央に突起があるパターンもありますが、サーバに使われているのは突起無しでした。

RAIDコントローラー

HP Dynamic Smartアレイ B120i コントローラーというのが搭載されています。結局は、IntelのチップセットのRAID対応機能をベースにしたものらしいのですが、BIOSの初期設定では、Ubuntuは起動できないようです。

サポートページをあさったところ、RHELやSuSEでは、ドライバが提供されるようなのですが、Ubuntuなどではサポートされないようです。というので、BIOSでB120iコントローラーの動作モードを非RAIDなAHCIモードに設定すると、Ubuntuも動くようになりました。

2014/02/09

GNU Screenの日本語表示ズレ

ブログが放置状態なので、何か書こうかなというので、GNU Screenの日本語表示ズレについてです。

Putty + Screen + Vimで日本語を表示していると、表示がずれることがあります。
具体的には以下のような文字が含まれる行を編集したりコピーペーストしたりした場合です。
×÷○□※
調べてみると、どうもScreenに問題があるようです。

ちなみに各ソフトウェアのバージョン・設定等を抜粋するとこんな感じです。
  • Putty
    • バージョン: 0.63-jp20130916
    • リモートの文字セット: UTF-8(CJK)
    • CJK用の文字幅を使用する: Off
    • 端末タイプを表す文字列: xterm-256color
  • リモートPC
    • CentOS 6.5 (x86_64)
    • $LANG: ja_JP.UTF-8
  • GNU Screen
    • yumでインストールした screen.x86_64 0:4.0.3-16.el6
    • screen -Uで起動
  • Vim
    • yumでインストールしたvim-enhanced-7.2.411-1.8.el6.x86_64
    • ~/.vimrcでset ambiwidth=double
特にPuttyのUTF-8(CJK)というのと、Vimのambiwidth=doubleはこう設定していないと、上記以外の文字("~"など)でも表示に影響が出るようです。

それでもズレるというので、これまでは表示がずれたらCtrl-lで再描画させて凌いでいたのですが、ふと気になって調べて対策してみました。

ズレですが、FreeBSDでは起こらなくて、CentOSでは起こるというのの気がつき、FreeBSD Portsに含まれているopt-cjkwidthというパッチが効きそうというのが分かりました。
それで、手動でパッチをあててビルドしたら解決かと思いきや、CentOS上でScreenがconfigure & makeではビルドできず、手間がかかりました。

さらに調べてみると、yumでインストールされるパッケージは、素のscreen-4.0.3にいくつかパッチが適用されてビルドされているようです。ということで、最終的には以下の手順でビルド・インストールしました。
  1. ScreenのSRPMパッケージをダウンロード、インストール
  2. opt-cjkwidthパッチをコピー
  3. SPECファイルを変更
  4. RPMパッケージを作成
  5. 前から入っているScreenをアンインストール
  6. 生成したRPMパッケージから修正版Screenをインストール
詳細な手順は以下のようになりました。

ScreenのSRPMパッケージをダウンロード、インストール

手っ取り早くwgetでダウンロードし、rpmコマンドでインストールします。
wget 'http://vault.centos.org/6.5/os/Source/SPackages/screen-4.0.3-16.el6.src.rpm'
rpm -ivh screen-4.0.3-16.el6.src.rpm
一般ユーザ権限で実行して、~/rpmbuild/にファイルが展開されます。

opt-cjkwidthパッチをコピー

FreeBSDの/usr/ports/sysutils/screen/files/opt-cjkwidthを~/rpmbuild/SOURCES/にコピーします。
手元にFreeBSD PCが無くても、Web上からopt-cjkwidthパッチは取ってこれると思います。

SPECファイルを変更

~/rpmbuild/SPECS/screen.specを編集します。
opt-cjkwidthパッチを適用するように他のパッチを真似て以下2行を追加します。
Patch15: opt-cjkwidth
...
%patch15 -p0 -b .cjkwidth
他のパッチはほとんどが-p1となっていますが、opt-cjkwidthは-p0にします。

RPMパッケージを作成

rpmbuildコマンドでビルドを行いRPMパッケージを作成します。
rpmbuild -bb ~/rpmbuild/SPECS/screen.spec
必要なパッケージが足りない場合はエラーメッセージが出ますので、パッケージをインストール後に再度rpmbuildコマンドを実行します。私の場合は以下のように不足パッケージをインストールしました。
sudo yum install ncurses-devel pam-devel libutempter-devel texinfo
ビルドできると~/rpmbuild/RPMS/x86_64/screen-4.0.3-16.el6.x86_64.rpmができています。

前から入っているScreenをアンインストール

yumでインストールしたScreenをアンインストールします。この作業が必要なのかよく分かっていませんが念のため。
sudo yum remove screen

生成したRPMパッケージから修正版Screenをインストール

以下のようにrpmコマンドで作成したRPMパッケージからScreenをインストールします。
sudo rpm -ivh ~/rpmbuild/RPMS/x86_64screen-4.0.3-16.el6.x86_64.rpmd