やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

パッケージ管理システムについて調べてみた

パッケージ管理システムについて調べてみた。

対象環境

パッケージ管理システム

パッケージ管理システムとは、ソフトウェアの導入、削除、依存関係を管理するシステムである。

wikipedia

apt-get

以前sudo apt-get install (パッケージ名)コマンドでアプリケーションをインストールした。

このapt-getは、LinuxディストリビューションであるDebianのパッケージ管理システムである。

意味 コマンド
インストール sudo apt-get install (パッケージ名)
アンインストール sudo apt-get remove (パッケージ名)
アンインストール(設定ファイルも) sudo apt-get --purge remove (パッケージ名)

ターミナルを起動し、sudo apt-get install (パッケージ名)コマンドを実行するとインストールできてしまう。sudo (パッケージ名)で実行できる。

インストールしたもの

ちなみに、私がこれまでインストールしたものは以下の通り。

種類 名前 実行例 説明
スクリーンキャプチャ scrot scrot -b -u -d 10 10秒後にアクティブウインドウを撮影する。
スクリーンキャプチャ raspi2png raspi2png 直後に全体を撮影する。
パーティションGUI gparted sudo gparted GUIが起動する。

dpkg -L

インストールしたパッケージの情報を取得する。

コマンド 説明
インストールしたパッケージを表示する dpkg -l
インストールディレクトリを表示する dpkg -L (パッケージ名)

Windows XP時代のインストールとは雲泥の差

パッケージ管理システムがどれだけすばらしいか。WindowsXPのときと比べたら一目瞭然、圧倒的である。

もうWindowsXPのように以下のような手続きを踏まなくても良い。嬉しすぎる。

  1. ブラウザ起動
  2. サーチエンジンで検索する
  3. サイトを閲覧する
  4. ダウンロードリンクを探す(文字検索、目視)
  5. 圧縮ファイルをダウンロードする
  6. 解凍ツールで解凍する
    1. 対応する解凍ツールをダウンロードする
    2. パスを決める
    3. パスを入力する
  7. ファイラで解凍したファイルにアクセスする
  8. インストーラを実行する
    1. 画面にしたがってインストールを進める
      1. 利用規約を確認する
      2. バンドルで別アプリがこっそりインストールさせられないか血眼になって探す
      3. パスを入力する
      4. インストール内容を決める
      5. ショートカットなどの作成是非を決める
  9. 実行する
    • 以下のどれかで実行する
      • デスクトップのショートカット
      • スタートメニュー
      • インストールパスのexe

改めて振り返ると、無駄や邪魔が多すぎる。

苦しみからの解放

膨大な無駄

  • ブラウザやサイトは重くなる一方。低スペックマシンでは辛いので起動したくない。しかし、他にダウンロードする手立てはない
  • 圧縮ファイルは種類が多い。対応ツールを調べてインストールなどの手間と知識が必要
  • 自動化できない。目視で探したり、GUIによる手動の操作など、人力が多すぎる。

インストーラの表示や入力などはアプリケーションによって違い、統一性はなかった。日本語だったり英語だったり全画面表示だったりウインドウ表示だったり…。画面キャプチャをとって手順を示さねば間違えたり再現できないような複雑なものまであった。

アプリケーションごとにいちいち翻弄される印象。

ポンコツ

Windowsインストーラが壊れてインストールできなくなることが何度かあった。そのたびにWindowsインストーラをインストールし、修復する必要があった。

アンインストールができないことがあった

アンインストールができないことがあった。削除もまともにできないのかと呆れた。

エラーが出たりして削除できない。別途、ツールをインストールして強制アンインストールするなどの手間が必要だった。

「コントロールパネル」の「プログラムの追加と削除」で削除できない。アプリケーションごとに「アンインストーラ」が用意されていたり、なかったりなど、統一性もない。

依存関係は手動で解決

apt-getのすばらしいところは、依存関係を解決してくれるところ。必要なライブラリなども自動で取得してくれる。以前、WindowsXPで、curlをダウンロードしたとき、必要なopensslなどの各種ライブラリを手動で集めねばならなかった。WindowsXPで動作するバイナリを探すのも大変だった。もうそんな馬鹿馬鹿しい苦労をせずに済みそう。

また、たまにインストール順序によって動作しないものもあった。しかもMicrosoft製。詳しくは忘れたがプログラミング関係のソフトウェアだった。依存関係は自力で解決せねばならなかった。

ユーザに不利益をあたえるシステム

GoogleChromeJWordなど、お呼びでないのにこっそりインストールさせようとする罠まである。しかもそれがマルウェア、スパムウェアだったりする。

利便性がどうこう言う以前のレベル。ミスや設計不良でもなく、意図的に作り込んだものだから悪質。しかも見づらいところにデフォルトでインストールするようにチェックボックスを用意してあったりする。表示しているので責任逃れの言い訳もできる手の込みよう。自分が利益を得るためにユーザを騙し、不利益を与えるシステム。最低最悪すぎて、空いた口がふさがらない。

力のいれどころを見ただけで不信感に満ちる。関係者をみると「こういうことをする人たちなんだな」と思う。人間不信になれる。

アンインストールの手間が生じる。しかもマルウェアなどの場合、アンインストールが一筋縄ではいかないため、無駄に時間と労力を削られる。

似て非なるもの

git clonenuget installchoco installのようなコマンドと似ている。しかし、それらはOSレベルのものではなく、あくまでサードパーティ製のアプリケーションに過ぎない。

所感

WindowsXPでは数々の苦痛があったと振り返れた。まさに情弱ならではの記事。やってみた結果、やられてしまった思い出の数々。

WindowsXPからLinuxに移行したとき、最初に感動するのは、このパッケージ管理システムに違いない。これだけでもうWindowsには戻りたくないと思えるほど。

もうパッケージ管理システム無しでは生きていけない。まだ大して使ってないけど。