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更新に関する問い合わせ先を知るのでしょうか?ソースファイルに既にリストされているリポジトリのいずれかに何らかの形で追加されましたか?
インストールしたすべてのソフトウェアを更新機能に含めたい。
これは確かに複雑です。まず、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
は実際にはルールの例外です。ダウンロードページに移動すると、次のメッセージが表示されます。
一番下にこのノートがあります:
注:Google Chromeをインストールすると、Googleリポジトリが追加され、システムは自動的にGoogle Chromeを最新の状態に保ちます。 Googleのリポジトリが必要ない場合は、パッケージをインストールする前に「Sudo touch/etc/default/google-chrome」を実行してください。
これは、.deb
パッケージに、Googleのリポジトリをシステムに追加するスクリプトが含まれていることを意味します(具体的には、/etc/apt/sources.list.d/
にファイルを作成します)。これにより、chrome
willapt-get
を使用すると更新されます。
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ファイル内のスクリプトがこのファイルを作成したため、更新を手動で検索する必要はありません。