Cygwinでコマンドラインからパッケージ管理をするで紹介したapt-cyg
ですが、
久しぶりに使ったらミラーサイトで必要なsetupファイルが
見つからないと言ったエラーが出たのでその対処について。
apt-cygの修正
以前設定したままapt-cyg
してみると
$ apt-cyg find vim
Working directory is /setup
Mirror is http://ftp.jaist.ac.jp/pub/cygwin/
--2013-08-08 xx:xx:xx-- http://ftp.jaist.ac.jp/pub/cygwin//setup.bz2
Resolving ftp.jaist.ac.jp (ftp.jaist.ac.jp)... 150.65.7.130
Connecting to ftp.jaist.ac.jp (ftp.jaist.ac.jp)|150.65.7.130|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2013-08-08 xx:xx:xx-- ERROR 404: Not Found.
--2013-08-08 xx:xx:xx-- http://ftp.jaist.ac.jp/pub/cygwin//setup.ini
Resolving ftp.jaist.ac.jp (ftp.jaist.ac.jp)... 150.65.7.130
Connecting to ftp.jaist.ac.jp (ftp.jaist.ac.jp)|150.65.7.130|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2013-08-08 xx:xx:xx ERROR 404: Not Found.
Error updating setup.ini, reverting
...
のようにsetupファイルが無いと言われて情報が更新出来ません。
$ apt-cyg update -m http://ftp.jaist.ac.jp/pub/cygwin/
の様にしてみても同じ。
http://ftp.jaist.ac.jp/pub/cygwin/
のサイトをブラウザで見てみると、x86
、x86_64
と言うディレクトリがあり、
それぞれの下にsetupファイルがあることがわかります。
手元にある32bit Windowsマシンで試しに
$ apt-cyg update -m http://ftp.jaist.ac.jp/pub/cygwin/x86
としてみるとちゃんと設定出来た様子。 ただ、この状態で
$ apt-cyg -u remove git
$ apt-cyg -u install git
等としてみると、
$ apt-cyg -u install git
...
--2013-xx-xx xx:xx:xx-- http://ftp.jaist.ac.jp/pub/cygwin/x86/x86/release/git/git-1.7.9-1.tar.bz2
...
HTTP request sent, awaiting response... 404 Not Found
...
MD5 sum did not match, exiting
となり失敗します。
setup.ini等から得る各パッケージパス情報の中に、x86
の部分が入ってしまっているため、
ミラーサイト名にx86
までいれてしまうと余計に入ってしまてパッケージへのパスが間違ってる様。
仕方ないのでapt-cyg
自体を書き換えてみました。
追記: 2013/08/13
上のGitHubの修正版をにアップデートしました。 新しいものでは最後にx86等指定する必要がありませんので、 今までのapt-cygと完全に同じ様に使えます。
ちなみに、apt-cygのページをもう一度良く見てみたら、
gitHubにレポジトリが作られた様です:
transcode-open/apt-cyg。
16日程前なので、恐らくその頃にこの問題が起こって指摘されて、
勝手に改造して使って、となったのでしょうか?
せっかく見つけたので、何も考えずにpull requestしてみましたが、
数日前にすでに他の人が出してたので取り下げました。(ちゃんと見ないと駄目ですね :sweat: )
数日放置されてるので、どうなるんでしょう?(pull requestされてる内容自体は指摘されてる様にもう1つ書き換える必要がありますが。)
正直に、これ見て、uname
で自動で決めちゃえば良いか、と気づいてのアップデートです。
追記ここまで
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
|
ミラーサイトの情報が/etc/setup/last-mirror
に書かれている様なので、
これに加えて/etc/setup/last-arch
でアーキテクチャ情報を管理するようにしています。
ひと通りミラーサイトを見たところ、見た限りすべてx86
、x86_64
というディレクトリを
持っているので、-m
でミラーサイトを指定するときに、最後にかならず
x86
かx86_64
を入れるようにし、
それらの情報をサイト情報とは分けて保存しておくようにしてあります。