もしLinuxが初めてなら、ソフトウェアパッケージのインストールや更新方法について知りたいと思っているかもしれません。それなら、Ubuntuでソフトウェアパッケージを管理する方法を理解するために、正しい場所に来ました。 Apt Get
コマンドを参照してください。
このチュートリアルでは、既存のソフトウェアパッケージを更新またはアップグレードし、新しいパッケージをインストールしたり、もう必要ない場合にはそれらを取り除く方法を学びます。
さあ、読んでソフトウェアパッケージの管理を始めましょう!
前提条件
このチュートリアルは実演を伴いますが、特別なツールは必要ありません。Ubuntu 16以上のバージョンであれば問題ありません。このチュートリアルではUbuntu 20.04.3 LTSバージョンを使用しています。
システムパッケージリポジトリの更新
apt-get
コマンドの最も一般的な使用法の1つは、システムで利用可能なパッケージのリストを更新することです。これは、ソフトウェアのインストール、更新、またはアップグレードを行う前にお勧めされます。
ターミナルを開き、以下のapt-get
コマンドを実行して、システム上のパッケージリストをupdate
してください。パスワードが求められたらsudoパスワードを入力してください。
以下のコマンドは、/etc/apt/sources.listファイルのエントリから新しいソフトウェアバージョンをチェックし、システムのパッケージリストを更新します。
パッケージのバージョンが更新されていない場合、「Hit」というメモが表示されます。それ以外の場合、「Get」というメモが表示され、コマンドはパッケージ情報(パッケージ全体ではありません)をダウンロードします。パッケージ情報の取得にエラーがある場合、「ign」と表示されます。

ソフトウェアパッケージのアップグレード
「sources.list」に基づいてマシンのソフトウェアパッケージリストを更新したばかりですが、現在のバージョンのままであれば、ソフトウェアパッケージはそのままです。利用可能な更新がある場合にのみ、ソフトウェアパッケージをアップグレードしてください。「sources.list」ファイルのエントリに基づいて利用可能な更新があるソフトウェアパッケージをアップグレードします。
以下のUbuntu Apt Get
コマンドを実行して、マシンにインストールされているソフトウェアパッケージを利用可能な新しいバージョンにアップグレードします。確認が表示され、続行するにはYを入力します。
-y
オプションを使用することで確認プロンプトをバイパスできます。これにより、リストを検証していない場合、意図しないパッケージが更新/インストールされる可能性があります。

特定のソフトウェアのみをアップグレードする場合は、apt-get upgrade
コマンドと一緒にパッケージ名を指定します。以下に示すように。

2〜3つのソフトウェアをアップグレードする場合は、以下のようにスペースで区切って
apt-get upgrade
コマンドに指定します:sudo apt-get upgrade vsftpd google-chrome firefox
Intelligently Upgrading Application Packages with Ubuntu Apt Get
インストールされたソフトウェアパッケージをアップグレードする以外に、どのようにしてソフトウェアパッケージの競合をインテリジェントに管理しますか?apt-get upgrade
パッケージは既存のパッケージのみをアップグレードしますが、dist-upgrade
コマンドは新しいバージョンと競合する既存のパッケージも削除します。
以下のコマンドを実行してマシン上の既存のソフトウェアパッケージをアップグレードします。このコマンドは依存関係を満たすためにパッケージを追加または削除します。
apt-get dist-upgrade
コマンドにはインテリジェントな競合解決システムがあります。パッケージをアップグレードする際に競合がある場合、このコマンドはまず重要なパッケージをアップグレードし、次に優先度の低いパッケージを選択します。

Ubuntuのバージョンを次のリリースバージョンにアップグレードするには、
do-release-upgrade
コマンドを実行します。これにより、パッケージも更新されるため、apt-get dist-upgrade
が実行されます。
特定のソフトウェアパッケージを検索してインストールする
これまで、パッケージリポジトリとオペレーティングシステム自体を更新する方法を学びました。しかし、新しいソフトウェアパッケージを検索する方法は?apt-cache
コマンドを使用して、利用可能なすべてのソフトウェアパッケージまたは特定のソフトウェアパッケージを検索できます。
以下のコマンドを実行して、すべてのローカルに知られている利用可能なソフトウェアパッケージ(pkgnames
)を表示します。このリストはsources.list設定ファイルに対する最後の更新から派生しています。

apt-cache pkgnames
コマンドは自然に多くのソフトウェアパッケージを返しますが、それをスクロールして見るのは面倒です。だからソフトウェアパッケージの名前が分かっている場合は、特に検索してみませんか?
以下のコマンドを実行して、この場合はvsftpd
のために特定のソフトウェアパッケージリポジトリをsearch
してください。ソフトウェアパッケージだけを検索しているので、sudo
コマンドを前に付ける必要はありません。

正確なパッケージ名を知っている場合は、
search
をshow
パラメータで置き換えて、次のようにしてください:apt-cache show PackageName
。PackageName
を実際のパッケージ名に置き換えます。このコマンドでは、パッケージの詳細(起源、アーキテクチャ、バージョンなど)を表示できます。
ソフトウェアパッケージが見つかったら、以下のコマンドを実行してそのソフトウェアパッケージ(vsftpd
)をマシンにinstall
してください。

ソフトウェアの再インストール
おそらく特定のソフトウェアに問題が発生しており、それを分解して問題が何かを確認することは好ましくない場合があります。その場合、ソフトウェアを再インストールして問題を修正できるかもしれません。
以下のapt-get install
コマンドを実行して、システム上のソフトウェア(vsftpd
)を--reinstall
してください。

インストール済みのソフトウェアの削除
システムにインストールされたソフトウェアは、自然にストレージを消費します。ソフトウェアがもはや目的に合わない場合はどうでしょうか?そのソフトウェアを削除することで、システムのパフォーマンスを最適化できます。

コードを実行して、特定のソフトウェア(vsftpd
)をマシンから削除します。
Ubuntu Apt Getを使用してソフトウェアとそのサポートファイルを削除する
マシンにインストールされたほとんどのソフトウェアは、削除後でもフォルダや設定ファイルなどの残留物を残します。これらの残留物もストレージの枯渇に寄与するため、それらを削除するにはUbuntu Apt Get
コマンドを使用します。
おそらくすでにソフトウェアをアンインストールしましたが、その設定ファイルが残っている場合は、apt-get
コマンドにpurge
パラメータを使用すれば十分です。

以下のコマンドを実行して、ソフトウェア(vsftpd
)をuninstall
し、残っているファイルやフォルダ(purge
)も同時にマシンから削除します。

または、以下のコマンドを実行して、ソフトウェアをアンインストール(remove
)し、その設定ファイルを一度に削除(--purge
)することもできます。
依存関係エラーの解決
アプリケーションパッケージ自体は、ソフトウェアをインストールするときにマシンにダウンロードおよびインストールされる.debファイルに保存されます。今、特定のソフトウェアを削除して再インストールすると、aptはインターネットから再ダウンロードするのではなく、ローカルリポジトリの.debファイルを再インストールに使用します。
しかし、ソフトウェアの新しいバージョンが利用可能であり、そのソフトウェアを再インストールしようとする場合、ローカルリポジトリ内の既存のファイルは使用できなくなります。その結果、依存関係エラーが発生します。
ローカルリポジトリ(/var/cache/apt/archives)内のダウンロードされたキャッシュされたパッケージファイルを削除するには、以下のapt-get clean
コマンドを実行してください。
apt-get clean
コマンドは、/var/cache/apt/archivesおよび/var/cache/apt/archives/partialフォルダからロックファイルを削除しません。ロックファイルは、競合する2つの異なるパッケージマネージャが同じファイルで動作しないようにするために使用されます。

インストールされていないソフトウェアが参照されなくなったダウンロードされたパッケージを削除するには、autoclean
パラメータを使用してください。
以下のコマンドを実行して、/var/cache/apt/archivesディレクトリから残留ファイル(.debファイル)(autoclean
)を削除します。

結論
このチュートリアルでは、Ubuntu Apt Get
コマンドを使用してソフトウェアパッケージをインストールまたはアップグレードし、オペレーティングシステム自体を更新する方法について学びました。また、ソフトウェアパッケージの以前のバージョンのインストールの不要なパッケージファイルを削除することによって、インストールエラーを解決する方法にも触れました。
この時点で、マシン上のソフトウェアパッケージを効果的に管理する方法は既にわかっているでしょう。では、なぜBashスクリプトでソフトウェアパッケージのアップグレードを自動化しないのでしょうか?または、PHPスクリプトでcronジョブを追加するのもいいかもしれません。