「sudo apt-get update」は何をしますか?


回答:


551

一言で言えば、apt-get update実際にはソフトウェアの新しいバージョンをインストールしません。代わりに、アップグレードが必要なパッケージのアップグレード用のパッケージリストと、リポジトリに到着したばかりの新しいパッケージを更新します。

  • apt-get updateリポジトリからパッケージリストをダウンロードし、それらを「更新」して、パッケージの最新バージョンとその依存関係に関する情報を取得します。すべてのリポジトリとPPAに対してこれを行います。http://linux.die.net/man/8/apt-getから:

    ソースからパッケージインデックスファイルを再同期するために使用されます。使用可能なパッケージのインデックスは、/etc/apt/sources.list(5)で指定された場所から取得されます。更新は、アップグレードまたはdist-upgradeの前に常に実行する必要があります。

  • apt-get upgradeAPTがを介してこれらの新しいバージョンを認識している場合、マシンに存在するパッケージの新しいバージョンを取得しますapt-get update

    http://linux.die.net/man/8/apt-getから:

    /etc/apt/sources.list(5)に列挙されているソースから現在システムにインストールされているすべてのパッケージの最新バージョンをインストールするために使用されます。現在利用可能な新しいバージョンでインストールされているパッケージが取得され、アップグレードされます。現在インストールされているパッケージは削除されません。また、まだインストールされていないパッケージは取得およびインストールされません。別のパッケージのインストールステータスを変更せずにアップグレードできない現在インストールされているパッケージの新しいバージョンは、現在のバージョンのままになります。[Emphasis mine] apt-getがパッケージの新しいバージョンが利用可能であることを知るために、最初にアップデートを実行する必要があります。

  • apt-get dist-upgradeは、と同じジョブを実行しますapt-get upgrade。さらに、依存関係もインテリジェントに処理するため、古いパッケージを削除したり、新しいパッケージを追加したりできます。こちらをご覧ください:「dist-upgrade」とは何ですか?なぜ「upgrade」以上にアップグレードするのですか?

    http://linux.die.net/man/8/apt-getから:

    このオプションは、アップグレードの機能を実行することに加えて、パッケージの新しいバージョンとの依存関係の変更をインテリジェントに処理します。apt-getには「スマート」な競合解決システムがあり、必要に応じて重要度の低いパッケージを犠牲にして最も重要なパッケージのアップグレードを試みます。/etc/apt/sources.list(5)ファイルには、所望のパッケージファイルの取得元の場所のリストが含まれています。個々のパッケージの一般設定を上書きするメカニズムについては、apt_preferences(5)も参照してください。

&&次のようにコマンドを組み合わせることができます。

sudo apt-get update && sudo apt-get install foo bar baz foo-dev foo-dbg

または、依存関係のバージョン要件に従って最新バージョンを入手するには:

sudo apt-get update && sudo apt-get dist-upgrade

sudo両方の時間を必要とsudoしますが、デフォルトでは最後のsudo操作から5分以内にプロンプ​​トが表示されないため、パスワードの入力は1回のみ要求されます(またはまったく要求されません)。


11
sudo apt-get updateパッケージをインストールするときは常にコマンドを実行する必要がありますか?そうしない場合のデメリットは何ですか?
ジョニーキュー

14
@JohnnyQそのコマンドを実行しないと、古いパッケージがインストールされる可能性があります。
–ζ

ああ、それは単なる慣習のように聞こえます。ですから、特に通常は更新されない基本的なコマンドを備えた基本的なパッケージを使用している場合は、特に必要がないと思います。私の状況での問題は、apt-get update時間がかかることです。ここのインターネットはまだ原始的です。
ジョニーQ

2
@ JohnnyQ、apt-getの更新が遅い場合、apt-get dist-upgradeも遅くなるため、実際にはapt-getの更新を最初に行わないという議論はありません。ところで、/ etc / apt / sources.d /フォルダーを調べてカスタムリポジトリが追加されており、そのうちの1つが応答しない可能性があるかどうかを確認することにより、apt-getの更新を高速化できます。
ムラデンB.17年

1
ちなみに、「apt」はAdvanced Packaging Tool(wiki.debian.org/Apt 「What is APT?」)の略です。先日私が学んだことは、共有したいと思いました。(「apt」は、man apt-get、man aptによく登場しますが、頭字語がこれまでに拡大したことはありませんでした)。
jgreve

47

Google検索では、ターミナルでの--helpのように、ほぼすべてのターミナルコマンドの定義を取得できます。例えば、

apt-get --help

sudo apt-get update 基本的に3つの部分があります。

sudo

スーパーユーザー(root)機能を使用して次のコマンドを実行します。システムファイルの変更またはアプリケーションのインストールを必要とする多くのアクションを実行するには、追加のアクセス許可が必要です。

apt-get

Ubuntuがソフトウェアパッケージのインストール、削除、管理に使用するコマンドラインツールです

update

は、インターネット上のサーバーからパッケージリストを更新するapt-getプログラムのオプションです。パッケージリストは、apt-getユーティリティを使用して、apt-getを使用してインストールできるソフトウェアパッケージに関する重要な情報を提供します。apt-getはこれらのリストを使用して、インストールするコマンドが与えられたときにインストールするソフトウェアを決定します。例えば

sudo apt-get install guake

私のコンピューターのローカルソフトウェアリストに現在リストされているGuakeターミナルをインストールします。ただし、これは適切なバージョンではない可能性があります。また、プログラムが新しい場合は、まったく利用できない可能性があります。したがって、apt-getを使用してソフトウェアをインストールする場合、通常は次のように入力します。

sudo apt-get update
sudo apt-get install <package>

apt-getがパッケージの最新バージョンをインストールすることを認識していることを確認します。

別の有用な情報源はhelp.ubuntu.comサイトです。たとえば、そのサイトを検索した場合、結果の1つとしてAptGet / Howtoapt-getが見つかります。


アレックス、私は基本的に「apt-get update apt-get install <package>」のようにコマンドを使用できますか?
エリジウム

1
はい@Elysium、あなたが持っている場合は&&、それらの間のようにsudo apt-get update&&sudo apt-get install foo bar baz
ζ--

7
を使用&&すると、2番目のコマンドは最初のコマンドが成功した場合にのみ実行されます。最初のコマンドの成功を気にしない場合は、;代わりに使用してください。
フリム

4
Google検索により、この質問/回答に至りました。Just FYI;)
teewuane

19

実行するsudo apt-get updateだけで、すべてのリポジトリとPPAのパッケージのリストが最新であることを確認できます。このコマンドを実行しないと、インストールしているさまざまなパッケージの古いバージョンが取得されたり、さらに悪いことに依存関係の問題が発生したりする可能性があります。PPAを追加したばかりで更新していない場合、PPAまたはリポジトリからのパッケージリストがないため、PPAからは何も機能しません。

簡単に言うと、インストールする前に実行することを強くお勧めしますが、最後からリポジトリまたはPPAを変更していない限り、本当に時間がかかる場合はスキップすることができます。sudo apt-get updateapt-get update


13

コンピューター上の使用可能なソフトウェアリストを更新します。

お使いのコンピューターには、Ubuntuサーバーが利用できるすべての利用可能なソフトウェアを含むリスト(カタログなど)があります。ただし、使用可能なソフトウェアとバージョンは変更される可能性があるため、「更新」がサーバーにヒットし、ローカルリスト(またはカタログ)を更新するために使用可能なソフトウェアを確認します。

updateはとは異なることに注意してくださいupgrade。上記のアップデートは、利用可能なソフトウェアを取得してリストを更新upgradeし、コンピューターにインストールされているソフトウェアの新しいバージョンをインストールします(実際のソフトウェアの更新)。

実際にソフトウェアをアップグレードするには(リストを「更新」するのではなく)、次のコマンドを実行します

sudo apt-get upgrade

通常、「更新」後に実行されます。


何がsudo apt-get install、その後のために?一般的なアップグレードの代わりに特定のパッケージをインストールしますか?
ピーターモーテンセン

12

apt-get updateこれによりローカルリポジトリ情報が更新されるため、新しいパッケージをインストールする前に1回実行する必要があります。すぐに複数のパッケージをインストールする場合、実行する必要はありませんapt-get update。また、入力すると複数のパッケージを一度にインストールできます sudo apt-get install package1 package2...


そのための素晴らしいトリックです!
エマーソンHsieh

6

sudo apt-get install ...(またはsudo aptitude install ...)を使用してコマンドラインからパッケージをインストールする場合、または(upgradeまたはdist-upgradeその代わりにinstall)コマンドラインからパッケージをアップグレードする場合、インターネットからではなく、ローカルシステムの構成から次の情報が取得されます。

  1. 利用可能なパッケージ

  2. それらのどのバージョンが利用可能ですか

  3. 利用可能なパッケージを取得する場所

実行sudo apt-get update(またはsudo aptitude update)すると、ローカルシステムでこれが更新されます。これは、現在インストールされているパッケージのパッケージの更新が利用可能であるなど、インストール可能なパッケージに関する情報を実際に取得するステップです、インターネットソースから。

GUIインターフェイス(Update Manager、Software Center、またはSynaptic Package Manager)でパッケージをインストールすると、の作業sudo apt-get updateは自動的に行われます。コマンドラインからパッケージをインストールする場合はそうではありません。ごく最近インストールした場合を除き、常に自分で実行する必要があります。

使用可能なパッケージの更新バージョンに関する情報は実行sudo apt-get update(またはsudo aptitude update)によって取得されるため、パッケージをインストールする前にこれを実行することをお勧めします。ソフトウェアを追加または削除していない場合でも、最新の更新をインストールするために実行する必要がありますソース(PPAなど)

同時に複数のパッケージ管理操作を実行する場合は、sudo apt-get update各操作を実行する前に実行する必要はありません。情報がしばらく更新されていない場合にのみ、必ず実行してください。


4

Eliah Kaganが上で述べたように、GUIアプリケーションは/の前に実行されると予想されますが、比較的新しい攻撃セキュリティVMマシンで興味深いエラー404を発見しました。apt-get updateapt-get installapt-get upgrade

コマンドラインからを実行してapt-get updateから、システムツール/ソフトウェアアップデートコマンドを再試行しましたが、今回は404エラーなしで実行しました。

だから、それapt-get updateがGUIアプリケーションから実行されると常に仮定することはできないと思います...


面白い... apt-getSoftware Updater / Update Managerを実行することによって実行される自動チェックよりも、実行時の方が適切に処理される異常なネットワーク状況がありますか?HTTPプロキシを使用していますか?そして、あなたはそれを再び起こさせることができますか、それは一度だけ起こったのですか?孤立した異常の場合、問題の原因は一時的なサーバーの構成ミスにあるのではないかと思います。どのミラーを使用していますか?もっと情報があれば、答えを改善できるかもしれません。(ところで、これは別の回答として意図されているのですか、それともコメントに変換する必要がありますか?)
エリアカガン

3

私の前に多くの人が言ったように、これはあなたのローカルリポジトリ(パッケージリスト)を更新します。

インストールしようとすると問題が発生する場合があります

apt-get install foobar

foob​​arまたは依存関係の最新バージョンがリポジトリにありません。これは、.debファイルを手動でインストールする場合、またはサードパーティからppaをインストールする場合に特に問題になる可能性があります。

基本的に、リストマスターリストと一致することを確認します


2

UbuntuにVLCメディアプレーヤーをインストールする例を考えてみましょう。

sudo apt-get update

リポジトリで利用可能な更新を確認します。

一方、

sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc

検索したリポジトリからVLCメディアプレーヤーをインストールします。

rootユーザー(管理者)としてログインしているsudo場合は、スーパーユーザー権限を既に持っているため、使用する必要はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.