Hatena::ブログ(Diary)

=== SANDmark 19106 === beginning stress test このページをアンテナに追加 RSSフィード

2014年01月16日

apt-cygでLinuxライクにパッケージをインストールしてみる その2

”前の記事”から随分経ちまして、Cygwin近辺もいろいろと環境やら提供パッケージが変わってきているようです。調べたわけではないのでそんな気がするだけですが。
大きな変化として、apt-cygが気付いたら使えなくなっていたというものがありました。コマンドを叩いても

$ apt-cyg update -m http://ftp.jaist.ac.jp/pub/cygwin
Working directory is /setup
Mirror is http://ftp.jaist.ac.jp/pub/cygwin
--2014-01-16 15:02:08--  http://ftp.jaist.ac.jp/pub/cygwin/setup.bz2
ftp.jaist.ac.jp をDNSに問いあわせています... 150.65.7.130
ftp.jaist.ac.jp|150.65.7.130|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 Not Found
2014-01-16 15:02:08 エラー 404: Not Found。

--2014-01-16 15:02:08--  http://ftp.jaist.ac.jp/pub/cygwin/setup.ini
ftp.jaist.ac.jp をDNSに問いあわせています... 150.65.7.130
ftp.jaist.ac.jp|150.65.7.130|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 Not Found
2014-01-16 15:02:08 エラー 404: Not Found。

Error updating setup.ini, reverting

の一点張りで、たまにCygwinを起動してはちょこっと作業するだけのライトユーザーにとってはもうわけわからん事態。原因はCygwin本体の64bit対応だったようで、それに合わせてサーバの setup.ini が置いてあるディレクトリが変わっていたみたいです。今まで apt-cyg を使っていた人は

$ apt-cyg update -m http://ftp.jaist.ac.jp/pub/cygwin/x86/

としておけば大丈夫。多分。

Cygwin64bit環境の場合、おそらく公式の apt-cyg は正常に動作しません。まだCygwinの一部パッケージが32bit用しか用意されていなかったり、setup.iniの構成が変わったりしているので。githubではそれらが修正されたforkプロジェクトがあったりしますが、apt-cygの中の人がgithubに疎いっぽいので、pull requestが承認される日はかなり遠いと見ていい感じです。
…などなど、色々と手間が掛かりそうなので、私はとりあえずミラーサーバのURLを修正して、32bit版の現状維持に努めたいと思います。まる。

2012年11月12日

apt-cygでLinuxライクにパッケージをインストールしてみる

普段Linux(Ubuntu)で作業しているので、
Cygwin環境では新しくパッケージをインストールするために
いちいち setup.exe を実行しなきゃならんのが苦痛でした。*1

仕方なく ~/bin/setup なんていうリンクを張ってその場をしのいでいましたが、
ふとしたことからこんなものを見付けました。

後者は私の環境ではうまく動かなかったので、前者の apt-cyg を使ってみます。
名前的にけっこう紛らわしいんですが、コマンドの前方に "apt" が付いてるほうが
補完もしやすい(しかも慣れてる)ので、それをキーワードに。

apt-cygのプロジェクトホームにQuickStartが書いてありますが、ちょっとだけ補足。
Cygwin端末(zsh):

$ svn --force export http://apt-cyg.googlecode.com/svn/trunk/ /bin/
$ chmod +x /bin/apt-cyg

これで完了だと思っていたら、ミラーの解決に失敗して動作しませんでした。

--2012-11-13 01:34:33-- ftp://mirror.mcs.anl.gov/pub/cygwin/setup.ini
(試行: 3) => `.listing'
mirror.mcs.anl.gov (mirror.mcs.anl.gov)|146.137.96.7|:21 に接続しています... 失敗しました: Operation not permitted.
再試行しています。
...

これが延々と続いて一向に進む気配が無いので、
というか仮に繋がったとしてもDL速度が気になるので、
ミラーを日本国内にしてみます。
今回はjaistことJAIST 北陸先端科学技術大学院大学

$ apt-cyg update -m http://ftp.jaist.ac.jp/pub/cygwin/

これで setup.bz2 の場所を覚えてくれるので、
次回以降の呼び出しから自動的にjaistを使ってくれるみたいです。
あとは apt-* 系と同じで

$ apt-cyg install <package-name>

とすれば依存関係を解決してインストールまでやってくれます。
(ちなみにアンインストールinstall ではなく remove で、purgeはありません。)
普段から apt-* を使っている人なら

$ apt-cyg

とするとヘルプが表示されるので、それを見ながらフィーリングで何とか。

aptitude的な何かが欲しいともちょっとだけ思いましたが、
Cygwinに用意されているコマンドがそれほど多いわけでもないので、
apt-cyg find しながら頑張ってみます。

でもやっとsetup.exeから開放されたよ! やったねたえちゃん!

*1:だって検索しようとしても一文字ごとに反応するから遅いんだもの。

2012年11月03日

git-flowで辿る開発の道

お久しぶり過ぎました、sandmarkです。
趣味プログラマもここまで来ると芸術だなと思いつつ、
最後に(自力で)書いた記事がいつですか、半年以上前ですか。
継続は力なりって言うけれど、僕のように継続できない人間は弱っていくばかりですねー。

挨拶もそこそこに git のお話。
これもかなり前に知って衝撃を受けつつ記事にはしていなかったのですが、
git-flow というものがあるんですね。

これは git のプラグインとして働き、
git の長所であるブランチを最大限に活かしつつ、
かつ分散型の弱点である「中央(みんなから参照されるところ)にあるリポジトリのログを汚さない」
という点において、抜群の効力を発揮してくれます。

そもそも git は「多機能すぎてどういうスタイルがいいのかわからん」というのが
僕のような詳しくない人にとっては結構よくある感触だと思うんですね。
何となく dev ブランチ作って、 master にマージして、 push なり何なりする。

それが『その人のスタイル』として確立されていればいいのだけれど、
そうじゃない場合、自信が持てない上に誰かと作業するときに困る。
というわけで、フローチャートが必要なわけです。テンプレというか。

git-flow の主な流れは明確で、「ルールに従っていればそれでいい」というところがお気に入り。

  1. git flow feature start hello ("hello"という機能の実装を開始。 feature/hello ブランチが作成される)
  2. git flow feature finish hello ("hello"実装完了。 feature/hello ブランチは削除され、developブランチにマージされる)
  3. git flow release start 1.0.0 (リリース版1.0.0の準備を開始。 release/1.0.0 ブランチが作成される)
  4. git flow release finish 1.0.0 (リリースすると同時にタグの入力を求められる)
  5. git flow hotfix start 1.0.1-somefix (バグ修正も死角無し)
  6. git flow hotfix finish 1.0.1-somefix
  7. git push

なにこれちょうべんり。
これは単にブランチを作成→削除するだけではなく、
gitのFastForwardや履歴の管理までやってくれている(らしい)ので、
リポジトリが無駄に肥大化するのを防いでくれる役目もあります。

もちろん、非常に強いルールの上で動くものなので、
独自路線を行っている人には却って邪魔になるかも知れませんが。

何よりも、プラグインとして動いてくれるのが嬉しいところですね。
また、コンソールで動かすのならTAB補完は欠かせない、という人のために
no titleなんてものまで用意されています。

とても有名なプラグインなので、Google先生にお頼み申し上げれば資料がざっくざく出てくると思います。
僕はそもそも git に関して詳しくないので「便利ダナー」ということくらいしか感じられませんが、
案ずるより産むが易し、実際に手を動かして使ってみれば、それだけで感覚が掴めると思います。

git-flow公式にはCygwin用なども用意されているので
今更感が物凄いですが、資料や派生版も豊富なので、どうでしょう、騙されたと思って使ってみては。

(github-flowというのもあるらしいので、良さそうなら近々試してみるつもりでいます。)