web-dev-qa-db-ja.com

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

Sudo apt-get updateは何をしているのでしょうか?

何が更新されますか?

507
Elysium

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

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

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

  • APTがapt-get upgradeによってこれらの新しいバージョンを知っている場合、apt-get updateはマシンに存在するパッケージの新しいバージョンを取得します。

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

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

  • apt-get dist-upgradeapt-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回だけ要求されます(またはどういたしまして)。

543
hexafraction

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サイトです。たとえば、そのサイトでapt-getを検索した場合、結果の1つとして AptGet/Howto が見つかります。

47
Alex

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

一言で言えば:非常にインストール前にSudo apt-get updateを実行することをお勧めしますが、本当に時間をかけられている場合はスキップされる可能性がありますリポジトリを変更したり、最後のapt-get update以降のPPA。

19
hexafraction

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

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

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

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

Sudo apt-get upgrade

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

13
Sam

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

12
Jason Petrilla

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

  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を実行する必要がないことに注意してください。情報がしばらく更新されていない場合にのみ、必ず実行するようにしてください。

6
Eliah Kagan

Eliah Kaganが前述したように、expect GUIアプリケーションはapt-get updateの前にapt-get install/apt-get upgradeを実行しますが、興味深いエラー404を発見しました。比較的新しい攻撃セキュリティVMマシンで、1分間困惑しました。

コマンドラインからapt-get updateを実行してから、System Tools/Software-Updateコマンドを再試行しましたが、今回は404エラーなしで実行しました。

したがって、apt-get updateがGUIアプリケーションから実行されていると常に想定できるわけではないと思います...

4
mikepratt

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

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

apt-get install foobar

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

基本的には、your listmasterリストと一致することを確認します。

3
N8tron

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

Sudo apt-get update

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

一方、

Sudo apt-get install vlc vlc-plugin-Pulse mozilla-plugin-vlc

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

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

2
Praveen Vinny