haiju's 開発メモ

開発に必要な情報を自分用にメモ

Manjaro Fluxbox 15.12_x86-64のsystemd-nspawnでFedora25 Serverのコンテナを構築してみた

金曜日の夜に仕事で詰まってる間にsystemd-nspawnの使い方

の復習をしていて、とても分かりやすく解説しているサイト

を見つけたので、その方法に則って実際にやってみた。

たしかにその手順通りにやると、2時間で構築できて感激した。

なぜFedora25 Serverなのか?っていうと、32bitの開発環境

で使っていたFedora24 Workstation LXDECentOSより

使いやすかったことと、NginxとかBitcoinとか試してみたい

ことがあるってのとUbuntuより軽かったからという

安易な理由。

[構築手順]

1. 依存関係を解決するために、とりあえずdnfインストール。

% yaourt -S dnf

  yaourtだからってこともあるし、依存関係が複雑ってのもあるし

 作業時間のほとんどを、このビルドで取られる。

2. dnfの設定。

1) Fedoraリポジトリの追加

% sudo mkdir -p /etc/yum/repos.d

% sudo vim /etc/yum/repos.d/fedora.repo

2) fedora.repoの書き方

(ex) Fedora25 Serverの場合

[fedora]

name=fedora

baseurl=http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/25/Server/x86_64/os/

enabled=1

3) リポジトリを認識させる

% sudo dnf repolist

3. chroot環境の構築。

% mkdir fedora_container

% sudo dnf groupinstall core --nogpgcheck --installroot=$HOME/fedora_container

4. rootパスワードの設定。

 FedoraUbuntu同様、空パスワードでは許可されないのでchrootで事前設定する。

% sudo chroot fedora_container

[root@manjaro-fluxbox /]# passwd root

ユーザー root のパスワードを変更。

新しいパスワード:

新しいパスワードを再入力してください:

passwd: すべての認証トークンが正しく更新できました。

5. コンテナの起動。

 コンテナ起動の際に実行するコマンドとオプション

% sudo systemd-nspawn -b -D fedora_container -n

-b:コンテナの起動

-D:コンテナのrootディレクト

-n :ホストとコンテナを繋ぐプライベートネットワークを設定

6. ネットワーク接続。

 コンテナの中から外に向かってネットワークを繋ぐ

 -> systemd-networkd を利用すると簡単。

 -> コンテナ内でサービスを有効にして、resolv.conf のシンボリックリンク

  を張ると繋がるようになる。

 -> 但し、ホスト側でもsystemd-networkdが有効になってる必要がある。

1) ホスト側のsystemd-networkdが有効か確認。

% sudo systemctl status systemd-networkd

● systemd-networkd.service - Network Service
Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; disabled; vendor preset: enabled) --- disabled = 無効
Active: inactive (dead)
Docs: man:systemd-networkd.service(8)

2) disabled となっているので、有効にする。

% sudo systemctl enable systemd-networkd
Created symlink /etc/systemd/system/multi-user.target.wants/systemd-networkd.service → /usr/lib/systemd/system/systemd-networkd.service.
Created symlink /etc/systemd/system/sockets.target.wants/systemd-networkd.socket → /usr/lib/systemd/system/systemd-networkd.socket.

3) 有効になったか確認。

% sudo systemctl status systemd-networkd
 ● systemd-networkd.service - Network Service
 Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; enabled; vendor preset: enabled)
 Active: active (running) since 土 2016-11-26 15:32:22 JST; 21h ago
 Docs: man:systemd-networkd.service(8)
 Main PID: 447 (systemd-network)
 Status: "Processing requests..."
 Tasks: 1 (limit: 4915)
 CGroup: /system.slice/systemd-networkd.service
 └─447 /usr/lib/systemd/systemd-networkd

4) コンテナ側のサービスを有効にする。

# systemctl enable --now systemd-networkd systemd-resolved

# ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

7. コンテナの終了。

 コンテナ側でpoweroffコマンドを実行。

[root@fedora_container ~]# poweroff
 Sending SIGTERM to remaining processes...
 Sending SIGKILL to remaining processes...
 Process 191 (plymouthd) has been marked to be excluded from killing. It is running from the root file system, and thus likely to block re-mounting of the root file system to rea d-only. Please consider moving it into an initrd file system instead.
 Powering off.
 Container fedora_container has been shut down.

 参考サイトの情報通りに、作業しただけなので実は詳細に設定しないと動かない

って部分も多々あると思うので、それはまた次の機会に。

[参考サイト]

qiita.com

blog.0x972.info

gist.github.com

既存nodejsと置き換えたnode-lts-boronって何?

昨日、pamacに更新通知が80個弱来ていたので実行した。

atom-editor-betaをビルドアップグレードしている時に

nodejsとnode-lts-boronが競合しています。

置き換えますか?

って聞かれたので、だいたいNを実行するとアップグレード

できないで終了することが多いので、Yで実行しといたけど

node-lts-boronって何?

って思ったので調べてメモ。

参考にしたサイトに、以下のようなことが書かれてた。

偶数バージョン = LTSではなく、 Argon, Boron などの LTS 識別名が付いているもの = LTS

???

つまり、Long Term Supportされるnodejsってこと?(ΦωΦ)

ちょっと急いでいるし、Nodejsは何だかよくわからないので

あとで詳しくって感じ。

[参考サイト]

yosuke-furukawa.hatenablog.com

October security releases and v6 LTS "Boron" security inclusions | Node.js

Node v6.9.0 (LTS) | Node.js

resources.nodesource.com

126kr.com

hackernoon.com

 

Manjaro Fluxbox 15.12_x86-64でlibtinfo.so.5が見つからなくてPureScriptのインストールでハマった

Manjaro Fluxbox 15.12を使っていて、npmでPureScriptを

インストールしてパッと見、インストールできたー!

と思って、pscコマンドやpulpコマンドを実行してみたら

以下エラーで動かなかった。

/usr/lib/node_modules/purescript/vendor/psc: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory.

/usr/lib 以下にlibtinfo.so.5っていう共有ライブラリが見つからないから

動かねーよ。ってことらしい。

で、/usr/lib以下を調べてみたら、そんなファイルねー。

その上、yaourtには libtinfo.so.6はあるけど、5がねー。

ってことで、更に詳しく調べてみると、libtinfo.so.6.0かlibncursesw.so.6.0を

使ってlibtinfo.so.5のシンボリックリンクを作成すればイケるという情報を

得たので試してみる。

[手順]

1. /usr/lib 以下に libncursesw.so.6.0 があるか検索。

% ls /usr/lib | grep libncurs

libncurses++.so
libncurses++w.so
libncurses++w.so.6
libncurses++w.so.6.0
libncurses.so
libncursesw.so
libncursesw.so.6
libncursesw.so.6.0

2. 見つかったので /usr/lib 以下に移動。

% cd /usr/lib 

3. libtinfo.so.5 のシンボリックリンクを作成

% sudo ln -s libncursesw.so.6.0 libtinfo.so.5 

4. psc -h コマンドを実行してヘルプが表示されればok

[参考サイト]

ellks.blogspot.jp

libtinfo / Applications & Desktop Environments / Arch Linux Forums

github.com

qiita.com

[SOLVED] ncurses, readline update error / Newbie Corner / Arch Linux Forums

blog.ksswre.net

www.atmarkit.co.jp

 

Oisixの退会ユーザ向けの営業が鬱陶しい件について

本日は開発メモと関係ないネタを書きます。

あまりにも横柄な態度にムカついたので。

Oisixを最初に退会したのは既に2〜3年前で、

そこからサービス改善をしたのでまた利用

してもらえませんか?とのことで、再度、

利用したのが1年くらい前で半年ほど。

でも、指定した日付に食料が届かなかったり、

腐った商品が届いたことなどが続いて頭に来たので

退会フォームから定型発達の人にも分かりやすい

日本語で事細かになぜ退会に至ったのか?

という理由を書いて、一方的に届き続けるメール

も停止手続きをしたはずなのに、停止手続きを

した翌日から毎日一方的に届く営業メール。

これはスパム確定ですよね?

むしろ嫌がらせですか?というレベル。

停止手続きをしたのに毎日一方的に届くってのは

アカデミーヒルズも同じだけど。

普通、退会手続きをして、その理由を書いた日本語が

読める人間ならば、まずそこの改善をするのが

先だし、そもそももう二度と利用しません。って

書いてるのに、規定の金額以上の購入をしたら

利用できるクーポンを発行したり送料1ヶ月無料サービス

をつけたり、好きな商品を毎週3品選べるサービスを

押し付けてくるのは通常の人間の脳みそを持っている

とは思えない。

しかもそれには、削除されていたと思っていた

個人情報を使って、おいしっくすくらぶにまた入会

する必要がある。

だいたい、もしも利用したくないというのであれば

キャンセルしていただければ届きませんので。

って、おかしくないか?

それは退会と同時に削除されたと思っていた個人情報を

使ってログインした上に使いにくいUIでキャンセル

手続きをしないといけないってことだろ?

頭がおかしくないか?

図々しいにも程があるんですけど。

そもそも経営状態が悪化してるなら、そういう

悪どい手段を使わないで、とっとと潰れれば

いいのに。

潰れたくないなら、そんな姑息な手段を使って

営業しないで退会ユーザの意見を真摯に受け止める

って姿勢が大事なんじゃないの?

自分たちがいいと思ってるものは説明すれば分かって

もらえるって考え方がおこがましいと思う。

この期に及んでまた同じような営業電話をしてんのかよ?

っていう電話に出て、怒りが爆発してしまい、その後の

行動に大幅に影響が出てしまって予定がすっかり

狂ってしまった。

無駄な怒りは体調に直撃するので、嫌がらせは

止めて欲しい。まじで。

Win7(x64)のVMのCentOS7(x64)にibus-mozcを導入

CentOS7をミニマルからインストールして日本語入力

はFedora24でも使っていた、ibus-mozcを使いたいという

ことで導入した手順をメモ。

Virtualboxのバージョンは5.1系最新の5.1.8を使用。

日本語フォントを最初にインストールしておく。

$ sudo yum install ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts

[手順]

1. RPM Search でFedora19のibus-mozc関連のモジュールを検索してDL

ibus-mozc-1.10.1390.102-1.fc19.x86_64.rpm

mozc-1.10.1390.102-1.fc19.x86_64.rpm

protobuf-2.5.0-4.fc19.x86_64.rpm

zinnia-0.06-16.fc19.x86_64.rpm

zinnia-tomoe-0.06-16.fc19.x86_64.rpm

 2. DLした場所に移動して必ず以下の順番でインストール。

1) protobuf のインストール

$ sudo yum localinstall protobuf-2.5.0-4.fc19.x86_64.rpm

2) zinnia のインストール

$ sudo yum localinstall zinnia-0.06-16.fc19.x86_64.rpm

3) zinnia-tomoe のインストール

$ sudo yum localinstall zinnia-tomoe-0.06-16.fc19.x86_64.rpm

4) mozc のインストール

$ sudo yum localinstall mozc-1.10.1390.102-1.fc19.x86_64.rpm

5) ibus-mozc のインストール

$ sudo yum localinstall ibus-mozc-1.10.1390.102-1.fc19.x86_64.rpm

3. システム再起動。

$ reboot  または  GUIメニューから再起動 

4. GNOMEメニューのシステムツール - 設定より「地域と言語」アイコン

 をクリックして言語に「日本語」を選ぶとログアウトして再ログイン

 しろってメッセージが出るので従う。

5. 再ログイン後、入力ソースの追加で「日本語 (Mozc)」を選択して

 追加。

6. 入力切替は「スーパーキー(Windows)」+「Spaceキー」で行う。

7. 設定が完了するとメニューバーに追加される。

[参考サイト]

CentOS 7.0にibus-mozcをインストールする

○○的な気まぐれ日記 » Cent OS 7にibus-mozcをインストールする

RPM Search

qiita.com

 

VMのManjaro GNOME 16.10のtmpfsが100%になってたら

最近、自宅のほぼOfficeサーバ化してるMacbook Air

VirtualboxのManjaro GNOME 16.10にzsh

インストールしようとしたら、マウント位置が /tmp

のtmpfs以下が100%になってて容量不足で無理だった

ので、とりあえず1GB -> 2GBに増やしてみた手順を

メモ。

[手順]

1. 以下のコマンドを実行し/tmp 以下を2GBにしてみる。

# mount -o remount,size=2G,noatime /tmp

2. 1で増えたか確認。

% df -h

ファイルシス サイズ 使用 残り 使用% マウント位置

dev      999M       0     999M        0%    /dev

run                    1003M  968K   1002M       1%    /run

/dev/sda1              31G  6.5G        23G     23%    /

tmpfs                1003M    11M     992M       2%    /dev/shm

tmpfs                1003M        0     1003M      0%    /sys/fs/cgroup

tmpfs                   2.0G   1003M     1.1G    49%    /tmp   <--- ココ

tmpfs                  201M       48K     201M     1%    /run/user/1000 

※defaultサイズはRAMの半分。VMに割り当てた

  のが2048MBなので、その半分の1024MBしか

  なかった。

[参考サイト]

tmpfs full? / Newbie Corner / Arch Linux Forums

/tmpfs full?archlinuxhacks.wordpress.com