
こんにちは:) Ubuntu を使用してソフトウェアをダウンロードする方法によって、ソフトウェアの更新はどのように異なりますか? たとえば、apt-package マネージャーを使用して手動でダウンロードする場合や、/etc/apt/sources.list にリポジトリを追加する場合などです。flatpacks または snaps を使用してソフトウェアをダウンロードすることもできます。
sudo apt update を呼び出すと実際に何が起こりますか? どのリポジトリがチェックされますか?
答え1
Ubuntu にソフトウェア パッケージをインストールする方法は多数ありますが、その中にはあなたが言及していないものもあります。完全な回答を提供するために、それらすべてについて説明したいと思います。
パッケージマネージャーによるインストール、デフォルトのリポジトリ
パッケージ マネージャー ( apt
、apt-get
、aptitude
その他) には、ソフトウェアをダウンロードする場所のリストがあります。このソフトウェアは一般に信頼でき、動作することがわかっており、ほとんどの場合適切に保守されています。このような場所は「リポジトリ」と呼ばれます。リポジトリの URL は に保存されます/etc/apt/sources.list
。 を実行するとapt update
、パッケージ マネージャーはリポジトリを照会して、どのソフトウェア パッケージが利用可能かを認識します。情報はローカル キャッシュに保存されます。
によってパッケージをインストールする場合apt install
、パッケージ マネージャーはローカル キャッシュをチェックして、パッケージのダウンロード元を決定します。次に、パッケージをダウンロードします。パッケージは、DEB 形式のアーカイブとして提供されます。アーカイブは、ローカル ファイル システムに解凍されます。さらに、パッケージには、新しくインストールされたソフトウェアをセットアップするために 1 回だけ自動的に実行されるコードが含まれている場合があります。
apt upgrade
またはでソフトウェアを更新するとapt dist-upgrade
、既存のパッケージの新しいバージョンがダウンロードされます。現在のバージョンはシステムから削除されます。パッケージ マネージャーは、どのファイルがどのパッケージによって提供されたかを認識しているため、どのファイルを削除する必要があるかを認識します。その後、上記のように新しいバージョンがインストールされます。
パッケージマネージャー、カスタムリポジトリによるインストール
に URL を追加することで、デフォルトのリポジトリを拡張することもできます/etc/apt/sources.list
が、これらの日付/etc/apt/sources.list.d/
を使用する必要があります。パッケージ マネージャーは、それらをデフォルトのリポジトリと同様に扱います。インストール、削除、更新はまったく同じように機能します。カスタム リポジトリを追加するときは、システム用に作成されている必要があるため、ユーザーは注意する必要があります。
補足: 個人的な経験から、Ubuntu のリリースを次のリリースにアップグレードする前に、デフォルト以外のリポジトリからインストールされたすべてのパッケージを削除することをお勧めします。
パッケージマネージャーによるインストール、手動ダウンロード
DEB ファイルを手動でダウンロードすることもできます。 からパッケージをインストールできますdpkg -i
。パッケージ マネージャーは、このパッケージの入手元が不明であるため、このパッケージを更新しません。
スナップによるインストール
snapcraft は、Debian 由来の Ubuntu だけでなく、すべての Linux ディストリビューションと互換性を持つように設計されたパッケージ マネージャーの代替品です。snap パッケージはシステムに解凍されません。さらに、マウントされ (その内容が直接表示されます)、ソフトウェアはシステム内の制御された環境で実行されます (サンドボックスや仮想マシンを考えてみてください)。snap を削除すると、パッケージがマウント解除され、削除されます。更新も同様に行われます。
完全に手動でのインストール
大量のファイルをダウンロードして、ハードドライブ上の適切な場所に置くこともできます。カスタム ソフトウェアは、多くの場合、/opt に配置されます。バイナリ (またはバイナリへのリンク) は、 内のディレクトリにインストールされます$PATH
。このようにして、ソフトウェアに簡単にアクセスできます。パッケージ マネージャーは、このソフトウェアについて何も知りません。更新も手動でインストールする必要があります (ソフトウェアに自己更新機能が搭載されている場合もありますが、これは間違いです)。カスタム ソフトウェアは、 や/usr/local
などの場所にインストールすることも/usr
できます。後者は、自分が何をしているのかを本当に理解していない限り、実行しないでください。カスタム ソフトウェアは、パッケージ マネージャーによって制御されるソフトウェアとひどく衝突する可能性があります。
類似の質問:
apt-get による Ubuntu ソフトウェアのアップデート
Apper 経由でパッケージを更新するか、Debian のソフトウェア センター経由でパッケージを更新するかによって違いはありますか?
答え2
ディストリビューターから提供されたソースからのみソフトウェアをインストールすることをお勧めします。リポジトリを手動で追加したり、パッケージやその他のソフトウェアを手動でインストールしたりするのは、自分が何をしているのかを正確に理解している場合のみにしてください。 の機能についてですがsudo apt update
、これは、構成したすべてのリポジトリから最新の利用可能なパッケージを取得します。スナップやフラットパックにも同じことが当てはまります。中央リポジトリからインストールすると、と同様の方法で更新が行われますapt update
。
答え3
apt update
は、 にあるリポジトリ/etc/apt/sources.list
と にあるファイルから利用可能なパッケージのリストを更新します。がパッケージの新しいバージョンを認識する/etc/apt/sources.list.d/
ように、最初にこれを実行することが重要です。apt
apt upgrade
実際には、より新しいバージョンが利用可能なインストール済みパッケージが、経由でインストールされapt
、そのパッケージの元のリポジトリが上記の場所にある場合にアップグレードされます。
および のパッケージは、リポジトリが異なり、のキャッシュ/データベースに存在しないため、snap
によってflatpak
アップグレードされません。apt
apt
答え4
apt update
すべてのソフトウェア ソースをチェックします。つまり、これはディストリビューションのリポジトリと追加した PPA です。私の知る限り、これには flatpak (flatpak update
このために使用) は含まれませんが、ディストリビューションが snap をこのようにインストールする場合は snap を含めることができます。手動でインストールしたもの (ダウンロードした .deb またはその他のインストール手段) は、もちろんそのようにはチェックされません。
ただし、Ubuntu には独自の更新ポリシーがあり、ディストリビューションの一部はディストリビューションのサポート終了まで更新されます (「メイン」リポジトリ)。他のディストリビューションはほとんど更新されないか、まったく更新されません (「ユニバース」リポジトリなど) (スナップインストールされたパッケージのほとんどは「メイン」にはありません)。