Cygwin上Linuxのapt-get
コマンドの様にパッケージが管理できるapt-cyg
を入れてみました。
追記: 2013/08/08
Cygwinのミラーサイト構造が変わったらしく、オリジナルのapt-cygがそのままだと 機能しなくなりました。
以下のページで対応と、apt-cygを新しい構造に対応させたものを公開してます: apt-cygでsetup.iniが404 Not Foundになった
追記ここまで
apt-cygに必要な物
apt-cyg
を使うために
- wget
- tar
- bzip2
- gawk
をインストールしてある必要があります。
これらをインストールしてない場合はcygwinのsetup.exe
を使ってインストールするか
直接これらをインストールする必要があります。
必須ではありませんが、apt-cyg
本体をインストールするためにsvnも
インストールしておいた方が便利です。
apt-cygのインストール
公式に従い
$ svn --force export http://apt-cyg.googlecode.com/svn/trunk/ /bin/
$ chmod 755 /bin/apt-cyg
でOK。
svnをインストールしてない場合は直接apt-cygスクリプトをダウンロードするなりコピーするなりして/bin/
へ。
apt-cygを使ってみる
大体のコマンドはapt-get
等と同じです。
とりあえずパッケージリストのupdateしてみます。
$ apt-cyg update
...
Resolving mirror.msc.anl.gov (mirror.msc.anl.gov)... failed: hostname nor servname provided, or not known.
wget: unable to resolve host address `mirror.msc.anl.gov'
Error updating setup.ini, reverting
ミラーサイトに接続できていない、と出ます。
そこでcygwinのミラーサイトリスト から適当な物(なるべく近いところ)を選んで来て
$ apt-cyg update -m http://ftp.jaist.ac.jp/pub/cygwin/
として繋がるかどうか試してみます。
同じ様にError updating setup.ini, reverting
が出る場合は
別のところを探します。
(上のmirror.msc.anl.gov
もこの日は繋がらなかったんですが後日繋がりました。)
追記: 2013/08/08
久々にapt-cygしたら
...
--2013-xx-xx xx:xx:xx-- http://ftp.jaist.ac.jp/pub/cygwin//setup.ini
...
HTTP request sent, awaiting response... 404 Not Found
と言った様なエラーが出てサイトを指定し直す必要がありました。 これについてはこちらに書いておきました: apt-cygでsetup.iniが404 Not Foundになった
追記ここまで
-m
オプションでミラーサイトを指定する方法はinstall
等の時にも有効で、
一度指定すると、その後指定がない限り同じサイトが使われます。
上のサイトでつながったので、色々インストールしたりしたいのですが、
今回は元々gitのバージョンを上げたいためにapt-cyg
を入れてみました
1。
apt-cyg
にはupdagrade
が無いので、新しくしたい場合はどうすれば良いか
分からなかったので、取り敢えずinstall
してみます。
$ apt-cyg install git
...
Package git is already installed, skipping
やはりスキップされる様です。 仕方ないので一度消して、再インストール。
$ apt-cyg remove git
$ apt-cyg install git
...
Found pacakge git
**************** http://ftp.jaist.ac.jp/pub/cygwin/release/git/git-1.7.9-1.tar.bz2
...
Package git installed
と、残念ながらまだcygwinの中のバージョンは1.7.9.1のままなので 再インストールしても意味なし… (ミラーサイトを直接見れば分かることですが…)
結局ミラーサイトから落としてくるだけなので、
インストール出来る物はsetup.exe
で出来る物と一緒ですが、
cygwinのsetup.exe
はやたら重い(特にパッケージリストで検索するとやたら遅い)
のでぱっと新しい物を入れたいときにはとても便利だと思いました。
というわけで、今回はapt-cyg
を使ってみた、というだけで、git自体は直接入れる
事にしました。
apt-cygのまとめ
一応コマンドのまとめ:
apt-cyg update
: パッケージリスト(setup.ini)をアップデート。apt-cyg install package
: packageをインストール。apt-cyg remove package
: packageをアンインストール。apt-cyg show
: インストールされてるpackage一覧。apt-cyg find <patterns>
: <patterns>を含むpackageを検索(ミラーサイトにあるか、 及びインストールされているかについて)。apt-cyg describe <patterns>
: <patterns>を含むpackageの詳細を表示。apt-cyg packageof <commands or files>
: 与えたcommandsやfilesを含むパッケージを表示。
upgrade
が無いので、もしミラーサイト側が新しくなっていたら
remove
してinstall
しなおす必要がある(のだと思う)。
apt-cygのオプション:
- –mirror, -m <url> : ミラーサイトを指定(以後このサイトを使う)。
- –chache, -c <dir> : キャシュディレクトリを指定(デフォルト
/setup
、Windows的にはC:\cygwin\setup))。 - –file, -f <file> : パッケージの名前をファイルから読み込む。
- –noupdate, -u : setup.iniをアップデートしない(付けないとinstall時とか毎回アップデートをまず行う)。
- –help : ヘルプの表示
- –version : バージョンの表示。
apt-cyg以外のツール
apt-cygはシェルスクリプトで出来たツールですが、これ以外に
といった物があるようです。 (やることは主にミラーサイトからインストールすることなのでどれでも好きな物をで良いと思います。)