2008年12月02日(Tue) Vog! [長年日記]
● 今日のVogはすごい。きっとVogosphereより空気が悪いよ。
● やることツリー
昨日ちょっと立ち寄った手芸用品屋さんでクリスマスツリーのちっちゃいのを安く売ってたので買ってきてみた。その日にやるべき事を飾ってみることにする。略してやる木…失礼しました。
● [memo] Ubuntuマシンのいっぱいになってしまった/bootを掃除する
ちょっとだけ書いたら znzさんにツッコミをいただいた。 いつもありがとうございます。 甘えてちゃいけないなあ、と思いつつ甘えさせていただいてます。
というわけで掃除してみました。まずはインストールされているパッケージの確認。
いっぱい入ってるなあ。 しかしずーっとリブートしてないので古いkernelで動いてそう。
使ってないkernelがたっくさん。ちなみに/bootはほんとに満杯。
すべてのパッケージがちゃんとインストールできたのか確認してみる。 dpkg-query -sでいいのかな?
最新のカーネルもちゃんとインストールできているように見える。
再起動してみよう…って/boot/grub/menu.lstに2.6.24-12しかありません。 Ubuntuの流儀としてはどう書き換えるのが正しいのかな。
って変わってないじゃん。うーん…手でいじっちゃうか。
:%s/-12-/-22-/gしてみた。再起動。 キーボードもディスプレイも無いマシンなので不安ですが。
あー。別の端末でmuttを走らせっぱなしでした。
さて再起動したかな。
えええええ?httpdもUPSのモニターも動いてるちゅうのに… と思ったらしばらくしてsshで入れるようになりました。ほっと一息。
今度はupdate-grubも期待通りに働いてくれたのかな。 あるいはさっきと同じでmenu.lstには手を付けなかったか。
これで古いカーネルが消せるようになりました。
ここでインタラクティブに。 「A new version of /boot/grub/menu.lst is available, but the version installed currently has been locally modified.」うーん。 install_newにしてみましょう。
「gzip: stdout: No space left on device」とか言われたけれど、 古いkernelは無事に消えたのかな。 menu.lstには今度は残ってるkernelすべてが書かれてました。 デフォルトはたぶん2.6.24-22。
もう少し消しておきましょう。
いやそれじゃkernel無くなるし。 もう一度古いのを消してみよう。
難しいことになってまいりました。エラーメッセージに従ってtouchしてみよう。
最後まで進んだみたい。
これはすんなり終わったみたい。
なんだか2.6.24-12のinitrdが残ってますが。消しちゃっていいかな。
入ってるkernerlのinitrdの.bakファイルはとりあえず置いておこう。
● お。自宅マシンへのsshトンネルもちゃんと掘られてる。どうやってたんだっけ…(おいおい
● Momonga 4とMomonga 5で同じ/homeを共有する
uidとgidが少しだけ違うのでファイルの所有者がおかしなことになってしまった。vipwとvigrでIDの数値を合わせたあとfindとchgrpで直したと思ったがまだ書けない。restorecon -R /homeしてみている。やれやれ。
● [git] git pullとgit push
今日の発見(?)
githubにpushする元になった(git remote add originした)レポジトリではgit pushできるけれども、 そのままgit pullしようとすると、
と言われる。開発日記によれば、
のように操作すればできるようになりそう。 ひととおりマニュアルを読んでから必要そうなら試してみよう。
いっぽう、git cloneしたレポジトリでは、git pullもgit pushも期待通りできる。
● [git] ブランチしてみる
TaskJugglerが、KDEやQtの新しすぎるMomonga 5では作れなさそうなので、 とりあえずMomonga 4用に作ることにした。そういうわけでbranch。
これで作業を続ければいいのかな。
ブランチしただけではpushできないみたいだ。
● [git] ブランチをpushする
Momonga 5ではあれだけ苦労して作れなかったTaskJugglerが Momonga 4では一応できた。 そういうわけでこの変更をgithubにpushしておきたい。
おや? Gitユーザマニュアル に何か書いてありそうなのでそこまで読んでみようか。 ちなみにこのマニュアルは1.5.3以降用なのだけれど手元のは1.5.2.3なのでした。 すみませーん。
公開リポジトリへ変更を送信するによると、「git push URL master:master」で手元のmasterブランチをリモートのmasterブランチに反映するのかな。
うまくいったのかな?githubのサイトを見ると、確かに Momonga4ブランチ ができている。
しかしURLを手打ちしなくちゃいけないのは何か間違えてる気もするな。
(追記) 一度リモートのブランチとの対応ができてしまったら、 次のpushは期待通りやってくれるようだ。
● [git] Gitユーザマニュアル - コミットの方法
git pushの項までに読んだ大切そうなことをまとめておく。
gitは
コミットしたいものの追跡を保つ為、"索引(index)"と呼ばれる特別なエリア内にツリーの中身のスナップショットを保管しています。
- git add
- 変更したことをgit(索引)に伝える
- git diff --cached
- HEADと索引の間の差分。commitを実行した時に記録される内容
- git diff
- 索引と作業ディレクトリの間の差分。commitを実行した時には記録されない
- git diff HEAD
- HEADと作業ディレクトリの間の差分
- git status
- 上記のいろいろなdiffのサマリ
CVSやsubversionには索引という概念が無かったのが違和感の原因かな。
コミットメッセージは、
行の短文(50文字未満)で変更のサマリを書き、その後に空白行を挟んで、最後により綿密な記述をまとめる。そうすることで、例えばコミットした内容を E-Mail に変更するツールにて、 Subjectに最初の行を使用し、残りの行を本文にすることができます。
吉岡さんが「Rebase Early, Rebase Often」と書かれているgit-rebaseと、ブランチをpullしてくるらしいgit-fetchについてはまた今度。
● というわけでMomonga 4で作れるTaskjugllerができました。Momonga 4だけど。いまさらガント図だけど。githubからどうぞ。
最近のツッコまれどころ