web-dev-qa-db-ja.com

Linuxでのパッケージ、リポジトリ、およびインストールプロセス

Linux、たとえばUbuntuにプログラムをインストールする方法について、インターネットで多くの記事を読みましたが、それでも混乱しています。

私が今まで理解していることは次のとおりです。

  1. まず、目的のパッケージを含むリポジトリを追加する必要があります。 Ubuntuでは、/etc/apt/sources.listファイルの関連行のコメントを解除することで実行されます。

  2. 次に、apt-get updateを実行して、リポジトリのパッケージリストを更新する必要があります。

  3. 最後に、apt installを実行してプログラムをインストールします。

...でもそれでも理解できない!

  1. sources.listでリポジトリのコメントを解除すると、OSに「このリポジトリを自分のコンピュータにダウンロードしてください」と指示するということですか?リポジトリをダウンロードする必要がありますか?そうでない場合は、sources.listの行のコメントを解除すると、システムで何が起こりますか?

  2. 正確にapt-get updateは何をしますか?私が読んだように:

     apt-get update downloads the package lists from the repositories and
    "updates" them to get information on the newest versions of packages
     and their dependencies.
    

それは正確にはどういう意味ですか?いくつかのパッケージを含むリポジトリがあります。これは、一部のリポジトリが古くなっている可能性があることを意味しますか?では、なぜ代わりに、常に最新の状態でサーバー上のリポジトリを更新せず、誰もapt-get updateを実行する必要がないのでしょうか。

2
feel free

sources.listでリポジトリのコメントを解除すると、OSに「このリポジトリを自分のコンピュータにダウンロードしてください」と指示するということですか?

番号。

リポジトリをダウンロードする必要がありますか?

通常ではありません。おそらく数百ギガバイトをダウンロードしたいのでなければ。

そうでない場合は、sources.listの行のコメントを解除すると、システムで何が起こりますか?

何もありません、まだ

リポジトリがあり、いくつかのパッケージがありますが、それはいくつかのリポジトリが古くなっている可能性があることを意味しますか?

はい、リポジトリは古くなっている可能性がありますが、それはここで話していることではありません。

では、なぜ代わりに、常に最新の状態でサーバー上のリポジトリを更新せず、apt-getupdateを実行する必要がないのでしょうか。

それはそのようにはうまくいきません。何が起こるかはこれです:

  1. リポジトリにはtrueのパッケージが含まれていますが、パッケージ名、バージョン、パッケージの依存関係、パッケージに含まれるファイルのリスト、パッケージのハッシュなど、それらのパッケージに関する情報(メタデータ)も含まれています。
  2. apt-get updateはこのメタデータをダウンロードします。
  3. apt-get installupgradeなどは、パッケージをインストールするように指示するときにこのメタデータを使用します。使用可能なバージョンをチェックし、依存関係として追加のパッケージをインストールする必要があるかどうかをチェックします。
  4. リポジトリが更新されると、メタデータは次のように更新されますただし、以前にダウンロードされたローカルコピーは更新されません。これは当然のことです。メタデータのコピーが古くなっているかどうかをPCが常にサーバーに確認することは望ましくありません。
  5. 次回パッケージをインストールする必要があるときに、システムのメタデータが古くなっているために問題が発生する可能性があります。そのため、正しい処理を理解できません。
  6. 次に、apt-get updateを実行してこのメ​​タデータを更新する必要があります。
  7. ソース行のコメントを外しても、私が言ったように、まだ何も起きていません。次回apt-get updateを実行すると、そのソースからメタデータもダウンロードされます。そして、次にパッケージをインストール、アップグレード、または削除するときに、aptは物事を理解するときに追加のメタデータを考慮します。

それがaptの仕組みです。一方、Yumは、パッケージを追加、削除、またはアップグレードするたびに、更新されたメタデータをチェックしてダウンロードします。どちらの方法にも長所と短所があります。

5
muru

TL; DR

Windowsを使用している場合は、Windowsのように少し混乱するかもしれません。どこからでもソフトウェアをダウンロードして、インストールできます。 Linuxでも可能ですが、最後の手段としてのみ使用する必要があります。 (詳細については、長いバージョンをお読みください)

これがあなたの質問に対する短い答えです:

  1. リポジトリの「コメント解除」により、リポジトリが利用可能になります。すでに混乱しているように、特定のソフトウェアをインストールできるようにするために特にそうするように指示する信頼できるソースが見つからない限り、リポジトリのコメントを解除しないでください。 (再び:長いバージョンを読んでください)

  2. コメントを外すか、PPAを追加してソフトウェアソースを追加した後(ここでも長いバージョンを読んでください)、「依存関係地獄」と呼ばれるものに遭遇しないように、利用可能なソフトウェアのローカルリストを更新する必要があります。

したがって、Ubuntuにソフトウェアをインストールするときは、次のガイドラインを使用してください。

長いバージョン:

16.04以降: Ubuntu Software Center 名前がに変更されました Ubuntu Software

(他のすべては同じままです)

最も重要なことは、いつかインストールするこのソフトウェアを削除する必要があることを覚えておくことです。したがって、は常に削除方法を使用します。インストール方法と同じです。

したがって、Ubuntuにソフトウェアをインストールする場合は、次の優先順位を使用してください。

  1. 安定したシステムができた(そして維持したい)ので、至る所のWebサイトからのダウンロードとインストールについて知っていることを忘れ、Ubuntuでソフトウェアをインストールする方法について次の優先リストを使用してください。
  2. 初心者ユーザーの場合:最初の3か月、Ubuntuを使用してから最大1年
    Ubuntuソフトウェア(センター)の [〜#〜] gui [〜#〜] を使用して、標準のUbuntuリポジトリにインストール/削除します。

    以下のスクリーンショットのように、左上隅のダッシュをクリックし、softwareと入力して、 Ubuntu Software(センター)。

    Opening Ubuntu SW Center

    Ubuntuソフトウェア(センター)が開きます:

    Ubuntu SW Center Start

    左側にはたくさんのアプリケーションカテゴリから選択できます。または、右上隅の検索ボックスにソフトウェアの名前を入力します(これを使用します)

    Crap software

    私はあなたと同じように驚いていますが、Ubuntu用のがらくたソフトウェアが確かにあります:-)だから、あなたが欲しいがらくたをクリックして、「インストール」をクリックしてください"、少し待って完了です!

    この方法を使用してソフトウェアを削除するには、2番目のスクリーンショットの[インストール済み]ボタンをクリックし、アンインストールするがらくたをクリックして、[アンインストール]をクリックします「ボタン!簡単-簡単。

    また、ソフトウェアがない場合は、他の場所からダウンロードして、以下のより高度な機能を使用してインストールしないでください。 あなたは初心者です!

  3. (中級ユーザー、6か月-1年の経験)
    [〜#〜] tui [〜#〜] of aptitude を使用します
    押す Ctrl+Alt+T ターミナルに移動して次のように入力します。

    Sudo aptitude
    

    を押して Enter

    aptitude: command not foundを取得した場合は、次のように入力します。

    Sudo apt install aptitude
    

    aptitudeをインストールし、何も動かなくなるまで待ってから次にと入力します。

    Sudo aptitude
    

    それを開始します。

    screenshot aptitude

    これはまだなじみのあるものです。あなたはマウスを使用できますが、WWWが発明される前の1988年に戻ったようなものです。そして今、最初のハードルが来ます: [〜#〜] rtfm [〜#〜] 次のように入力して適性を確認します。

    man aptitude 
    

    これは重要です!aptitudeを使用すると、より高度なことを実行できますが、逆刺しの使用人です!

  4. 次に、より高度なものに移ります:(5000以上の評判+少なくとも1つのゴールドバッジを持つこのサイトの知識のある人々によって指示された場合にのみ使用してください)

    押す Ctrl+Alt+T とタイプ:

    • apt install szPackageNameインストールする
    • apt purge szPackageNameから完全に削除
    • apt remove szPackageNameアプリケーションを削除し、その構成ファイルを保持します。 (つまり、あなたは後でこれを再インストールしたいと思うかもしれませんそしてあなたはいまいましいものを設定するのに数時間を費やしただけで、設定を失いたくないです!)
  5. 本当に高度なもの(不死者によって指示された場合にのみ使用します。つまり、このサイトの知識のある人が>を持っている10000レピュテーション+いくつかのゴールドバッジ)

    a。 .debファイルをダウンロードしてインストールします。dpkg --install szPackageNamedpkg --purge szPackageNamedpkg --remove szPackageNameを使用して、構成ファイルなしでインストール、完全な削除、および削除を行います。

    b。 PPAをインストールします。指示に明確に従ってください。何か問題が発生した場合は、エラーをコピーして貼り付けてください このサイトで質問してください 、質問へのリンクを挿入し、フォローしていた回答を挿入して、不滅の人に報告してください! ;-)

  6. 「ソースからダウンロードしてビルドするだけです!!!」

    おそらく開発者があなたにこれを言っていて、彼は問題なく安定したシステムをインストールして維持することについて何も知りません 、しかし地球上で最もクールなものがあります!
    あなたの視点に応じて、愛に抱かれるか、疫病のように避けられるか。

    したがって、ソースからダウンロードしてビルドする場合は、make installの代わりに CheckInstall を使用して、このソフトウェアを削除できるようにします。将来的にはもっと簡単に、 この例のように開発者の言うことに関係なく!

ソース

3
Fabby