RedHat 系 Linux のホスト名を設定する

Vagrant とかでたくさん VM 立ち上げるときホスト名設定しないと何が何だかわからなくなるのでシェルプロビジョニングには以下の様なコマンドセットを紛れ込ませています。

7 系

HOSTNAME=from
sudo hostname $HOSTNAME
echo $HOSTNAME | sudo tee /etc/hostname

6 系

HOSTNAME=from
sudo hostname $HOSTNAME
sudo sed -i -e "s/\\(HOSTNAME=\\).*$/\\1$HOSTNAME/g" /etc/sysconfig/network

vagrant teraterm が便利すぎてしょうがない件

Windows 使っていると vagrant up したあとに仮想マシンにアクセスするのにコマンドプロンプトのログに流れた SSH のフォワーディングポートを読んで、 vagrant が自動生成した秘密鍵を指定して Tera Term で接続して・・・っていう流れをやっていたんだけど、さすがに馬鹿らしくなってしまった。
Mac じゃないからコマンドプロンプトvagrant ssh するのも微妙だし・・・。

Vagrant 仮想マシンに接続する TeraTerm マクロを吐き出すプラグイン(Gem) を書いたわけです。
vagrant ssh-configTeraTermvagrant-ssh-config-ttl 初の Gem 製作。

しかしながらそれでも複数VM取り扱ったりするとやっぱり大変。
と思っていたら vagrant-teraterm という素晴らしいプラグインが開発されていました。

  1. tiibun/vagrant-teraterm
  2. Windows – VagrantにTeratermマクロで接続する – Qiita
  3. Vagrant Teraterm pluginを作ってみた – Qiita

インストール

いたって簡単、

vagrant plugin install vagrant-teraterm

設定

デフォルトのインストールパスに Tera Term がインストールされていればとくに設定はいりません。
vagrantteraterm プラグインがよしなにやってくれます。

使い方

vagrant up したら以下のようにすると自動的に TeraTerm が対象の VM に繋いでくれます。

vagrant teraterm

複数VM を立ち上げている場合

以下のように VM 名を指定してあげればいいです。

vagrant teraterm vm1

ちなみに、最初は vagrant teraterm する際にフィンガープリントの検証で引っかかっていたので、 StrictHostKeyChecking no に相当する /nosecuritywarning を孵化するPR 投げて取り込んでもらいました。嬉しい。

蛇足

最近 HashiCorp から Otto という Vagrant の後継となるソフトウェアがリリースされました。
以前は Chef をよく使っていたのですが、 Vagrantfile のシェルプロビジョニングがお手軽すぎてダメ人間になってしまっています。
そしてこれも秘伝のタレ化すると。
その秘伝のタレ化する Vagrantfile をなんとかしてくれるのが Otto らしいです。
これも早めにいじってみたいなあ。

  1. Otto by HashiCorp
  2. Otto – HashiCorp
  3. Hashicorp Ottoを読む | SOTA

Linux カーネルを読もうとするこれからの自分へのまとめ

Linux カーネル読むぞーって思ってたけどとりあえずクローンしたはいいけどこれどうしたらええんやろって思って 3 日坊主になってしまっていたので、最近カーネルの話をよく聞くようになったからまた性懲りもなく Linux カーネルをクローンしました。

カーネルの入手方法

まず Git 入れてます。

sudo apt-get -y install git
sudo yum -y install git

おもむろに The Linux Kernel Archives を訪れます。
おぉ、サイト全体 SSL 化されてるんだな。
こういうサイト最近増えたよね。
PROTOCOL のリンクを踏むと HTTP だったら RFC に飛ばされたりします。うーん感慨深い。

  1. www.ietf.org/rfc/rfc2616.txt

なんか前はトップにある Git のリポジトリの URL を指定してクローンすればよかったんだけど、

f:id:wnoguchi0727:20151031214758p:plain

なんにも考えずに

git clone https://git.kernel.org/

ってやったらそんなもんねーよ!って言われてしまった。

Cloning into 'git.kernel.org'...
fatal: repository 'https://git.kernel.org/' not found

このリンク https://git.kernel.org/ を素直に踏んでみると https://git.kernel.org/cgit/ に飛ばされました。
うお、めっちゃリポジトリたくさんある・・・。
いつの間にこんなに分裂したんだ・・・。

f:id:wnoguchi0727:20151031222610p:plain

分裂したわけではないのか、 以前は GitHub にミラーされてるリポジトリをクローンしたのかな。

ちなみにここに PR 送ると怒られます。
Git 開発自体のリポジトリも PR 送るとパッチの送り方読めって怒られて速攻クローズされます。

何はともあれ stable 版の Linux カーネルをクローンするには以下のようにします。

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

ビルド環境の整備

Debian

sudo apt-get -y install libncurses5-dev gcc make git exuberant-ctags bc

RedHat

sudo yum -y install gcc make git ctags ncurses-devel

カーネルのビルドは以下が詳しい。

その他

メーリングリスト

  1. VGER.KERNEL.ORG
  2. VGER.KERNEL.ORG – Majordomo info

メーリングリストはいっぱいあるが、ここでは linux-kernel に登録するようにしてみよう。
ちなみに登録するとめっちゃメールが届くので注意。

登録

majordomo@vger.kernel.org 宛に件名を空で以下のプレーンテキスト本文でメールを送信する。
配送遅延があることがあるので返事を気長に待とう。

subscribe linux-kernel

“Confirmation for subscribe linux-kernel” というタイトルの確認メールが来るので、
同様の宛先で、件名空の以下の様な本文の認証メールを送ればよい。

auth ******** subscribe linux-kernel あなたのメールアドレス@example.com

ちょっとして Welcome to linux-kernel という件名のメールが来れば晴れて登録完了である。
おめでとう。

解除

majordomo@vger.kernel.org 宛に件名を空で以下のプレーンテキスト本文でメールを送信する。
こっちに認証コードはない。 Succeeded. のメールが来ればこれで完了となる。

unsubscribe linux-kernel

RSS

Feedly あたりに以下を登録しておきましょう。

  1. https://www.kernel.org/feeds/all.atom.xml
  2. https://www.kernel.org/feeds/kdist.xml

Linux カーネルのトレーニングプログラム

  1. Linux Foundation Training – Home

蛇足

UNIX V6 のカーネルのコードリーディングの勉強会に参加してたんだけど、これも中途半端になってしまっていたので、プロフェッショナルといえるような UNIXカーネルの理解は深めておきたいな・・・。

参考リンク集

  1. The Linux Kernel Archives
  2. KernelBuild – Linux Kernel Newbies
  3. gitから任意のバージョンのLinuxカーネルのソースコードをチェックアウトするメモ – Plan9日記

書籍

詳解 Linuxカーネル 第3版

詳解 Linuxカーネル 第3版

はじめてのOSコードリーディング ~UNIX V6で学ぶカーネルのしくみ (Software Design plus)

はじめてのOSコードリーディング ~UNIX V6で学ぶカーネルのしくみ (Software Design plus)

目標体重 50 kg 台

最近太った?って多くの人から聞かれることが多くなった。
やはりわかってしまうらしい。
70 kg の大台を記録してしまったので、ダイエットせねば。

xz 形式で圧縮展開する(tar 使う版)

最近この拡張子なんだこれと思ってたんだけど 7z で使われている LZMA アルゴリズムLinux に採用されたものが xz 形式らしい。
GNU tar を使う場合 1.22 以降で使うことができる。
圧縮率も優秀で、展開もそれなりに高速らしい。
gzip と bzip2 のいいとこどりした感じっぽい。

圧縮

tar cvJf linux-stable.tar.xz linux-stable/

展開

tar xvJf linux-stable.tar.xz

参考リンク

  1. 逆引きUNIXコマンド/tar.xz形式ファイルを展開する – Linuxと過ごす
  2. xz (ファイルフォーマット) – Wikipedia)
  3. gzipの代わりにxzを使おう | Okumura’s Blog