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


8

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

github-projectを複製して自分でビルドするか、nodejsパッケージマネージャーnpmを使用して、aptを使用してインストールするか、手動でインストールできます。私はこれに苦労し、すべてのcoffeescript関連のファイルと手動で投げ捨てた後、私はなんとか新規インストールを行うことができました。しかし、私はnodejs 0.6および0.4がインストールされている必要があるcoffeescriptコマンドを使用したいと思いました。

だから、再びゲームを始めましょう!

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

最初にどのようにインストールされたのか本当にわからない場合に、インストールされたソフトウェアを更新する簡単な方法はあるのでしょうか。ここでの最善のアプローチは何ですか?


2
イムホ、そもそもこの状態に入らないことが最善のアプローチです。すべてのソフトウェアをパッケージ化する必要があるか、インストールしないでください。必要な場合は、自分でパッケージを作成してください。次に、これらを内部パッケージサーバーに配置します。
Sirex

回答:


7

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

下のファイルを置いてはいけません/bin/lib/sbinまたは/usrを除いて、/usr/localパッケージマネージャを経由せず、。

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

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

手動でインストールするプログラムには、stowまたはxstow使用してください

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


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

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

1

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

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

リンクを参照できます


リンクをありがとう!しかし、コマンドラインに何かが必要です。一見すると、パペットはデスクトップシステムでのみ機能します。
acme

1

apt-getを使用してパッケージをインストールする場合、apt-getはすべての依存関係を解決するため、すべての依存パッケージは単独でインストールされます。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.