Cygwin用のパッケージマネージャをつくりました。

nobuyo/medy

medy - [Beta]package manager for cygwin

medyという名前はHomebrewみたいにパッケージを何かに例えて作ろうと思ったときに薬が思い浮かんだからです。あとハイフン付きの本家よりターミナルで打ちやすい。

有名なapt-cygやcyg-fastといったスクリプトをベースに、自分が使いたい機能を追加してみました。今のところ、本家にない機能としては次の通り。

  • 各パッケージの情報を表示する
  • パッケージの更新を確認してインストールしなおす
  • 申し訳程度のサジェスト(typoのパターンをハードコードしている)

導入

パスの通った場所に置いてchmod +xしてください。 またはリポジトリをgit cloneして、リポジトリ内でmake deployすると準備ができるはずです。 本体にも自分でオリジナルを引っ張る機能がついてるのでお好きな方法で行ってください。

使い方

本家と基本的には同じ。一部のみ取り上げます。

medy upgradeについて

パッケージのアップグレードを行う場合、引数の有無によって挙動が異なります。 次のような場合は現状のインストール済みパッケージすべてをチェックし、続行するかをユーザーに問い合わせた上で差分があるものについてすべて削除&再インストールを試みます。

$ medy upgrade #upgrade all packages which has upgrade

次のように引数にパッケージ名が与えられた場合はそのパッケージについてのみ差分をチェックします。

$ medy upgrade nano #upgrade nano

複数与えられた場合はそれらすべてに対して行います。

$ medy upgrade nano zsh #upgrade nano, zsh

差分のチェックのみ行いたい場合は次のどちらかのオプションを付与してください。 ドライランは現状upgradeにのみ効力を発揮するオプションです。

$ medy upgrade (-n|--dry-run)

medy infoについて

パッケージの情報を取得して表示するサブコマンドです。 現状引数が2つ以上与えられると無視されます。

$ medy info ruby perl #=> rubyのみ表示

また、引数にパッケージが与えられなかった場合はmedy本体の情報としてミラーサーバー、キャッシュディレクトリ、およびバージョン情報を表示して終了します。

$ medy info #=> info of medy

その他用意されているコマンドやオプションの一覧はGitHub上のREADMEまたはコマンドが提供するヘルプ(medy help)をご利用ください。バグ報告などご協力いただける場合はGitHub issueへお願いします。