CentOS7へのMozc(日本語環境)の導入

CentOS7における日本語環境ですが、個人的にはお世辞にも頭がいいとは思えない…というのが正直な感想であると思う、今日このごろです。
日本語環境で作業するんですから、日本語入力でストレスを感じる*1ようでは精神衛生上よろしくありませんので、使い勝手がいい*2日本語環境であるMozcへの移行方法を試みました。
ここでは、クロの思考ノートCentOS 7.0にibus-mozcをインストールするの内容を参考に、現在のリリース内容とその注意事項について記載します。


Fedora19とCentOS7で違うもの

基本的に、RPMFind.netからFedora19用のパッケージ群をダウンロードしてきますが、ダウンロードするときの注意点が1つ。
検索して出力される結果のすべてが指定したCPUアーキテクチャに則っているとは限りません。というのも、CentOS7(とベースとなっているRHEL7)はx86_64ベース限定ですが、Fedora19の時点ではまだi686も用意されていたからです*3
今回対象となるパッケージのうち、次の2つでi686用のものをx86_64仕様パッケージとして案内してきました(上図参照)。

  • zinnia-0.06-16
  • protobuf-2.5.0-4

これは、CPUアーキテクチャをしっかり指定すると、この問題を回避できることを確認できるようですが。URL内のCPUアーキテクチャを書き換えれば正しい物になりますので、「リンクのURLをコピー」を行って別のタブなどで編集*4すれば、所望のパッケージが手に入ります。


[参考]パッケージ一覧
参考記事の公開以降にパッケージ群(とその依存関係)が更新されたらしく、作業対象のパッケージが増えていました。
今回、最終的に更新・インストールしたパッケージ群は、以下のとおりです(バージョン・リリース番号は記事作成時点、[]内はリポジトリ名)。

  • [Fedora19] protobuf-2.5.0-4.fc19.x86_64
  • [Fedora19] zinnia-0.06-16.fc19.x86_64
  • [Fedora19] zinnia-tomoe-0.06-16.fc19.x86_64
  • [Fedora19] mozc-1.15.1814.102-1.fc19.x86_64
  • [nux-dextop] python3-libs-3.3.2-12.el7.nux.x86_64
  • [nux-dextop] python3-3.3.2-12.el7.nux.x86_64
  • [Fedora19] python3-cairo-1.10.0-5.fc19.x86_64
  • [Fedora19] python3-gobject-3.8.3-1.fc19.x86_64
  • [Fedora19] ibus-libs-1.5.7-6.fc19.x86_64
  • [Fedora19] ibus-gtk3-1.5.7-6.fc19.x86_64
  • [Fedora19] ibus-gtk2-1.5.7-6.fc19.x86_64
  • [Fedora19] ibus-1.5.7-6.fc19.x86_64
  • [Fedora19] ibus-setup-1.5.7-6.fc19.noarch
  • [Fedora19] ibus-mozc-1.15.1814.102-1.fc19.x86_64

※[nux-dextop]となっているものは、当方環境で依存性の解決を行うときに自動選択されたものです。

これらを、yumまたはrpmにて粛々とインストールすればOKです。


インストール後の手順(簡易版)

  1. これらのインストールがすべて完了したらXを一旦ログアウトして、再度ログインを行います。
  2. アプリケーションメニューから、[システムツール]→[設定]を選択します。
  3. 設定ウィンドウが表示されるので、[地域と言語]を選択し、[入力ソース]欄に表示される「日本語(Mozc)」を選択すればOKです。


おまけみたいな何か
後からいうのも何ですが、予めFedora19の@baseと@Updateのリポジトリ設定を/etc/yum.repos.d配下に置いといて、リポジトリ指定したyumコマンドで一気にインストール…というのが手取り早いかもしれません*5

*1:記号や半角英字の入力が日本語オンのままだとかなり不自由です。

*2:「…と個人的に思っている」の意

*3:CentOS7にも一応i686のパッケージはあります。インストーラx86_64のみなだけです。

*4:"i686"→"x86_64"への書換え

*5:できるかどうかは未確認です

RHEL7/CentOS7向けOTRS4パッケージを作成してみる

先日の記事でやった内容を本家に提案する前に、やった範囲の動作確認をするついでにRPM化を試みてみる。
他人様が作られたRPMはよく使っているけど、独自にそれを作るのは「初」である。

幸いにして、今回の環境であるRHEL7/CentOS7向けのRPM用specファイルの用意があるので、そちらを利用させていただいた…のだが、一筋縄では行かなかった。
例えば、こんなところに古〜いパラメータがあったり。

[修正前]Copyright:    GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007

[修正後]License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007

この書式の問題は、@ITの2007年末の記事の内容を参考に修正しました。
もしかして、この時分から使われないまま寝かされている年代ものなのか?と思わせつつも、2012年にはいじられた形跡*1がある、少々あやしい代物。まぁ、現行のRPM作成には使ってなさそうな雰囲気がアリアリと伝わってきます。

パッケージの中身は、公式のRPMだとTarボールの中身をそのままインストール先にぶちまける仕様になっているので、大抵の場合使わないであろうファイル群(他ディストリ向けのspecファイル、設定ファイルなど)を取り入れない設定を適用してダイエットを計りました*2
また、インストール直後に関連ファイルの権限調整用スクリプトを実行させるように定義を追加*3して、初期状態のまま使う場合のひと手間を省いてます。

ともあれ、準備が整ったところでRPMの作成にうつります*4

# tar cjf otrs-4.0.5.tar.bz2 otrs-4.0.5/
# rpmbuild -bb otrs-4.0.5/scripts/rhel7-otrs-systemd.spec
:
(省略)
:
Exit 0
# ls /root/rpmbuild/RPMS/noarch/otrs-4.0.5-02.noarch.rpm
/root/rpmbuild/RPMS/noarch/otrs-4.0.5-02.noarch.rpm
#
無事作成されましたので、早速「潰し」の効く*5仮想環境でインストールと簡易動作確認を実施しました。
尚、このパッケージの導入時に行われるOTRS用ユーザ(とそのホームディレクトリ)の作成がSELinux的に「越権行為」と見做されるらしく、一時的にSELinuxの設定を(少なくともWebインストーラの実行までは)緩和してやる必要があります。
面倒な場合は思い切ってSELinuxを無効化してしまう向きもあるようですが、実際に動かしてみて「(関連ユーザに)どの程度の権限が必要になるか」等の洗いだしが必要になってくると思うので、"Permissive"を選択しておくのが懸命かと考えます。
# getenforce
Enforcing
# setenforce Permissive
# getenforce
Permissive
# yum install /root/rpmbuild/RPMS/noarch/otrs-4.0.5-02.noarch.rpm
読み込んだプラグイン:fastestmirror, langpacks
./otrs-4.0.5-02.noarch.rpm を調べています: otrs-4.0.5-02.noarch
./otrs-4.0.5-02.noarch.rpm をインストール済みとして設定しています
依存性の解決をしています
:
(省略)
:
Setting permissions on /opt/otrs

インストール:
otrs.noarch 0:4.0.5-02
完了しました!
#

あとは、Systemd経由でOTRSスケジューラを起動してWebインストーラを実行してやれば、基本的な導入作業は完了です。

*1:Copyrightなので一括置換だろうけど…

*2:対象が全てテキストベースのファイルなので、減量範囲もタカが知れてますが…

*3:元のファイルだと作成時に行うとしてるけど…(以下略)

*4:他にもいくつか弄ってますが、細かいので割愛(ぉぃ)

*5:明らかに誤用です

Systemd(RHEL7)でOTRS4を稼動させるためのTIPS

仕事で使った経緯もあり、その後の更新情報を追っているOTRS*1。運用管理などの方面に明るい方はご存知かとは思いますが、ITILに準拠したヘルプデスク運用支援システムです。2014年11月にバージョン4.0系列がリリースされ*2、これまでの3.3系列よりも機能が拡充されているようです。
RHEL7系用にパッケージ提供されるOTRSは、この4.0系列のみとなっています。ただ、ソース*3SRPMはあるので、そちらで旧バージョンを利用することは可能と思われます(が、当方は未確認です。あしからず…)。

ただ、ここに挙げたRHEL7とOTRS4の組み合わせですが、まだまだ本格運用に乗せる人が少ないのか、非常に情報が少ないです。しかも、そのままでは簡単に動作させることすら許してくれません…と言うか、RPMパッケージ内に標準で用意されるinitスクリプトで起動できません(汗)*4
修正すべき箇所も把握していますので、本来なら問題のinitスクリプトを適切な形に直してやれば動くようになるのでしょうが、せっかく最新のRHEL7系列で動かすのであれば、systemdで動く形にしてやりたいと思います*5

このスクリプトでやろうとしていることは、主に以下の4つ。「サービスの起動に必要なの?」というものも含まれてますが…。今までのinitスクリプトが如何に柔軟*6な対応を許していたかがよくわかる格好の事例でしょう。

  • Webサーバの稼動状態確認
  • DBの接続確認
  • 未送信メールの掃出し
  • cronジョブの登録・削除

initスクリプトをsystemdに移行するに当たって重要なのは、起動・終了時にホントに必要な処理の取捨選択だと思います(個人の感想です)。実際のところ、OTRSの起動にホントに必要なのは、「cronジョブの登録・削除」だけです*7。各種サーバは外部に切り離し可能ですから、必要に応じて依存関係を記載することで対応したいと思います。

で、「cronジョブの登録・削除」は、その処理自体が一瞬で終わってしまいます。プロセスの残存もありませんので、一般的なデーモンよろしく"Type=Simple"にしてしまうと、瞬間的に起動して終了してしまう「謎のプロセス」になります。この場合は「起動時の処理は終わったけど、稼働中」を示す"Type=OneShot"とすることで、明示的に停止宣言するまではsystemd内部で「稼働中」として取り扱われます。

で、RHEL7でDBサーバにMariaDB(旧称・MySQL*8 )、WebサーバにApacheを利用する場合、systemdの設定ファイルはこうなります。


[Unit]
Description=OTRS: Open-source Ticket Request System, Copyright (C) 2001-2012 OTRS AG
Documentation=https://otrs.github.io/doc/manual/admin/stable/en/html/
Requires=crond.service httpd.service mariadb.service
After=crond.service httpd.service mariadb.service

[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/sysconfig/otrs
ExecStart=/opt/otrs/bin/Cron.sh start otrs
ExecStop=/opt/otrs/bin/Cron.sh stop otrs

[Install]
WantedBy=multi-user.target

このファイル(仮に"otrs.service"とします)を、/usr/lib/systemd/system配下に置いてから、次のコマンドを実行してやることで、めでたく(ここで作成した)OTRSがsystemd向けのサービスとして認識されるようになります。

systemctl daemon-reload

あとは、他のサービスと同様に、起動・停止(start/stop)や自動起動の登録とその解除(enable/disable)などは自由自在(のはず)。

「そもそも、インストールに失敗するんだけど」というあなた、逐一エラーメッセージを見て対応すれば(一応は)解決しますので、がんばってください(えっ?)。

*1:Open source Ticket Request Systemの略

*2:Version 4.0.1が2014/11/25にリリース

*3:といってもtarボールです

*4:記述時点最新リリースの4.0.4現在も改善はしてないです

*5:問題ノ先送リ、ヨクナイ

*6:「身勝手」とも言う

*7:これすらも無効化可能ですが、そうすると実体がなくなります

*8:「旧称」だと、語弊があるかな?

sysctldな環境下でのvncserver設定

2014/07/09にCentOS7.0.1406がリリースされました。
システム操作用コマンド周りで従来使っていたコマンド群が一気にオワコン扱いにされる*1など、あまりの変化の大きさに阿鼻叫喚…って人も多いことでしょう。

そのような仕様変更故に、いきなり本番環境に入れることを躊躇う人も多いはず……で、使えるのが仮想環境。自分の場合、デスクトップPCではUSBの外部機器などをお手軽に繋ぎ替えができるOracle VM VirtualBoxを利用しています。グラフィック機能やマウスキャプチャなどの制約を解除して便利に利用するには、拡張パックをインストールしてやる必要があるのですが。

CentOS7.0.1406のリリース当初、自分もこのOracle VM VirtualBox上に仮想マシンを拵えたのですが、ライブラリの変更などの都合もあり、この時点では拡張パックを利用できませんでした*2
このままでは、(グラフィック拡張はいいとして…)マウス操作を行う度にポインタがキャプチャされて何かと面倒くさいのです。

そこで善後策と云わんばかりに考えたのが、VNCServer(ここではtigerVNCを利用)。よくある設定を…と、よくよく考えてみたら、ここもserviceからsystemctlに変わってます。
従来からの設定方法をやっても、移行期間扱いでまだまだ猶予をもらえているのだが、それでは進歩しないのでsystemctl用の設定を行ってみました。

【編集するファイル】

  • /usr/lib/systemd/system/vncserver@:n.service
    nは任意の数字、同ディレクトリ内にあるvncserver@.serviceより複製・改称して利用します。

【編集内容】
※前半のコメント部は省略


[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l hoge -c "/usr/bin/vncserver %i -geometry XXXxYYY"
PIDFile=/home/hoge/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

ここでは、赤文字部分を修正・追記しています。
接続ユーザ名への修正は必須ですが、当方が追記している解像度設定部分*3の編集は任意ですので、必要に応じて実施して下さい。

【設定の反映】
編集が完了したら、対象サービスの有効化と設定の反映を実施します。


# systemctl daemon-reload
# systemctl enable vncserver@\:n.service
# systemctl start vncserver@\:n.service

現時点ではOracle VM VirtualBoxの更新版がリリースされ、マウスが捕獲される問題は解消済みですので、ほぼこの記事自体の役目も終わっているようなものですが、あくまで参考として残すものとします。

*1:もちろん別途インストールすれば使えますが…

*2:2014/07/17時点でリリースされているバージョンではこの問題は解消されています

*3:"-geometry XXXxYYY"の部分です

Model Works 20110717

元々「小さい」ことについて、代名詞的な意味を含んでいるNゲージ
でも、今回紹介する内容では特にその小ささに対する自信があります*1

今回製作したのは、昔の車両のオデコに乗っかっているヘッドライト。
カメラが悪いのか、自分の写真の腕が悪いせいかは判りませんが*2、うまくピントが合ってない写真ですいません。

で、こちらが点灯してない状態での撮影。並べて写る定規で、その大きさが分かるかも。


元々が反射しやすい素材な上に、焦点も合いにくいため、止まっているにも拘らずブレてしまっている。ダメですねぇ。

取り敢えず、今回は複数パーツで構成されているので、成分表示(?)みたいなものを書いてみます。

  • 本体部分
    • 材質
      • 基板……片面紙フェノールエッチング用生基板(t=1.6mm⇒0.6mmへ薄板化、最薄部はt=0.2mm)
      • 本体……真鍮板(t=2.0mm)からの削り出し*3
      • レンズ…アクリル(t=1.0mm)からの削り出し、Φ2.5、Φ2.4の2段構成
      • 発光部…電球色チップLED(1608)
    • 寸法
      • 直径:2.8mm
      • 厚さ:2.2mm
  • リード線
    • 材質
      • Φ0.2mm UEW
    • 延長
      • 約30mm


実は、寸法は直径・厚さ共に少々オーバースケール*4だったりします。
しかも、この構成では抵抗器orCRDがないので、別途調達する必要があったり。実装にはまだまだ課題がいっぱいと云うのが現状です。

というわけで、現時点では仮組み〜点灯試験を行っただけで、模型そのものへの組み込みを行っていません。取り付け用ステーも未作成だし、取り付けられる状態に達しているターゲットもまだ無いし(汗)。

ただ、こんなパーツを作るような物好きは少ないと思うので、ヤフオク辺りに人柱モニターを求めて出品してみるのも一興かもしれない。

*1:……どんな自信だ

*2:間違いなく後者です(汗)

*3:本当はパイプから作りたいけど、加工が難しそうなので断念

*4:比較対象は、鉄コレのダミーや銀河モデルのパーツなど

Model Works 20110627

今回も鉄道関連のネタです。

というのも、先日非常に興味深い「国家機密級(といっても70年前の*1 )」の資料を入手することに成功しました*2

この資料を元に、やっつけのCADデータを起し、さっそく試作品を作ってみたのがこれ。

ただただ見る限りは、上辺が弧を描いているガーター橋?と見えると思う。
でも、「ぱっと見」でもこんな疑問が沸くはず。

  • なぜ斜めに置いてるの?
  • 周りに置いてある細かいものは?

etc.

勿論、置き方を間違ったり、部品構成が間違っている訳では有りません。
あくまで試作段階だし、部品そのものも2/3が(設計レベルで)未作成なので、全容は見えてこないと思われます*3

で、設計ミスがないかどうかを確認するため*4に、組んでみました。これで、ヒントになるかな?

因みに、資料そのものやその提供元は明かすことが出来ません*5

まだまだ形になっていませんが、コレは「単線上路3ヒンジソリッドリブアーチ」のつもりです。気になった人はググって見てください。
実際、橋台と上に載る櫓、メインの井桁状のデッキガーダーが出来ていません。完成するのはいつになることやら。
まだ現物を見ていないことだし(汗)、近く日光市に取材にいきたい次第です。
# で、荒沢って、河岸に降りられるの?

*1:鉄道省時代は資産や施設全般の資料がそれに該当するはずです

*2:はっきり言って、関係者のご厚意に甘えただけです

*3:少なくとも、自分だってこれだけじゃ分からんです

*4:こう言う口実って、大切だよね。

*5:二次配布を行わないことが条件なんです。

Model Works 20101218

最近、再開した鉄道模型の話題。

何か、面白そうな工作素材はないかな……と考えていた折、変わった特徴的な橋梁を作ってみようと考えた。プロトタイプは、兵庫県豊岡市にある竹野川橋梁。

この橋梁は、兵庫県山口県に計3本しか現存しない、ラチスガーダーというタイプ。因みにラチスというのは、格子のことである*1
写真を見てもらえば分かるとおり、短冊状の板*2とリベットで構成されていることが分かると思う。

まずは、実物の写真をば。

竹野川橋梁−兵庫県豊岡市竹野町

基本的な構成部品の製作には、家庭用小型CNCであるオリジナルマインド社のBlackII 1510を使用した。
製作したものは、以下のとおり。

  • 裏側の補強板・アングル(一体型、t=1.2mm)
  • 表側のアングル(t=0.5mm)
  • 表面の枠部分(t=0.5mm)
  • 上下のフレーム(t=0.5mm)


但し、ここで製作できるのは、あくまでパーツのみである。実際は、ここからが大変でして…。
ピンセットと注射器で接着剤を塗布しながらの、まさに骨の折れる作業である。
この特徴的なフレームの取り付けだけで片側50本。全体で確か合計150点ほどのパーツを組み合わせたと思う。

塗装は、手っ取り早くスプレー塗装。
なぜか「鉛丹色」に近いものが、ホビー用のラインナップからみつからなかったので、東急ハンズのPB商品のラッカースプレー(ブリックレッド)を使用した。


で、上が取り敢えずの完成写真。勿論、線路は別付けである。
だいぶデフォルメかけたけど、特徴はつかんでいるような気がする……と自画自賛
# というか、自分の工作力ではこれが限界です。

で、これ、大丈夫なの?と思われる向きもあるかもしれない。
と言う訳で、実際に車両を乗っけてみた写真がこれ(↓)。

上に載せているのは、PECO製のフレキシブルレールとTOMIX製キハ10(M車)。


尚、製作に当たって、自身で撮影した写真の他に、社団法人土木学会付属土木図書館内の記事(歴史的鋼橋集覧)を参考にさせていただきました。

*1:「ラチス」という言葉だけなら、ホームセンターなどで目にした人もいるかもしれない。

*2:正確には、L字型のアングル