Ubuntu Apt Getを例を通じて学ぶ

もしLinuxが初めてなら、ソフトウェアパッケージのインストールや更新方法について知りたいと思っているかもしれません。それなら、Ubuntuでソフトウェアパッケージを管理する方法を理解するために、正しい場所に来ました。 Apt Getコマンドを参照してください。

このチュートリアルでは、既存のソフトウェアパッケージを更新またはアップグレードし、新しいパッケージをインストールしたり、もう必要ない場合にはそれらを取り除く方法を学びます。

さあ、読んでソフトウェアパッケージの管理を始めましょう!

前提条件

このチュートリアルは実演を伴いますが、特別なツールは必要ありません。Ubuntu 16以上のバージョンであれば問題ありません。このチュートリアルではUbuntu 20.04.3 LTSバージョンを使用しています。

システムパッケージリポジトリの更新

apt-getコマンドの最も一般的な使用法の1つは、システムで利用可能なパッケージのリストを更新することです。これは、ソフトウェアのインストール、更新、またはアップグレードを行う前にお勧めされます。

ターミナルを開き、以下のapt-getコマンドを実行して、システム上のパッケージリストをupdateしてください。パスワードが求められたらsudoパスワードを入力してください。

以下のコマンドは、/etc/apt/sources.listファイルのエントリから新しいソフトウェアバージョンをチェックし、システムのパッケージリストを更新します。

sudo apt-get update

パッケージのバージョンが更新されていない場合、「Hit」というメモが表示されます。それ以外の場合、「Get」というメモが表示され、コマンドはパッケージ情報(パッケージ全体ではありません)をダウンロードします。パッケージ情報の取得にエラーがある場合、「ign」と表示されます。

Updating Package Repositories

ソフトウェアパッケージのアップグレード

「sources.list」に基づいてマシンのソフトウェアパッケージリストを更新したばかりですが、現在のバージョンのままであれば、ソフトウェアパッケージはそのままです。利用可能な更新がある場合にのみ、ソフトウェアパッケージをアップグレードしてください。「sources.list」ファイルのエントリに基づいて利用可能な更新があるソフトウェアパッケージをアップグレードします。

以下のUbuntu Apt Getコマンドを実行して、マシンにインストールされているソフトウェアパッケージを利用可能な新しいバージョンにアップグレードします。確認が表示され、続行するにはYを入力します。

-yオプションを使用することで確認プロンプトをバイパスできます。これにより、リストを検証していない場合、意図しないパッケージが更新/インストールされる可能性があります。

sudo apt-get upgrade
Upgrading Software Packages

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

sudo apt-get upgrade vsftpd
Upgrading Specific Software Package

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コマンドは新しいバージョンと競合する既存のパッケージも削除します。

以下のコマンドを実行してマシン上の既存のソフトウェアパッケージをアップグレードします。このコマンドは依存関係を満たすためにパッケージを追加または削除します。

sudo apt-get dist-upgrade

apt-get dist-upgradeコマンドにはインテリジェントな競合解決システムがあります。パッケージをアップグレードする際に競合がある場合、このコマンドはまず重要なパッケージをアップグレードし、次に優先度の低いパッケージを選択します。

Upgrading a Linux Distribution

Ubuntuのバージョンを次のリリースバージョンにアップグレードするには、do-release-upgradeコマンドを実行します。これにより、パッケージも更新されるため、apt-get dist-upgradeが実行されます。

特定のソフトウェアパッケージを検索してインストールする

これまで、パッケージリポジトリとオペレーティングシステム自体を更新する方法を学びました。しかし、新しいソフトウェアパッケージを検索する方法は?apt-cacheコマンドを使用して、利用可能なすべてのソフトウェアパッケージまたは特定のソフトウェアパッケージを検索できます。

以下のコマンドを実行して、すべてのローカルに知られている利用可能なソフトウェアパッケージ(pkgnames)を表示します。このリストはsources.list設定ファイルに対する最後の更新から派生しています。

apt-cache pkgnames
Searching All Available Software Packages

apt-cache pkgnamesコマンドは自然に多くのソフトウェアパッケージを返しますが、それをスクロールして見るのは面倒です。だからソフトウェアパッケージの名前が分かっている場合は、特に検索してみませんか?

以下のコマンドを実行して、この場合はvsftpdのために特定のソフトウェアパッケージリポジトリをsearchしてください。ソフトウェアパッケージだけを検索しているので、sudoコマンドを前に付ける必要はありません。

apt-cache search vsftpd
Searching Specific Software Packages

正確なパッケージ名を知っている場合は、searchshowパラメータで置き換えて、次のようにしてください:apt-cache show PackageNamePackageNameを実際のパッケージ名に置き換えます。このコマンドでは、パッケージの詳細(起源、アーキテクチャ、バージョンなど)を表示できます。

ソフトウェアパッケージが見つかったら、以下のコマンドを実行してそのソフトウェアパッケージ(vsftpd)をマシンにinstallしてください。

sudo apt-get install vsftpd
Installing New Software Package

ソフトウェアの再インストール

おそらく特定のソフトウェアに問題が発生しており、それを分解して問題が何かを確認することは好ましくない場合があります。その場合、ソフトウェアを再インストールして問題を修正できるかもしれません。

以下のapt-get installコマンドを実行して、システム上のソフトウェア(vsftpd)を--reinstallしてください。

sudo apt-get install vsftpd --reinstall
Reinstalling software with Apt-Get command

インストール済みのソフトウェアの削除

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

sudo apt-get remove vsftpd
Removing Installed Software

コードを実行して、特定のソフトウェア(vsftpd)をマシンから削除します。

Ubuntu Apt Getを使用してソフトウェアとそのサポートファイルを削除する

マシンにインストールされたほとんどのソフトウェアは、削除後でもフォルダや設定ファイルなどの残留物を残します。これらの残留物もストレージの枯渇に寄与するため、それらを削除するにはUbuntu Apt Getコマンドを使用します。

おそらくすでにソフトウェアをアンインストールしましたが、その設定ファイルが残っている場合は、apt-getコマンドにpurgeパラメータを使用すれば十分です。

sudo apt-get purge vsftpd
Removing all the config files for a software

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

sudo apt-get remove --purge vsftpd
Removing software and its configuration files

または、以下のコマンドを実行して、ソフトウェアをアンインストール(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つの異なるパッケージマネージャが同じファイルで動作しないようにするために使用されます。

sudo apt-get clean
Removing Retrieved Package Files in Local Repo

インストールされていないソフトウェアが参照されなくなったダウンロードされたパッケージを削除するには、autocleanパラメータを使用してください。

以下のコマンドを実行して、/var/cache/apt/archivesディレクトリから残留ファイル(.debファイル)(autoclean)を削除します。

sudo apt-get autoclean
Removing Residual Files (.deb files)

結論

このチュートリアルでは、Ubuntu Apt Getコマンドを使用してソフトウェアパッケージをインストールまたはアップグレードし、オペレーティングシステム自体を更新する方法について学びました。また、ソフトウェアパッケージの以前のバージョンのインストールの不要なパッケージファイルを削除することによって、インストールエラーを解決する方法にも触れました。

この時点で、マシン上のソフトウェアパッケージを効果的に管理する方法は既にわかっているでしょう。では、なぜBashスクリプトでソフトウェアパッケージのアップグレードを自動化しないのでしょうか?または、PHPスクリプトでcronジョブを追加するのもいいかもしれません。

Source:
https://adamtheautomator.com/ubuntu-apt-get/