パッケージマネージャマネージャ

世の中にパッケージマネージャがたくさんあるけどそれぞれ微妙にコマンド違ってイライラするのでラッパー作りたい

  • 利用可能なパッケージを探す場合
# homebrew
brew search hoge
# rubygem
gem list -r hoge
gem list --remote hoge

gem search -r ってのもあるな...

  • インストール済みのパッケージ一覧
# homebrew
brew list
# rubygem
gem list
gem list --local
# cabal
cabal list --installed


同じパッケージマネージャでもバージョンによってちょっと違うとか
gemのアップデートには気をつけて : Verboseモードでいこう

# gem 1.3
sudo gem update --system
# gem 1.4 or later
sudo gem install rubygems-update
sudo update_rubygems

こういうのもハマる

仕様

brew のスタイルで他のパッケージマネージャをたたけるようにする

  • 書式
    • pmwrap [package manager] [subcommand]

例えば

metapm yum list 
 --> yum list installed [hoge]
metapm yum update
 --> yum update yum

こんな感じで、brew のコマンド知っていれば他のパッケージマネージャのコマンド調べなくても良いようにしたい
好き嫌いあるので、最終的には自分の普段使ってるパッケージマネージャとおんなじコマンドセットを選択できるようにする。無理ぽ

まぁひとまずこんな感じ

  • 使えるコマンド
    • パッケージのインストール:install
    • パッケージのアンインストール:remove
    • 利用可能なパッケージを探す:search
    • インストール済みのパッケージを表示:list
    • パッケージマネージャ自体のアップデート:update
    • インストール済みのパッケージをアップグレードする:upgrade
操作 brew yum apt
install brew install hoge yum install hoge apt-get install hoge
uninstall brew remove hoge yum remove hoge apt-get remove hoge
package を探す brew search hoge yum search hoge apt-cache search hoge
インストール済み package を表示 brew list hoge yum list installed hoge dpkg -l hoge
package manager のアップデート brew update yum update yum apt-get install update-manager-core
package のアップデート brew upgrade hoge yum update hoge apt-get update hoge

問題点

  • 他のパッケージマネージャにないコマンドの扱い
    • ないって教えて上げるくらいしかできない...
  • 全部サブコマンドならよいのだけど、そうじゃないとstyleとして使うのは難しい
    • apt とか
      • インストールは apt-get install
      • 一覧は dpkg -l
  • option を複数同時に指定したときの変換がややこしい
  • メンテがめんどくさい

結論:チートシートつくって満足するべき