プラグイン集

無料ブログはココログ
2022年5月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

サンプルJS

  • ユーロバカ一代の締切
    ・・・初期化中・・・

Linux

2022年5月 8日 (日)

RockyLinux 8.5 で Mozc をコンパイル

前回は、CentOS7.4 で Mozc をコンパイルしたが、
今回は、 RockyLinux 8.5 で Mozc に UT第2世代辞書を入れた。

EPEL から スペックRPM を取ってきて、 cpio で展開の流れまでは、前回と同じ。
root 権限対応もソースのコメントアウト部分は変更なし。

前回分からないと言った、UT第2世代辞書との結合は実は簡単だった。
公式サイトの説明の通り、解凍して得られた、「 mozcdic-ut-日付.txt 」を
Mozc ソースの ./src/data/dictionary_oss/dictionary00.txt に追記してあげる。
心配であれば、 Mozc ソースの ./src/data/dictionary_oss/dictionary00.txt をバックアップしてから、
追記すればよい。

残りは、 Mozc をコンパイルしてあげる。
rpmbuild コマンドで頑張るのも変わらず。
コンパイルが終わったら、 yum install ./*.rpm でまとめて入れてあげる。
再起動して、設定から日本語入力に Mozc を追加すると、 UT第2世代辞書 を足した Mozc が使えるようになる。
西木野真姫や花鳥玲愛が一発で変換できるようなって気持ちいい。

※ UT第2世代辞書は、 Neologd の内容を内包しているとのこと。
Neologd は週1のペースで更新されていると言う。
だからファイル名に日付が入ってると思われる。

疑問点、Mozc のシステム辞書?は、追記した dictionary00.txt から dictionary09.txt まであるのだが、
どれが何の役割をしているのかが分からない。
よみがなと漢字表記
「 しまむらうづき 1916 1916 7668 島村卯月 」
の間の数字って何だろう?前との接続コスト、後ろとの接続コスト、単語本体のコストかしら?

UT第2世代辞書、公式サイトの通りUT第2世代辞書自体の更新や、
Rubyのプログラミング技術があれば、単語の情報源を追加できるし、
単語まとめサイトの情報を増やすこともできるだろう。

まとめ

UT第2世代辞書自体の追加は、 tar.bz2 ファイルを取ってきて、
Mozc の dictionary00.txt に追記すればよいと言う事が分かった。
しかし、Mozc のシステム辞書の作りや追加方法についてはよく分からないまま。

2022年1月 8日 (土)

CentOS7.4 で mozc のコンパイル

mozc とは、ザックリ言えばGoogle 日本語入力からGoogle検索で寄せられる膨大な語彙データを引いてオープンソース化もの。

CentOSであれば、EPELレポジトリに登録されているので、EPELを使えるようにしておけば、
# yum install mozc ibus-mozc
で入る。

このままでは、雑魚IMEなので、新語に強い Neologd を足したり、 地名・駅名・人名を足したUT2辞書を加えた、
mozc-neologd-ut2 もあるが、 CentOS での挑戦者が皆無で情報が無い。
変態玄人( 誉め言葉 )御用達のArchなら使えるらしいが、万年素人の私には無理だ。

しかし、EPELから入れた mozc は、最強ユーザー全知全能神の ROOT では使えない。
ソースのコメントをザックリ言えば、「rootで動かすのは危ないから。」とのこと。
う~んお断りだね。私は、 root で動かしたい。
オープンソースの利点、ソースコードの改変が出来て野良ビルドができる。
早速 git clone したが、 Ubuntu 20.04 + Docker 環境でビルドするらしい。
ネイティブが良ければGYPビルド。GYPビルドってなんぞや? -> Google のビルドプラットフォームらしいぞ。
う~ん分からん。

そんなところで閃いた。
せや、EPEL のソースRPM取ってきて、当該部分を書き換えてリビルドすれば確実や。

同じ事をと思いついた前任者は5年以上前に居るが、2016年の情報では古すぎる。
CentOS6での挑戦はCentOSが終わった今では参考にならない。

EPEL の国内ミラーサーバーをHTTPで参照する。
http://ftp.riken.jp/Linux/fedora/epel/7/SRPMS/Packages/m/
有ったあった、 mozc-2.17.2322.102-1.el7.src.rpm 、 ibus-mozc はこれをビルドすれば生成されるようだ。

では早速、ディレクトリを掘って展開。epel_mozc って名前のフォルダーを作った。
# rpm2cpio ./mozc-2.17.2322.102-1.el7.src.rpm | cpio -vid
コマンドでRPMを普通のファイル群に戻す。
# mv mozc-2.17.2322.102-1.el7.src.rpm ..
で元のソースRPMは退避しておく。
どうやら、 mozc-2.17.2322.102.tar.bz2 が mozc のソースコード本体のようだ。
1つ上のディレクトリに、作業用のディレクトリ mozc-main を掘る。
そして、mozc の bz2ファイルを解凍する。
# tar xvfj mozc-2.17.2322.102.tar.bz2 -C ../mozc-main/
# cd ../mozc-main/base/
# vim run_level.cc
270行目ぐらいにから始まる、getuid() 、 geteuid() システムコールでユーザIDを取得して、
RunLevel::DENY を返している if 文をコメントアウトで無効化する。
大学生時代に勉強しておいてよかったC言語。
書き換えた結果を下に記す。

#else  // OS_WIN
if (type == SERVER || type == RENDERER) {
//if (::geteuid() == 0) {
// This process is started by root, or the executable is setuid to root.
// TODO(yusukes): It would be better to add 'SAFE' run-level which
// prohibits all mutable operations to local resources and return the
// level after calling chroot("/somewhere/safe"), setgid("nogroup"),
// and setuid("nobody") here. This is because many novice Linux users
// tend to login to their desktop as root.
//return RunLevel::DENY;
//}

//if (::getuid() == 0) {
// The executable is setuided to non-root and is started by root user?
// This is unexpected. Returns DENY.
//return RunLevel::DENY;
//}
return RunLevel::NORMAL;
}
// type is 'CLIENT'
//if (::geteuid() == 0 || ::getuid() == 0) {
// When mozc.so is loaded into a privileged process, deny clients to use
// dictionary_tool and config_dialog.
//return RunLevel::DENY;
//}
return RunLevel::NORMAL;
#endif // OS_WIN

このコードを保存する。

終わったら、元の tar.bz2 ファイルを作る。
# cd ..
# tar cvfj ../mozc-2.17.2322.102.tar.bz2.2 *
# cd ..
念のためアーカイブファイルを比較する。
# chmod 664 mozc-2.17.2322.102.tar.bz2.2
tarに詳細を要求するvがあると細かすぎるので、vオプションは外す。
# tar tfj mozc-2.17.2322.102.tar.bz2 2>&1 > 1.txt
# tar tfj mozc-2.17.2322.102.tar.bz2.2 2>&1 > 2.txt
# diff 1.txt 2.txt
ファイルの並び順以外は一致している事。ファイルの並び順が若干違う。
ゴミ掃除をして、新しく作った、mozc-2.17.2322.102.tar.bz2.2 をもとの mozc-2.17.2322.102.tar.bz2 にリネームして置き換える。
# rm 1.txt 2.txt
# rm mozc-2.17.2322.102.tar.bz2
# mv mozc-2.17.2322.102.tar.bz2.2 mozc-2.17.2322.102.tar.bz2
# cp mozc-2.17.2322.102.tar.bz2 ./epel_mozc
# cd ./epel_mozc
ここで喜んで、 # rpmbuild -ba --clean mozc.spec を実行するとSPECが合わないとかで怒られた気がする。
せや、tar.gz なら -ta オプションでコンパイルできたはずやと閃く。
# tar cvfz ../mozc-2.17.2322.102-1.el7.src.tar.gz * 
# rpmbuild -ta mozc-2.17.2322.102-1.el7.src.tar.gz
今度は、辞書のZIPが無いとかで怒られた気がする。
# mv mozc-2.17.2322.102-1.el7.src.tar.gz ./epel_mozc/
# cd ./epel_mozc/
# rpmbuild -ta mozc-2.17.2322.102-1.el7.src.tar.gz
( # rpmbuild -tb mozc-2.17.2322.102-1.el7.src.tar.gz )でもコンパイルできた。
# ls ~/rpmbuild/RPMS/x86_64/
ビルドしたRPMファイルが3個出来ている。mozc、ibus-mozc、mozc-debuginfo の3個だったかと。
# ls ~/rpmbuild/SRPMS/
新しいソースRPMファイルができている。

ビルド段階で、依存ライブラリが無いと言われる場合は、以下のパッケージを入れる。
CentOS BASE、 UPDATE 、EPEL レポジトリで大体揃う。
# yum install --enablerepo=epel protobuf-devel protobuf-c qt-devel zinnia-devel gtk2-devel clang ninja-build gyp ibus-devel emacs xemacs xemacs-packages-extra
必要パッケージがいっぱいあるが、全部入れる。

最後に mozc 本体を入れる。
# cd ~/rpmbuild/RPMS/x86_64/
# yum install --enablerepo=epel *.rpm

これで、 mozc がインストールできただろうか。別な作業を全部保存してから、
# shutdown -r now 
で再起動を掛けてみよう。

GNOME にログインしようと1文字打つとGNOMEの最初に戻されたではないか?
CentOS7.9 が出ているきょうび、 CentOS7.4は古すぎるのでXと入力ドライバが対応できないのだ。
CentOS7.4 を捨てて、 CentOS7.9 にして良ければ、 # yum -y update --enablerepo=epel 、 # yum -y upgrade --enablerepo=epel 、をパッケージが無くなるまで繰り返せば動く。
どのパッケージが古くて問題を起こしているかまでは特定していない。
# yum update ibus* で動く気もしないでもないが・・・。
あっ、駄目だ。これだけだと、 Gnome-Terminal がクラッシュして起動しなくなる。
# yum update gunome-terminal* とシェルも更新してあげないと。
やっぱり、全上げしかないか。

CentOS の設定 Region& Language 、 input source 、 + ボタンから mozc を追加してする。
Mozc
rootユーザーでは勝手に閉じてしまう、 mozc setting が開くようになった。

どうだろうか。猛烈に面倒ではないだろうか。
Neologd や UT2 対応して CentOS7.4 最強の mozc を作りたかったが、またも心が折れた。
ここまで頑張るより、WindowsのクライアントにGoogle日本語入力を入れて、
テキストエディタで文章を書き、scpした方が絶対に早い。

コンパイル済のPRMファイルはどこかって?
ブログに貼るには重すぎるので、置いてないぜ。
Dropbox もそろそろ空きが無いし。

----

2022年5月26日追記。
RockyLinuxでのトライアルに記載した通り、OSDNからmozcdic-ut-日付.tar.bz2をダウンロードして、解凍する。
解凍したディレクトリ内にある、mozcdic-ut-日付.txt を Mozc ソース内のdata/dictionary_oss/dictionary00.txtに追記する。
Mozc ソースをtar.bz2で固め直す。
~/rpmbuild/ 以下を全部消して、rpmdev-setuptree コマンドでディレクトリを作り直す。
mozc-2.17.2322.102-1.el7.src.rpm を解凍して得られたデータを~/rpmbuild/SOURCES/に入れる。
root起動やUT第2世代辞書をマージして、bz2に固め直したMozcを~/rpmbuild/SOURCES/に入れて、古いmozcソースを上書きする。
カレントディレクトリを~/rpmbuild/SOURCES/に移動して、
# rpmbuild -ba --clean ./mozc.spec 
を実行する。今度は、rpmとsrpmの両方が問題なく生成できた。

~/rpmbuild/RPMS/x86-64/ に作られたMozcのRPMをyumでインストールする。
既存のmozcがあるので yum reinstall で入れた。
設定の地域と言語のキーボード設定からmozcを一度削除する。
マシンを再起動する。
GNOME にログインして、設定の地域と言語のキーボード設定からmozcを追加する。
適当なエディタで試し打ちする。島村卯月も鷺沢文香も花鳥玲愛も一撃で変換できる。

Neologd の辞書が新しくなるたびにRPM作る気は無いが、漢字変換が猛烈に楽になった。

2020年5月22日 (金)

NextCloud+Mattermostに再挑戦

前回は、NextCloud+GitLab+Mattermostに挑んで大敗した。

メモリ不足の温床になった、GitLabを抜いて、Mattermostは公式パッケージでインストールを試みる。

NextCloudをNginxで動かそうとして、1度目は失敗した。
どうしても、NextCloudの認証から先に進めなかった。
でも仮想マシンのいいところは、ファイルを再配置すれば、NextCloudパッケージのインストール前からやり直せること。

2度目はApache httpdでNextCloudを動かした。あっさり行けた。

Mattermostは公式パッケージを取って来ればNginxで頑張らなくても8065番ポートで動作する事。

サブディレクトリでなくポートでアクセス先が変わっても問題ないので、80番ポートでnextcloud、8065番ポートでMattermostが動作するようになった。

1

これで、心置きなくMattermostのボット作成に入れる・・・と思ったら、投稿内容の整形ぐらいスラッシュコマンドで実現できそうだった。
わざわざボットにコマンドを投げて、構文解析して、結果を投稿と言う形にしなくても良さそうだった。

・・・

別件対応のためにAnsibleも入れてみた。

普通にdnfコマンドでインストール出来て、ローカルにHello,worldの表示が出来た。

Photo_20200522220101

これでAnsible分かったかと言うと全然分かっていない。

※仮想マシンにテスト的にこれらのサービスをインストールして感触をつかむためのものなので、暗号化までは行っていない。
オープンにするときには暗号化が必須だ。

2020年5月10日 (日)

nextCloud+gitLab+Mattermost+SSLサーバの構築挑戦

7年前の2コア4スレッドPCにVMを使って、CentOS8をインストールして、
タイトルの3大ソフト+SSL通信のシステム構築を試みた。

結論は、構築できなかった。
VMに割り当てられるCPUは1個、メモリは4GBが限界。
nextCloud+gitLabを入れただけでこんな感じ。

1core

ジョブ数が8/1CPUを超えて、メモリが4GB中3GB使ってて、スワップに突っ込んでいる。
とてもじゃないが、今のVMの設定では耐えられない。

たどり着いたのは、Mattermostの画面が見られたところまで。

Mattermost

nginx のデプロイがメモリ不足で失敗していて、Mattermostにサインインすることすらかなわない。

nextCloudのインストール

nextCloudの配布先が、サーバー内部エラーでダウンロードできなかったこと以外は、割と行けた。
PHP7.4を使うために、Remiレポジトリを入れた。その時にPHPの参照レポジトリをOS BASEからREMIに切り替える事。
そうすれば、一々php74-パッケージ名のプレフィックスで/opt/root/remi/以下にパッケージをインストールす必要がなくなる。
普通に、パッケージ名で入れていい。そうしないとphp-cliが使えずに、面倒な事になる。

それ以外は、最新のnextCloudの管理者マニュアルにCentOS8でのインストール例があるので、だいたいそれに沿ってインストールして、足りない部分をnextCloudの管理者マニュアルのインストールの章を参照すれば、だいたい入る。

gitLabのインストール

gitLabのインストールは、スクリプトを取ってきてインストール。
nextCloudが入っていれば、基本的に依存パッケージは入っているらしい。
ただし、エンタープライズエディション(EE)とコミュニティーエディション(CE)がある。
gitLabは「EEをインストールして、EEの機能を封印して使ってね」という事だが、課金を踏みたくないのでCEを入れた方がいいのでは?
自分は間違って、EEを入れてしまった。ただ、課金を踏む前に動かなくなってしまった(;^ω^;)

Mattermostのインストール

Mattermostは、gitlabの設定ファイル、/etc/gitlab/gitlab.rb にコメントアウトされているMattermotの設定を復活させて、2回reconfigureを行って再起動すれば入るらしい。
ログイン画面の表示までは行ったが、ログインできなかったので詳細不明。

面倒事

httpサーバが2つ居る

nextCloudは、Apache httpd で動いていて、gitLabはnginxで動いている。nextcloudのインストールマニュアルには、nginxの例も有ったので、nginxに統一できれば、Apache分メモリとポートが浮いた。
じつは、GitLabとMattermostはポートシフトで構築している。今回はSELinux無効だからあまり気にしなくていいが、それでもfirewalldのポート開放が増える。

エントリーポイントをディレクトリ配下にできない

1台のホストで多機能提供するときは、URLをwww.hogefuga.jp/mattermostとかwww.hogefuga.jp/nextcloudで機能を切り替えたいが、GitLab機能のMattermostでは、それは実装されていないようだ。

Gitlab_mattermost 

DNS名が要る

前述のエントリーポイントに絡むが、ディレクトリ配下にできないならどうやって分けるかだが、バーチャルホストで分けることになる。
mattermost.hogefuga.jpやnexcloud.hogefuga.jpと言った感じで分けることになる。
サンデー構築で簡単にやるならIPだけでアクセスしたいが、VMホストのWindowsのetc\hostを修正するかDNS立てるかする必要があるようだ。エンタープライズ向けなので、キッチリしたものが正義なのかもしれないが、実装テストに相当工数が要るのはどうかと思う。

Let's Encryptテスト

システムが組み上がらなかったので、暗号化のテストまでは行けなかった。
無念。


まとめ

去年のOpenStack構築テストと同様に、2連敗をきっした。

100万円のXeonマシンが欲しくなる。
というか、Windowsよりペースは遅いが、Linuxであってもどんどん肥え太っている。
肥え太りに対応できるくらいのコンピュータに乗り換えが出来ないのが何とも言えない。

今年のGWも萎えて終わった。

2014年4月10日 (木)

Z87マザー、グラボ、IntelHDに悩む

再び、CentOSにnvidiaのドライバを入れるわけだが、前の記事のどこかで、LinuxにNvidiaのドライバ入れるときは、Grubのカーネルパラメータに nouveau.modeset=0 を記述してinit 3 で起動かけてインストールすると書いた気がするが、最新のCore iシリーズはGPUを内蔵しているし、マザーボードにグラフィクス出力端子が有る。
※前使ってたマザーには内臓グラフィクスは無かった。

今回もハマった。

nouveauを無効化して、nvidiaのドライバをインストールすることが出来たのだが、起動時の何チャラ [OK]の画面が出ない。終了時も同じく。何回かそのまま使ってて、致命的な問題に出くわした。テキストモードの画面がVGA側から出ない。マザーボード側から出る。

まだnouveauが噛んでるのかと、ブラックリストに登録するも改善されない。lspciしてもビデオカードだけだし、xorg.confもNvidiaドライバを指定している。

lsmodしたところ、i915ドライバーをロードしている。そうか、マザーの設定はPCI-Express優先だが、QSVとか使えたらなとUEFI上で内臓グラフィクスを無効化していない。
そのために、IntelHDのドライバi915ドライバを読み込んでいる。だからマザー側のディスプレイ端子から映像が出力される。CentOS上では、マザー側をプライマリにして、グラフィクスボードをセカンダリにするようだ。

なので、カーネルパラメータに i915.modeset=0 をさらに書き加える。

こうすると、内臓グラフィクス側からの映像出力が止まり、グラボからのみ映像が出力され、グラボ側にコンソール画面を表示することができる。

intel noveau→intel nvidia→- nvidia とドライバーを切り替える羽目になり面倒だったというおはなし。

※noveauは、最初のインストール時に、2番目の選択肢、Video Basicを選択すると、noveauがインストールされないらしい。これからCentOSインストールする方は注意してみては。

参考:ArchLinuxのKernel Mode Setting

XPのサポート終了だがLinuxにするな

今日、2014年4月9日で一般家庭用Windows XP及びOffice2003のサポートが終了した。

危険性の説明はほかのサイトに譲る。
まぁ、簡単に言えば、第2、3の パソコン遠隔操作事件 が起こって、Windows XPを利用し続けている貴方が、犯人の代わりに逮捕されて牢屋にぶち込まれるだけ。
これでお分かりかしら。

愛着のあるXPマシーン、パソコンの機能自体失われているわけでもなく、どちらかと言えばピンピンしている。なので勿体無いと思ってまだ使いたいと言う人は多いでしょう。

ちょっと前のTV地デジ化を思い出してほしい、貴方は、テレビを買い替えた人だろうか、それともチューナーを買ってきて自力配線した人だろうか。
前者であれば、地デジ化の時と同様に、古い機械を処分して、新しい機械に買い替えて、データ移行サービス(有料)を付けた方が良い。

問題は、後者だ。チューナーを付けてしのぐ知恵のあった人だ。そのあなたならこの際、Linuxをインストールして延命しようと考えているだろう。

はっきり言おう、チューナーのリモコンが増えるってレベルの優しさじゃないから!

Linuxは、「Windowsだったら出来たのになぁ」と言いながら、別のパソコン・スマホ・タブレット等で情報を探しながら操作しないと、操作できないから。

Windows7にするならまぁ、すごく遅くなるけどOSが動くとは思う。Windows 8系列は、半導体側に求められる要件がかなり上がっているので、だいたい動かない。(私のCore2系もダメだった。旧BIOSのCore iも。もちろんWin7は動作している。)ただ、知っての通り有料。万円単位。7・8共に2万ぐらいか。あえてMacに乗り換えるのは有りだ。Linuxより利用者が多いし本も有る。本の通りにやったのに本の通りの結果にならないなんてことがLinuxより少ない。最悪Mac使いこなせなくても、Windowsを共存インストールできるので、OS代の出費でWindowsに帰ってこれる。これはなかなかの選択肢だと私的に思う。

タダが良いのは人情だが、だからと言ってLinuxはストレスが一気に掛かる。(勿論そのイライラを体験すれば、帰り道にWindowsを買おうと思うだろう。だが、自分でLinux環境を作った場合、失われたデータや時間が何より勿体無い。)


ここまで来て、なおもLinuxを使おうと思うか、よろしい、ならセットアップ画面を見てみよう。

No1どこぞで進められてたCentOSのインストール開始画面。さぁ、英語のマウスの使えない画面が現れた。

No2この画面行けば、ビデオカード使えるけど、うまく使えないと。

No3マウスは使えず、最後までキーボードでのインストールとなる。インストールがうまくいけば、GUIが出て、XPのようこそ画面か、fmfmとなる。

No4失敗すれば、もちろん、キーボードから操作となる。

No5こんな感じで、もちろんこの状態でもテキストブラウザでネットは見られれるが、flushとか使ったサイトは壊滅。ためしに、エロゲメーカのLumpofsugerを開くとこうなる。

No6ちなみに、CentOS付録のfirefoxで開くとこんな感じ。

No7(C)Lumpofsugar

そう、FlushはAdobeの著作物で、オープンソースではないから、別途Adobeから取得してこなければならない。

Ubuntuであれば、ソフトウエアセンターから導入が可能だが、旧式のCentOSではrpmコマンドの理解が必須である。その他に、一般ユーザーとroot、sudoやsu - も分かってないとね。

No8Ubuntuで同ページを表示した。Flushプラグインをすぐに使うことができるため、WindowsでFirefoxを利用している人であれば、すんなり利用できるだろう。
※画面上部のTV画面に動画が再生されていないのはLinux関係ないです。自分の回線速度があまりにも遅いためです。

今、流行りのGoogle ChromeはCentOS上では動かない。Mozc(Google 日本語入力)も。CentOSの中身が古すぎるから。Ubuntuならどちらも動作する。
Google Chromeは簡単に導入できるが、Mozcはコンパイル作業が必要になる。→Ubuntu13.10ならソフトウエアセンターから一発。日本語カスタムなら最初からついてくるらしい。ライブラリ揃えた苦労はどこへorz


上の例は、webページの例だがテキストはより複雑だ。XPとVistaで文字コードが若干違うためだ。SJISとCP932と若干違うためだ。CentOSではパッケージ入れて設定しないと読み込めない。Ubuntu日本語カスタムはその辺が手厚い。ただし読み込み時に文字化けする場合は有る。

更に面倒なのは、プリンタやスキャナ。まずドライバが無い。印刷はCUPSというシステムで管理しているが、もちろんGUIでの設定は一部しかできないので、当然コマンドラインからテキストエディタで設定を書く。ペンタブもちゃんとドライバーを導入できれば、傾き・筆圧を検知できるが、ドライバをインストールできなければ、マウスの代わりしかない。

ゲーム系は壊滅。Javaで動くMinecraftはLinuxでも遊ぶことができる。※音が出なかったり、KBが効かなかったりするが。Windows用ゲームソフトは壊滅的だ。テクニックが有るならWineを使いエミュレートすることができるが、所詮エミュだ。予期せぬバグが出る。
個人的にユーザー補助機能が厄介だった。何秒かキーを押しっぱなしにするとロックしてくれる機能なんだが、まっすぐ進みっぱなしでいきなり匠先生出来てきて後退押しても、前進と相殺して動けない→シューボン。これ何度もやられた。

オーディオ系が弱い。MP3やDVDのコーデックは実はライセンス品。Windowsはオーディオ等のライセンスを内包しているが、Linuxは無い。もちろん第三者から入手することができるが、DVDのデコードソフトは日本の法律ではかなり黒い。アニオタなら致命的なブルーレイビデオも再生できない。(使いにくくてもよければVLCという手もあるが、正直XineかMplayerの使い勝手覚えたら元に戻れない。)便利なi-Tunesも使えない。

ファイル名が日本語の取り扱い。

No9Windowsパソコンで作成された日本語ファイルをCentOS上で解凍を行うと、文字化けを引き起こす。※Ubuntuでは正常に扱える。

LinuxからWindowsの領域見えるけど・・・。ソフト入れればWindowsの領域を読み書きできる。ただ、Windowsは仕様公開していないので、ちょくちょくファイルが消えたという話を聞きく。自分もWindowsの中核をなすExploer.exeを失ったことが有る。逆にWindowsからソフトを入れてLinuxの領域を読み書きする場合は、リスクが結構低い。オープンソースでどんな構造をしてるか、どう読み書きすればいいか分かるから。

トラブルは自分で何とかするしかない、人に聞いても答えてくれない。(使ってる人も居ない、本にあなたの望むトラブルシューティングは書いてない。)安心サポートサービスもLinuxは未対応だ。
ただ、同じ悩みを抱える同志は居る。英語に堪能で無いと解決方法読めないけどね。
実際、自分も「月額サポート付けてよ、数百円だよ。」を「Linux対応してる?してるなら1000円ぐらい出すよ」の一言で、契約を断ることに成功している。

友人にはよく言うのだが設定ファイルのひとつの例をだすと、

Enable=True
enable=True
Enable=true
enable=true
Enable =True
enable =True
Enable =true
enable =true
Enable= True
enable= True
Enable= true
enable= true
Enable = True
enable = True
Enable = true
enable = true

これ、全部意味違うから、ちなみに正解1個、Enable = Trueな。ただし、=前後の空白は半角空白ではなく、tab空白が正解。こんな複数通り一々試してられますか。

No10Windowsなら同じ作業が、マウスでたったのこれだけ。非常に簡単。

なので、私は安易にWindows XPマシーンをLinuxにする事を勧めない。素直にWindows 7なり8.1を購入すべきだ。ワードにエクセルやゲームなどの豊富な商用ソフト、新発売のスキャナにプリンタなどのデバイス、本の通りにやれば、画面も同じようになるWindowsの購入がお勧めだ。
これだけのリスクを承知でLinuxに行くなら止めはしないが・・・。心折れるよ。


ここまでLinuxコケにしといてあれだけど、自分Linux(大体CentOS使ってます。)
なぜか、答えはサーバー用途。

webサーバーならApache、メールならPostfixにDovecot、データベースならMySQL、驚異的な安定性に踏ん張り、なによりコネクション数の制限が無い。(WindowsXPは確かProなら10コネ、Linuxメモリと回線が続く限りいくらでも)
Windows版Minecraftで3人がWiki(webサービス)見ながら、メーリングリスト使ったら残りは1コネ。サーバー用途ならLinux強いわ。

後はプログラミング、完全無償のC言語やC++コンパイラ、PerlにRuby、Phython、phpと言語の選択が自由自在で、豊富なライブラリ群。付録のgedit(Windowsでいう所のメモ帳)もかなりプログラミングを念頭に置いて強化されている。そして、何よりオープンソースから得られる先輩方の莫大なるサンプル群。これは、本気でプログラミングしたい人には強い味方だ。

やっぱり、いわゆる大衆パソコンとして安全なインターネットを軸に文章書いたり、手紙作ったり、ゲームしたりするなら、お金を払ってでも新しいWindowsへ、移行すべき。
全ての操作を覚えなおすならMacに行くというのも、Windows買ってくれば共存可能なので有りだ。
パソコンをプロのツールとして、サーバーやプログラミング道具として生まれ変わらせるなら、Linuxにするのは有り・・・かなぁ・・・、お勧めできない茨の道だが・・・。

2014年4月 8日 (火)

postfix関係のアレ(メモ書き)

メールサーバーテストしてて、キューに大量のテストメールが詰まって、大変。

そんなときは、ここ

キューの中身を見る: mailq

キューの中身をすべて抹殺: postsuper -d ALL

リレイ先のサーバーが生きてるか調べる: telnet 相手のアドレス 587
※25番ポートはOP25Bで大体殺されているので、サブミッションポートの587番を指定する。

テスト用サーバーだからこれだけ有ればいいはず。

第0回マインクラフトサーバーを構築する (立てるサーバー)

身内専用のマインクラフトのサーバー立てるのだけど、マインクラフトだけじゃ済まなくなった。(現在形で書いてるけど、過去の遺産です。)

  • 運営協議どうする?
  • 協議結果のユーザーへの通知はどうする?

運営に関しては、参加者全員にWiki編集スキルがあるので、Wikiを使うことになった。
SNSやクラブサイト・グループウエアとかさまざまなサービスがネット上にはあるけど、
使い方覚えなおすなら、全員がすでにスキルを持っている、Wikiが良いのではとまとまった。

協議の結果通知は、wiki見てもらえば分る事なんだけど、アクセスしてもらう手間と速報性に欠ける。
システムからの通知でよく使われているのがメール。最近だとその人のTwitterに通知もありかもしれない。その人がよく見ているものなら何でもいいんじゃないかな?
ただ、ユーザーのTwitter利用者は私だけ・・・。地震の時に最も繋がったメディアだから登録はしているが、IDもパスも最早脳みそに1bitも残ってないとのこと。
スタンダードにメールが良いんじゃねという結論。(受け取った方が、見る見ない・スパム登録するしないは、その人しだいで。)

メールとかするならやっぱりサーバーOS必要になる。Windowsサーバー買う金下さい。
参加者全員「お・こ・と・わ・り!鯖缶が出せよ⑨」
無償OSのLinuxしか手がない。前に某所で鯖缶して使い慣れたCentOSに独断と偏見で決定。Ubuntuは画面きれいなんだけど、端末開くまでに30分さまよった。Linuxは端末命だから不採用。
fedoraは、新しいのは良いけど・・・、クラッシュ激し過ぎ。
Scientific Linux は、実行ファイルと設定ファイルの配置がUbuntu臭い。REPL系で悪くはないが、積極的に採用する決定打も無い。
まぁ、CentOSに独断と偏見で決めてたんで、議論の余地なしだけどね。


その結果

  • マインクラフト
  • webサーバー(wiki)
  • メーリングリスト

以上3つのサーバーが立つことになった。

簡単に3つのサーバーとか決められたけど、簡単じゃないからな?

1.マインクラフト
バックエンドはJAVAだけ これは簡単。

2.Webサーバー(wiki)
-Apache、PHPエンジン、SSLモジュール群

3.メーリングリスト
-mailman
--postfix、dovecot
---ClamAV、SpamAssassin、ProcMail

メール周り依存多い。ただこれだけで終わらない。

出かけた先でも管理が必要:SSH
外部からの攻撃を防御したい:iptables、DenyHost、TCP wrapper
システムに正確な時刻:NTP
自動バックアップ:cron、rsync

図にすると下の感じ

Maindomappu全部示したわけじゃないけど、大まかな感じは、こうなるはず。

 

中核機能
マインクラフトで、建築や探索などを行い、wikiで情報交換や作品の展示。
巨大建築やネザーでの豚狩り、サーバー緊急シャットダウンの連絡から、飲みに行こうぜの連絡まで広く活用できるメーリングリスト。
バックエンド機能
wikiは、見られる分には問題ない。メンバー以外書き込みが問題だ。
パスワードを暗号化せずに送るのは危険すぎるSSLで暗号化が必要。
メールはweb以上に深刻。スパムやウイルスは、サーバーで撃退。
味噌ボールメールの中継はさせない。次のサーバーまでのSMTPもやはり暗号化が必要。
通信の監視は必須。余計なパケットやポートは潰す。しつこく送ってくるようなホストは、着拒。
要約
メールを送信する能力があれば、簡単に大人数が必要なクラフトが可能になる。
wikiを編集する能力があれば、製作した物を簡単に多くの人に公開が出来る。
その際に、利用者はセキュリティ等に注力する必要が無く、作品作りに集中できる。
一方で、鯖缶は、セキュリティ周りやLinux運営などのきめ細かな設定と運営が必要となる。マインクラフトの処理は、かなり重い部類になる。重い処理をこなしつつ、webに応答し、必要なメールの送受信を行わなければならない。webやメールのコネクションを維持しつつ、マインクラフトのコネクションを落とさないようにする必要がある。

相手の要求もわかったし使うソフトウエア群も決まった。
用件定義や、設計の段階までいけた事になるのかな?

これ以外に、別件でブログのホスティングを頼まれた。
wikiが外部へ公開のwebページとも言えるので、別ディレクトリにWordPress展開すればたしかに、ブログサービスの提供が可能だ。
「可能だ」と結論を出したことで、「じゃぁよろしく」と。えぇ~、これで契約成立なんですか?
面倒が増えるのが嫌なので、そこのディレクトリ以下は、全て向こうの責任にしてもらった。

次、注意書き編

2014年3月19日 (水)

第11回マインクラフトサーバーを構築する(メーリングリスト編)

注意事項は第1回へ。
前回は第10回へ。

今回は、メーリングリストサーバーの構築。

ーーーーーーやること一覧ーーーーーー

  • セキュリティで最低限やること一覧

1.Yumは確実にアップデートする
2.iptablesで確実に不要なポートをふさぐ
3.SSHのパスワード認証を切る→RSA認証
3.1.rootログインさせない
3.2.ポートを変える
3.3.しつこい奴はDenyHost
3.4.そもそも、SSH可能なユーザーを絞る
3.5.同時SSH可能な数を絞る
4.rootになれるユーザーを絞る
5.ウイルス対策ソフト
6.ファイル改ざん検知
7.rootkit検知
8.不要なサービス停止

9.攻撃検知・防御・排除(バッファーオーバーフローとかDOSとか)
10.ログ監視と調査
11.鯖情報の非表示(Apachやphpのレスポンスを返さないように設定)
12.ApachのSSL化
13.ポートスキャンを遮断
14.DDNSサーバーへの変更通知
15.バックアップ

  • サーバーの設定と起動

1.NTPサーバー
2.マインクラフトサーバー
3.(SQLサーバー)
4.webサーバー
5.webサーバーのSSL化
6.SNMP+MRTG
7.(アクセス解析サーバー)
8.メールサーバー(送信)
9.メールサーバー(受信)
10.メーリングリストサーバー

赤字は作業終了を示す。
※※DOSは、現在の状況だと、HTTPのアクセスしか検出できない。iptablesにも実装しないと全体としての安全性を上げられない。iptablesを取り上げた、第7回は無かったことになってるので、色を変えない。

ーーーーーーここからが作業ーーーーーー

メーリングリストソフトとして、mailmanを使う。ただ、5分ごとにcronでメール送ろうとするので、設定が終わったら、即座にmailmanのcronを止める必要がある。

yum install -y mailman でインストール。

/usr/local/を/etc/に置き換えて、centosサーバー構築ガイドにしたがう。

メーリングリストのページが出来たら、メンバーを登録しまくる。

ただ、勝手に登録されるのは気持ち悪いだろうから、招待メールを送りまくる。

登録があったら、承認して正会員に昇格。自分が旅行とかで管理できそうに無い場合に備えて、信頼出来る人をオーナー(管理者)に昇格する。

積極的に協力してくれて、ルール(規律)・マナー(礼儀)・モラル(倫理)のしっかりしている人を、モデレーター(司会者)に任命する。

これで、メーリングリスト宛にメールすれば、緊急シャットダウンやバージョンアップのお知らせ、飲みに行こうぜ、72時間耐久OFF会しようぜなどなどの連絡をメンバーで持つことが出来る。

wikiのメール送信機能を改造し、宛先をこのメーリングリストにすれば、wikiが変更される度に会員にメールが飛ぶ。

しかしながら、議論をいちいちメールするのは野暮ってもんだし、受けとるけどSPAM扱いするとか、JUNK箱に送ってしまい、結局みられない可能性が高い。

なので、あえて大事な議論「~」が有るから、皆様のご意見をwikiに寄せてください。と別作業にした方が回答を得やすいと考える。


あれだけ脅したのに、最後までサーバー立ててしまったのかよ。驚きだねぇ。

まぁ、目標としていた

  • マインクラフトサーバー
  • 運営協議用wiki
  • メーリングリスト
  • 最低限の最低限セキュリティ

が揃ったよ。

サーバーの管理運営は始まったばかり、これからが本番。技術よりも、人間関係の調節の方がずっと面倒だよ。

君のサーバーが末永く続く事を祈って。

第10回マインクラフトサーバーを構築する(メールサーバー編)

注意事項は第1回へ。
前回は第9回へ。

今回は、メールサーバーの構築。

ーーーーーーやること一覧ーーーーーー

  • セキュリティで最低限やること一覧

1.Yumは確実にアップデートする
2.iptablesで確実に不要なポートをふさぐ
3.SSHのパスワード認証を切る→RSA認証
3.1.rootログインさせない
3.2.ポートを変える
3.3.しつこい奴はDenyHost
3.4.そもそも、SSH可能なユーザーを絞る
3.5.同時SSH可能な数を絞る
4.rootになれるユーザーを絞る
5.ウイルス対策ソフト
6.ファイル改ざん検知
7.rootkit検知
8.不要なサービス停止

9.攻撃検知・防御・排除(バッファーオーバーフローとかDOSとか)
10.ログ監視と調査
11.鯖情報の非表示(Apachやphpのレスポンスを返さないように設定)
12.ApachのSSL化
13.ポートスキャンを遮断
14.DDNSサーバーへの変更通知
15.バックアップ

  • サーバーの設定と起動

1.NTPサーバー
2.マインクラフトサーバー
3.(SQLサーバー)
4.webサーバー
5.webサーバーのSSL化
6.SNMP+MRTG
7.(アクセス解析サーバー)
8.メールサーバー(送信)
9.メールサーバー(受信)
10.メーリングリストサーバー

赤字は作業終了を示す。
※※DOSは、現在の状況だと、HTTPのアクセスしか検出できない。iptablesにも実装しないと全体としての安全性を上げられない。iptablesを取り上げた、第7回は無かったことになってるので、色を変えない。

ーーーーーーここからが作業ーーーーーー

3本柱の最後メールサーバーを構築し、メーリングリストを作る。
緊急事態から、飲みに行こうぜまで使える同報リストを作り上げる。

メールサーバーはpostfixを使う。受信はDovecotを利用。
OP25B対策も頑張る。

これも、参考サイトCentOSでサーバー構築みれば大体出来る。
私が使ってるプロバイダは、smtp_sasl_auth_enable = yesに加えて、smtpd_sasl_auth_enable = yesも書かないとダメだったけど。

メールサーバー(送受信両方)が出来たら、暗号化

メールサーバー(送受信両方)の暗号化が終わったら、スパム&ウイルスメール対策

SpamAssassin使うとroot宛のメール通知がなくなるし、NOBODYの処理で文句言ってくる。NOBODYの処理は、nobody専用ディレクトリ作って、そこで処理させれば解決する。
ROOT宛のメッセージは、結局root以外の誰かに飛ばさないと通知されない。
また、ROOTのメッセージボックスには送信してくれずに、飛ばす人がいないとNOBODYに残ったままである。頻繁にNOBODYのメールボックスをチェックする必要がある。

コンソールに、メッセージ来ましたの表示、便利だったのになぁ。

より以前の記事一覧