Cygwin cyg-fast でyum やapt-get のように簡単にパッケージを管理

cyg-fast イメージ画像
Cygwin 関連のキーワードでサイトが上位に表示されているようなので、またCygwin の記事です。apt-cyg をフォークしたcyg-fast について。

Cygwin でのパッケージ管理

Cygwin のsetup.exe を使わずに、yum のようにパッケージを管理するには apt-cyg を利用すると便利です。apt-cyg については、「Cygwin apt-cyg でyum、apt-get のようにパッケージを管理」でも紹介しています。

cyg-fast とは

環境次第ですが、apt-cyg は少し動作がもっさりしています。この apt-cyg の速度の問題を改善するために開発されたのが cyg-fast です。lambdaliceさんにより開発されたパッケージでlambdalice/cyg-fast から入手することができます。
https://github.com/lambdalice/cyg-fast

cyg-fast のインストール

apt-cyg または、setup.exe でcyg-fast の動作に必要なパッケージをCygwin に導入します。

aria2
tar
gawk

apt-cyg が導入済みであれば、

$ apt-cyg install aria2

のようにパッケージをインストールできます。

必要な環境が整ったら、cyg-fast をダウンロードして、bin 以下に設置してパーミッションを変更します。

$ wget https://github.com/lambdalice/cyg-fast/archive/master.zip
$ unzip master.zip
$ mv /tmp/cyg-fast-master/cyg-fast /bin
$ chmod -x /bin/cyg-fast-master/cyg-fast

これでcyg-fast が利用できる状態になります。

cyg-fast の使い方

cyg-fast の使い方は、apt-cyg と同じですが、cyg-fast は resume-install、pathof を指定することができることと、使えるオプションが増えています。

$ cyg-fast --help
cyg-fast: Installs and removes Cygwin packages.
  "cyg-fast install <package names>" to install packages
  "cyg-fast resume-install" to resume interrupted installing
  "cyg-fast remove <package names>" to remove packages
  "cyg-fast update" to update setup.ini
  "cyg-fast show" to show installed packages
  "cyg-fast find <patterns>" to find packages matching patterns
  "cyg-fast describe <patterns>" to describe packages matching patterns
  "cyg-fast packageof <commands or files>" to locate parent packages
  "cyg-fast pathof <cache|mirror|mirrordir|cache/mirrordir|setup.ini>"
                                                          to show path
  "cyg-fast upgrade-self" to upgrade cyg-fast
Options:
  --charch <arch>          : change archetecture
  --use-setuprc            : set cache and mirror with /etc/setup/setup.rc
  --ignore-case, -i        : ignore case distinctions for <patterns>
  --no-file-alloc, -n      : doesn't allocate file space before downloading
  --force                  : force install/remove/fetch trustedkeys
  --mirror, -m <url>       : set mirror
  --cache, -c <dir>        : set cache
  --file, -f <file>        : read package names from file
  --max-connections <num>  : maximum number of connections
  --yes-to-all, -y         : force yes on ask prompts
  --help
  --version

cyg-fast と apt-cyg の速度比較

パッケージの検索スピードを元にcyg-fast と apt-cyg の速度を比較してみました。

bash だと cyg-fastの方が1.15秒ほど速いです

$ time apt-cyg find bash
real    0m3.592s
user    0m0.539s
sys     0m0.623s

$ time cyg-fast find bash

real    0m2.442s
user    0m0.632s
sys     0m0.651s

tarは cyg-fastの方が1.258秒ほど速いです

$ time apt-cyg find tar
real    0m6.548s
user    0m0.634s
sys     0m0.654s

$ time cyg-fast find tar
real    0m5.290s
user    0m0.584s
sys     0m0.790s

bind-utilsは cyg-fastの方が0.719秒ほど速いです

$ time apt-cyg find bind-utils
real    0m2.984s
user    0m0.556s
sys     0m0.411s

$ time cyg-fast find bind-utils
real    0m2.265s
user    0m0.571s
sys     0m0.726s

総じて cyg-fast の方が、apt-cyg よりも動作は速いようですが、そこまで違いがある訳でもないので、好みの問題のようです。東南アジア・タイのように回線が遅い環境だと、cyg-fast を利用した方がよさそうです。