![GCCカバレッジパッケージインストールバージョンの自己コンパイルバージョン[冗長]](https://linux33.com/image/3652/GCC%E3%82%AB%E3%83%90%E3%83%AC%E3%83%83%E3%82%B8%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AE%E8%87%AA%E5%B7%B1%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%5B%E5%86%97%E9%95%B7%5D.png)
私はほとんどのコーディングにDebianを使用しており、作業中のプログラムをコンパイルするために特定のバージョンのgccを必要とする宿題プロジェクトを進めています。
gccソースコードをダウンロードしてコンパイル/インストールしましたが、オプションを変更するのを忘れてしまったので、デフォルトの場所/usr/local/bin/gccにインストールされているとします。これを行ったとき、私は実際に事前に計画を立てておらず、gccバージョンで宿題を完了したことに気づいたときにそれを削除する方法を知りませんでした。インターネット検索の後、私はcheckinstallを使用しない限り、これは実際には可能ではないことに気づきました。しかし、/usr/local/binは私のパスの前にあるので、デフォルトでは最新バージョンのgccにコンパイルされます。これにより、gdbを使用してこれらのバージョンのアプリケーションをデバッグしようとすると問題が発生します。また、これにより他のアプリケーションで不要な動作が発生し、問題が発生する可能性があります。
注:/usr/local/binに/usr/binにあるアプリケーションをオーバーライドしたいアプリケーションがいくつかあるため、パスを再構成することはできません。
だから私の質問は:リポジトリにパッケージ化されたアプリケーションを使用して自己コンパイルされたアプリケーションをどのように管理できますか?私は、衝突せずに何も台無しにしないで安全に削除できるように、この問題を解決する正しい方法は何ですか?混合の観点から、独自のコンパイルされたバージョンのアプリケーションをパッケージバージョンの依存関係として使用するなどの操作をどのように実行できますか?私はgdbのようなものをインストールすると、私のローカルバージョンのgccが基準を満たしていることをDebianが自動的に認識しないと思います。
また、注:コンパイルされたアプリケーションは正確にどこにインストールされますか? /usr/ローカル/空? /選択する? /ホーム/ユーザー/空か。 /自分のディレクトリ?
私が書くことができない、または間違った部分がある場合は謝罪し、必要に応じてより詳細に説明します。
答え1
make
-n
または、オプションを使用してgccをコンパイルするときにインストールされたファイルのリストを取得することもできます--dry-run
。たとえば、make -n install
gccソースディレクトリから実行し、出力をファイルにリダイレクトします。
いくつかの後処理(例sed
: