web-dev-qa-db-ja.com

.debファイルからインストールされたプログラムで更新はどのように機能しますか

Ubuntuでアップデート全体がどのように機能するかを正確に理解するのに苦労し、ソフトウェアをインストールするための良い習慣があります。

すべてのリポジトリがリストされている/etc/apt/sources.listファイルがあり、apt-get updateを使用するときにこれらのリポジトリがクエリされることを理解しています-後で使用するために.
apt-get upgrade。これは完全に理にかなっており、最近spotifyを追加してインストールしました
deb http://repository.spotify.com stable non-freeをこの「ソース」リストに追加します。

しかし、その後、私は混乱しました...

GoogleをダウンロードするときにChromeをダウンロードして取得したのは.debファイルだけで、Chromeは問題なくインストールされていましたが... /etc/apt/sources.list...の新しいエントリ.

apt-get updateはどのようにChrome更新に関する問い合わせ先を知るのでしょうか?ソースファイルに既にリストされているリポジトリのいずれかに何らかの形で追加されましたか?

インストールしたすべてのソフトウェアを更新機能に含めたい。

11
Kirbies

これは確かに複雑です。まず、aptフロントエンド から dkpg であり、実際にパッケージのインストール/削除を処理します。したがって、/etc/apt/sources.list(および/etc/apt/sources.list.d/内のすべてのファイル)は、aptではなく、dpkgによって読み取られます。

ここで、.debファイルを手動でダウンロードすると、aptをバイパスし、代わりにdpkg -i packagename.debを使用してインストールします。これは、aptのデータベースが更新されず、aptシステムがインストールしたパッケージを認識しないことを意味します。つまり、apt-get upgradeは、手動でインストールされたパッケージをnever更新します。

とはいえ、chromeは実際にはルールの例外です。ダウンロードページに移動すると、次のメッセージが表示されます。

enter image description here

一番下にこのノートがあります:

注:Google Chromeをインストールすると、Googleリポジトリが追加され、システムは自動的にGoogle Chromeを最新の状態に保ちます。 Googleのリポジトリが必要ない場合は、パッケージをインストールする前に「Sudo touch/etc/default/google-chrome」を実行してください。

これは、.debパッケージに、Googleのリポジトリをシステムに追加するスクリプトが含まれていることを意味します(具体的には、/etc/apt/sources.list.d/にファイルを作成します)。これにより、chromewillapt-getを使用すると更新されます。

9
terdon

aptは、/etc/apt/sources.listにリストされているソースと/etc/apt/source.list.dのすべてのファイルを検索します。 google-chrome.list/etc/apt/sources.list.dなどのファイルがあり、次の行があります。

deb http://dl.google.com/linux/chrome/deb/ stable main

これは、google-chromeを更新するためのソースとして使用されます。

Google-chromeのdebファイルを手動でダウンロードしてインストールすると、debファイル内のスクリプトがこのファイルを作成したため、更新を手動で検索する必要はありません。

1
jobin