GNU/Linux >> Linux の 問題 >  >> Linux

プログラムを追跡しますか?

単純なプログラムをインストールするとき、それはしばしばmake && make installを使用します 多くの場合、アンインストールもありません ターゲット。

プログラムをアップグレードしたい場合、古いプログラムをシームレスに書き換えるだけだと想定するのは標準的なプロトコルですか?

これらのプログラムを追跡するにはどうすればよいですか。ほとんどの人は「解雇して忘れる」だけで、アンインストールがない場合は ターゲットが与えられているので、すべてを手動で削除する必要がありますか?

承認された回答:

各プログラムを専用のディレクトリツリーにインストールし、StowまたはXStowを使用して、すべてのプログラムを共通の階層に表示します。 Stowは、プログラム固有のディレクトリから共通ツリーへのシンボリックリンクを作成します。

詳細については、/usr/local/stowなどの最上位ディレクトリを選択してください。 。 /usr/local/stow/PROGRAM_NAMEの下に各プログラムをインストールします 。たとえば、実行可能ファイルを/usr/local/stow/PROGRAM_NAME/binにインストールするように調整します。 、/usr/local/stow/man/man1のmanページ 等々。プログラムがautoconfを使用している場合は、./configure --prefix /usr/local/stow/PROGRAM_NAMEを実行します。 。 make installを実行した後 、stowを実行します :

./configure --prefix /usr/local/stow/PROGRAM_NAME
make
sudo make install
cd /usr/local/stow
sudo stow PROGRAM_NAME

そして今、あなたはこれらのようなシンボリックリンクを持っているでしょう:

/usr/local/bin/foo -> ../stow/PROGRAM_NAME/bin/foo
/usr/local/man/man1/foo.1 -> ../../stow/PROGRAM_NAME/man/man1/foo.1
/usr/local/lib/foo -> ../stow/PROGRAM_NAME/lib/foo

stowの内容を一覧表示することで、インストールしたプログラムを簡単に追跡できます。 ディレクトリであり、ファイルがどのプログラムに属しているかは常にわかります。これは、そのプログラムのディレクトリの下にある場所へのシンボリックリンクであるためです。 stow -D PROGRAM_NAMEを実行してプログラムをアンインストールします 次に、プログラムのディレクトリを削除します。 stow -D PROGRAM_NAMEを実行すると、プログラムを一時的に使用できなくなります。 (stow PROGRAM_NAMEを実行します 再び利用できるようにします。

同じプログラムの異なるバージョンをすばやく切り替えることができるようにする場合は、/usr/local/stow/PROGRAM_NAME-VERSIONを使用します。 プログラムディレクトリとして。バージョン3からバージョン4にアップグレードするには、バージョン4をインストールしてから、stow -D PROGRAM_NAME-3; stow PROGRAM_NAME-4

古いバージョンのStowは、この回答で説明した基本をはるかに超えていません。新しいバージョン、およびXStow(最近は保守されていません)には、特定のファイルを無視する機能などのより高度な機能があり、stowディレクトリ外の既存のシンボリックリンク(man -> share/man )、いくつかの競合を自動的に処理します(2つのプログラムが同じファイルを提供する場合)。

関連:端末のタイトルを変更しますか?

ルートアクセスがない、または使用したくない場合は、ホームディレクトリの下にあるディレクトリを選択できます。 ~/software/stow 。この場合、~/software/binを追加します PATHへ 。 manの場合 マニュアルページは自動的に見つかりません。~/software/manを追加してください MANPATHに 。 ~/software/infoを追加します INFOPATHに 、~/software/lib/python PYTHONPATHに 、など必要に応じて。


Linux
  1. なぜCdはプログラムではないのですか?

  2. プログラムによってアクセスされるファイルを一覧表示しますか?

  3. プログラムのRAM使用量を測定しますか?

  1. Linux –サービスステータスを継続的に追跡しますか?

  2. バックエンドで Java プログラムを実行する

  3. Linux でのプログラムのアンインストール

  1. gdbを使用してLinuxでCプログラムをデバッグする方法

  2. Cプログラミング言語-はじめに

  3. ビンにプログラムを作成する