web-dev-qa-db-ja.com

apt-getは手動でインストールされたソフトウェアをどのように処理しますか?

APTリポジトリのEmacsバージョンが24.3であるとすると、私はconfigure && make install自分のemacs24.4です。久しぶりに、APTリポジトリが24.5に更新されました。apt-get update && atp-get safeupgradeを実行するとAPTはどうなりますか?

APT手動でインストールしたソフトウェアを処理させる一般的な方法は何ですか?

2
Nick

Apt-getには「safeupgrade」コマンドがありません。 「適性安全アップグレード」を考えていますか?

それはさておき、パッケージシステムはパッケージサブシステムプログラムが行うすべての変更のデータベースを維持するため、apt-getは物事を「知っている」だけです。ソースをダウンロードして自分でビルドしてからインストールする場合、パッケージサブシステムを使用して行われないため、これらの変更はどこにも記録されないため、apt-getは単にそれらについて知ることができません。

コンピューターで「apt-getinstallemacs」を実行したことがない場合、パッケージサブシステムはemacsがインストールされていることを認識しないため、「apt-getupgrade」がそれに触れることはなく安全です。 「dpkg--list」にリストされているプログラムのみが「apt-getupgrade」によって処理されます。

「apt-getinstallemacs」を実行した場合、それは別の話です。

「./configure--prefix=/usr/local/bin」(および場合によっては場所を指定する他のいくつかのパラメーター)を使用するのに十分賢い場合、カスタムemacsのファイルは「apt-get」とは異なる場所にあります。システムに「emacsをインストールしてください」とロードすると、emacsが2つ動作するようになります。したがって、「apt-get upgrade」を実行し、リポジトリにapt-getが以前に置いたものよりも新しいemacsのパッケージがある場合、それが置き換えられ、カスタムバージョンは変更されません。

カスタムemacsをビルドするときにconfigureオプションを使用しなかった場合、パッケージ化されたemacsのファイルの場合はおそらくそれらを上書きします。しかし、それは実際には、パッケージメンテナがリポジトリに配置するために.debを構築したときに使用したオプションに依存するため、少し予測できません。いずれにせよ、カスタムインストールによって上書きされたものはすべて、apt-getupgradeを実行すると再び上書きされます。各インストール後、いくつかの無関係なオッズとエンドを持つemacsの作業バージョンが1つだけになります。

3
Bytor

APTは、手動でインストールされたソフトウェアについて何も知りません。

/usr/local(デフォルトの場所)でEmacsをインストールした場合、そのインストールは、APTが管理する/usrでのEmacsインストールから完全に独立しています。 emacsを実行すると、/usr/local/bin/emacs(手動インストール)が実行されます。 /usr/bin/emacsを実行すると、APTによってインストールされたEmacsが実行されます(より具体的には、最新バージョン—Debianの¹Emacsパッケージは複数のバージョンのインストールをサポートします)。

Emacsを/usrにインストールした場合—ええと、あなたは混乱を引き起こしましたが、うまくいけば大きなものではありません。 /usrはパッケージマネージャー用に予約されていますが、/usr/localはシステム管理者用です(パッケージマネージャーはそこにいくつかのディレクトリのみを作成します)。 Emacsソースディレクトリからmake uninstallを実行して、これらのファイルを削除します。 Debianパッケージを再インストールする前にこれを行ってください。

ソフトウェアを手動で(/usr/localの下に)インストールしたいが、依存関係を満たすためにパッケージマネージャーに宣言する場合は、equivsを使用して偽のパッケージを作成できます。 aptにインストールされたtarパッケージを認識させる方法 を参照してください。

Debianは、インストールされているバージョンのEmacs用にElispパッケージを自動的にバイトコンパイルします。これを利用するには、手動でインストールしたバージョンに加えて、パッケージマネージャーを使用してEmacsのバージョンをインストールします。互換性のあるバイトコードを持つものを必ず選択してください( 同じメジャーバージョンの古いマイナーバージョンでも問題ありません 、たとえば24.3 debと24.4手動インストール)。手動でインストールしたバージョンに同じバイトコードディレクトリを読み取らせます。ローカルインストールの/usr/share/emacs/24.3/LISP/startup.elcからstartup.elをロードします。

¹ この投稿では、「Debian」には、Ubuntu、Mintなど、同じEmacsパッケージを使用する派生物が含まれています。