web-dev-qa-db-ja.com

インストールされたソフトウェアを追跡する方法

時々、私は仕事中のテストサーバーの1つ(主にDebian)で実行されているソフトウェアを更新する必要があります。ほとんどの場合、私を本当に混乱させるのは、ソフトウェアをインストールする方法が1つだけではないという事実です。今日はCoffeescriptをアップグレードする必要がありました。私はそれが最初にどのようにインストールされたかを知りませんでした、そしてそれ故にそれを最良の方法で更新する方法を知りませんでした。

Aptを使用してインストールすることも、github-projectのクローンを作成して自分でビルドするか、nodejsパッケージマネージャーnpmを介して手動でインストールすることもできます。これに苦労し、コーヒースクリプトに関連するすべてのファイルとdirsを手動で破棄した後、なんとか新規インストールを実行できました。しかし、nodejs0.6と0.4がインストールされている必要があるcoffeescriptコマンドを使用したかったのです。

だから、ゲームを再開しましょう!

Nodejsは手動でインストールされましたか?またはパッケージとして?それとも神によってそこに置かれたのでしょうか?知りません。

それで、最初にどのようにインストールされたか本当にわからないときに、インストールされたソフトウェアを更新する簡単な戦略があるかどうかを自問しています。ここでの最良のアプローチは何ですか?

8
acme

従うべき簡単なルールがあり、ほとんどの場合を解決します。

/binを除いて、/lib/sbin/usr、または/usr/localの下にファイルを置かないでください。マネージャー。

このように、ファイルがパッケージマネージャーによって管理されている領域にある場合、そのファイルはパッケージからのものであることがわかります。そうでない場合は、手動でインストールしたことがわかります。

可能な限り、ディストリビューションが提供するパッケージに固執する必要があります。ディストリビューションで提供されていない機能の必要性が文書化されている場合にのみ、サードパーティのパッケージをインストールしてください。 「最新バージョンが欲しい」というのは正当な理由ではありません。サードパーティのパッケージをインストールする場合は、入手した場所をメモし、パッケージ(.rpmまたは.debファイル)をどこかにアーカイブします。ランダムなWebダウンロードに対する特権aptまたはyumソース。

stowまたはxstowを使用 手動でインストールするプログラムの場合。

etckeeper から /etcをバージョン管理下に置く を使用します。意味のあるメッセージを添えて、変更を加えるたびにコミットします。


あなたが物事を汚い方法でやった状況に遭遇し、ソフトウェアの一部がどこから来たのか見失った場合:

  • 上記のアドバイスに従って、そのソフトウェアのクリーンバージョンを適切な場所にインストールします。
  • 新しいインストールが意図した目的で機能することをテストします。
  • 新しいインストールを使用するには、サービスを切り替えてください。
  • できる限り古いインストールをクリーンアップします。

Linuxにインストールされているソフトウェアを追跡するには、puppetを使用することをお勧めします。

* nixシステムの自動管理エンジンであるPuppetは、一元化された仕様に基づいて管理タスク(ユーザーの追加、パッケージのインストール、サーバー構成の更新など)を実行します。

リンク を参照できます

1
Mughil

Apt-getを使用してパッケージをインストールすると、apt-getがすべての依存関係を解決するため、すべての依存パッケージが自動的にインストールされます。

私の場合、Ubuntuリポジトリにパッケージが存在する限り、apt-getを使用してコマンドラインですべてのパッケージをインストールしようとしています。リポジトリに存在しない場合は、そのユーティリティのインストールマニュアルを読み、ユーティリティがMakefileを使用しているかどうかに基づいてインストールする必要があります。

1
pradeepchhetri