Linuxシステムにインストールされているすべてのパッケージをインポートするための標準的な方法を探していますが、配備に依存しないようにしたいと思います。
私は少し見つけました。非常に いいね 回答以下はDebian / Ubuntu、Fedora / CentOSなどのいくつかの特定のディストリビューションですが、ディストリビューションとは独立した方法でこの情報を取得することは成功しませんでした。
/opt
私の最初のオプションは次のとおりです。またはなど、特定の場所にあるすべてのディレクトリを一覧表示します/usr/bin
。ただし、この方法では、インストールされているバージョンに関する情報はありません。最良の場合は、インストールされているパッケージの名前などを取得できます。
いくつかの背景:
IPアドレスとポートのリスト(スプレッドシート)があり、各システムにSSH経由でインストールされているパッケージとそのバージョンをインポートする必要がありますが、展開は大きく異なる場合があります。
これはワンタイムですが、今後別のスプレッドシートが表示される予定なので、同じソリューションを複数回使用します。
スプレッドシートのコンピュータの一部を知っていて、顧客の情報に基づいて、リストがサーバー用であり、一部のデスクトップに固有のものであると推測できます。前に述べたように、ディストリビューションは大きく異なる可能性がありますが、私はUbuntu、Debian、CentOSシステムの多くを所有していても問題ありません。
デスクトップの場合、ほとんどはUbuntuといくつかのmacOSです。
役に立つ場合は、Bash、Python、またはPHPスクリプトを使用できます。
最初のバージョンでは、、などnpm
の言語固有のパッケージマネージャを無視することにしました。これらのパッケージはグローバルにインストールされます。rvm
composer
簡単に言えば、インストールされているすべてのパッケージ配布を独立して作成する標準的な方法はありますか?
答え1
今日、一部のディストリビューションではtar
「パッケージマネージャ」を使用しているため、まったくそうではありません。ただし、一般的/etc/issue
に問題のあるシステムのリリース名とバージョンを見て、いくつかの推論をすることができます。または、、、、、、yum
などup2date
のバイナリapt
がemerge
あるかどうかを簡単に確認できますpacman
。しかし、興味深いことに、Debian派生システムではこれが失敗する可能性があるため、誰かがそれを試してみることを決めて作業を始めました。brew
port
choco
yum
答え2
マシン/サーバー/ホストのオペレーティングシステムを確認してから、そのパッケージマネージャコマンドを使用して、パッケージ名を一覧表示するAnsible PlayBookを確実に開発できます。