Ubuntuサーバー第3章パッケージ管理

Linuxと言えば、意味が異なります。一般的に、LinuxはLinuxカーネルを指し、Linuxカーネルは、ハードウェアシステムがアプリケーションへのインターフェイスを提供する中間層であると考えられています。基本的に、Linuxカーネルはアプリケーションでもあります。このアプリケーションは、ハードウェアおよびその他のアプリケーションを対象としています。オペレーティングシステムでは、「ライブラリファイル」という言葉に出くわすことがよくあります。Linuxでは「.so」で終わるライブラリファイルがあり、Windowsでは「.dll」で終わるライブラリファイルがあります。ライブラリファイルの存在は、開発者がアプリケーションを開発しやすくするためのものです。下位層にハードウェアリソースを呼び出し、上位層に使いやすい開発インターフェイスを提供することで、開発とアプリケーションの複雑さを軽減し、機能も実現できます。

では、LinuxディストリビューションとLinuxカーネルの関係は何ですか?

Linuxディストリビューションは、カーネル、ライブラリファイル、コマンドラインシェル、グラフィカルインターフェイス、およびその他のアプリケーションソフトウェアパッケージを組み合わせてディストリビューションを形成するオペレーティングシステムです。

ライブラリとドライバは他のアプリケーションに依存している必要があります。依存関係が欠落しているか、破棄または変更されている場合、アプリケーションは実行できません。この依存関係のいくつかのレイヤーは、巨大なツリーのような依存関係構造を形成します。この依存関係を管理するために、パッケージ管理の概念が導入されています。

ソフトウェアのインストール、削除、更新、および構成の変更に加えて、パッケージ管理は他のソフトウェア依存関係も提供する必要があります(パッケージ管理は独自の安定した依存関係のセットを提供します)。

異なるリリース間の依存関係は異なります。依存関係の競合を回避するために、リリースによって公式に提供されているパッケージ管理ツールを使用することをお勧めします。パッケージ管理はストレージスペースも節約するため、同じ依存関係が1回だけインストールされます(ホイールの重複を避けてください)。

Windowsで依存関係の問題がそれほど多くないのはなぜですか?私が実際に日常の使用で不足しているdllに遭遇したとき、私は通常それを解決するための公式のdllを見つけます。 WindowsはMicrosoftによって発行および保守されていますが、Linuxのリリースが多すぎます。

0 x01パッケージ##

一般的なLinxソフトウェア形式には、RPM(Redhat)とDEB(Debian Linuxから継承されたUbuntu)が含まれます。前の第2章では、TarやGzipなどのパッケージ化および圧縮されたソースコードのリリースについて説明しました。この種のパッケージ化は、複数のファイルの単なるコレクションです。ファイル実行の機能はありません。RPMおよびDEB形式のファイルには通常、次の3つの内容が含まれています。

ソフトウェアパッケージを維持するために、公式パッケージのすべてのパッケージは公式リポジトリ(リポジトリ)に配置され、公式ソースは、果物会社などの閉じたが品質が保証されたパッケージソースを提供します。ユーザーとして、サードパーティのソフトウェアリポジトリを慎重に使用する必要があります。

0 x02パッケージ管理ツール##

Dpkgローカルパッケージマネージャー###

Dpkgは、Debパッケージをローカルにインストール、削除、および作成します。つまり、ローカルを意味します。つまり、ソフトウェアリポジトリに依存せず、ソフトウェアパッケージを自動的に取得およびダウンロードせず、前述の依存関係を解決することもできません。

dpkg -l #ローカルパッケージを表示
dpkg -Lパッケージ名#パッケージによってローカルにインストールされたすべてのファイルを一覧表示します
dpkg -rパッケージ名#パッケージをアンインストールします
dpkg -Pパッケージ名#ソフトウェアパッケージのアンインストール中に構成ファイルを削除します
dpkg --print-architecture #現在のアーキテクチャを確認してください。一般的なアーキテクチャは64(AMD64)と32(I386)です。)
dpkg --print-foreign-architectures #サポートされている他のアーキテクチャを表示する
この情報は"/var/lib/dpkg/arch "、つまり、表示されている情報を実際に変更できます。
dpkg --remove-建築#スキーマを削除する

0 x03APTパッケージマネージャー###

APTパッケージマネージャーは、Ubuntuが提供する公式のパッケージ管理ツールです。上記のDpkgと同様に、オペレーティングシステム全体のすべてのソフトウェアパッケージをインストール、アンインストール、更新できます。インストールプロセス中に、依存関係の問題を自動的に解決し、インデックスに基づいてソフトウェアパッケージを更新できます。 。 APTパッケージマネージャーのワークフローは、次の2つの部分で構成されています。

apt update #インデックスを更新し、非ルートを追加します"sudo"
vim /etc/apt/sources.list #速度を上げたい場合は、中国でよく知られているミラーソースを使用し、公式ソースに注釈を付けてこのファイルの内容を変更することをお勧めします。
ls /etc/apt/sources.list.d #通常、サードパーティのソースファイルを保存します
apt list --upgradable #更新可能なパッケージを表示する
apt upgrade #インデックスに従ってソフトウェアパッケージをダウンロードしてインストールし、依存関係を自動的に解決します
apt dist-upgrade #上記のコマンドは新しいパッケージを追加または削除しませんが、このコマンドは新しいパッケージを更新し、古いパッケージ(カーネルを含む)を削除します
aptinstllパッケージ名#パッケージをインストールする
aptremoveパッケージ名--purge /aptパージパッケージ名#パッケージとその構成ファイルを削除します
/var/log/dpkg.log #パッケージをクリアするためのインストールまたはdpkgコマンドのログが含まれます
apt search "name" #キーワードでパッケージを検索
apt show name #パッケージ情報を表示する
apt autoremove #不要になったパッケージを自動的に削除します(カーネルを更新するときに、このコマンドを使用すると古いカーネルが削除され、依存関係の問題が発生する可能性があります)
ls /var/cache/apt/archives #ダウンロードしたdebパッケージの場所
ls /var/lib/apt/ #このディレクトリには、更新元から更新されたインデックスファイルが保持されます
aptダウンロードパッケージ名#パッケージのソースコードをダウンロードする
aptsoreceサインアップ#ソフトウェアパッケージのDebファイルとソースコードおよびその他のファイルをダウンロードします
aptshowsecパッケージ名#パッケージ情報を表示する

0 x04自動更新##

エンタープライズシステム管理者またはサーバー管理者として、多数のサーバーを管理する必要がある場合は、無人で作業効率を向上させることができます。

無人インストールパッケージをインストールし、構成ファイルを変更する必要があります。

apt install unattended-upgrades
lsb_release -a  #現在のシステムバージョンとコード名を表示する,十分な権限がありません"sudo"/etc/apt/apt.conf.d/50unattended-upgrades #unattended-エンタープライズ世代の環境でのアップグレード構成ファイル(更新されたコンテンツ)は、通常、一般的な更新やスケーラビリティの更新ではなく、セキュリティの更新のみを更新することを選択します。
/etc/apt/apt.conf.d/10periodic #インデックスの更新、ソフトウェアパッケージのダウンロード、自動クリーニングソフトウェアパッケージ、および自動インストールの時間構成ファイル(日数)
service unattended-upgrades restart #Ubuntuのアプリケーションは基本的にこのルーチンであり、構成ファイルをインストール、変更し、サービス構成を再起動して有効にします
sysystemctl restart unattended-upgrades.service #新しいバージョンのUbuntuは、Systemctlを使用してサービスを管理します
ls /var/log/unattended-upgrades #ロギング場所

毎日サーバーにログインしてログファイルを開くのは少し面倒ですが、無人通知の問題を解決するためのより良い方法はありますか? 2つの方法があります

/etc/apt/apt.conf.d/50unattended-upgrades #この構成ファイルで、emaiLフィールドを検索し、削除します"//",毎日更新できるように変更できるログは、管理者のメールボックスに送信されるか、エラー発生後に管理者のメールボックスに送信されます。メールサービスについては、メールサービスを再度紹介します。
apt install apticron #上記の構成ファイルを変更することに加えて、アプリケーションを使用して効果を実現することもできます
vi /etc/apticron/apticron.conf #構成ファイルのパス

0 x05APT更新構成##

vim /etc/apt/sources.list #APT更新ソース構成ファイル(CDromソースが含まれている場合)、コメントアウト
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multivers #一般的な形式はこれです。最初の列は、バイナリインストールパッケージまたはソースパッケージ(deb/deb-src)、2番目の列はライブラリのURLアドレスであり、3番目の列はオペレーティングシステムのコード名です。,4番目の列は、ライブラリのコンテンツ構成と、それが公式にサポートされているかどうかです。

4列目のオプションの意味

サードパーティのライブラリ

公式ソフトウェアライブラリの使用をお勧めしますが、さまざまな理由により、公式ソフトウェアライブラリがまだサポートされていない場合があります。現時点では、サードパーティのソフトウェアライブラリが必要です。サードパーティのライブラリごとに個別のソース「.list」ファイルを作成することをお勧めします(/ etc / apt / source.list.d)。サードパーティのセキュリティも考慮事項を指します。Ubntuは、検証にGnuPGキーを使用する検証メカニズムも提供します。GnuPGは公開キー管理システムです。サードパーティをインストールする場合、最初にサードパーティのキーを取得してシステムにインポートし、インデックスを更新できます。

add-apt-repository URL #サードパーティのソースを追加すると、データはに保存されます"/etc/apt/sources.list.d/"下、
apt-key add keyname #ローカルtrstedデータベースにキーをインポートします
apt-key keyname #サードパーティをアンインストールするときは、不要なキーを削除してください
apt-get update #インデックスを更新した後、サードパーティのライブラリの使用を開始できます

Personal Package Archive (PPA)

上記のサードパーティライブラリのユーザーは、基本的に企業や機関に属しています。個々の開発者にとって、サードパーティライブラリサーバーを開発および管理するのは面倒です。そのため、Ubuntuはパーソナルソフトウェアパッケージアーカイブを正式に立ち上げました。公式サーバー、ストレージスペース、およびメンテナンスが提供されています。PPAのソフトウェアパッケージはレビューされておらず、ソフトウェアは個人によってリリースおよびメンテナンスされています。 PPAライブラリは、基本的にAPTソフトウェアライブラリの別の形式です。コマンドはサードパーティのライブラリに似ているため、ここでは説明しません。

0 x06SNAPパッケージ管理##

上記は、以下の欠点があるAPTパッケージ管理ツールの特性について説明しています。

個人の場合、システムをアップグレードしてデータをバックアップすることは許容されます。エンタープライズ実稼働環境でシステムをアップグレードする決定は非常に困難です。SNAPは、この問題を解決するために生まれたツールです。

でも今はAPTパッケージ管理を一番使っています。元さんはこのツールの開発にとても楽観的ですO(∩_∩)Oはは〜

apt install snap #スナップをインストール
snap find name #パッケージを探す
snap install name #パッケージをインストールする
snap remove name #パッケージを削除します
snap refresh name #ソフトウェアパッケージを更新します。スナップのインデックスを更新するためにパッケージ名を追加しないでください

Snapによってインストールされるソフトウェアパッケージは独立して存在します(動作環境と依存関係は独立しています)。これまでのところ、SnapはAPTの重要な補足として推奨されています。

0 x07リファレンスリンク##

エントリーからマスターまでのUbuntuサーバー

GnuPG

/ VAR / LOG /各ログファイルの分析

Recommended Posts

Ubuntuサーバー第3章パッケージ管理
Ubuntuサーバー第7章リモート管理
Ubuntuパッケージ管理
Ubuntuサーバー第8章DNSサービス
Ubuntuサーバー第2章コマンドラインの基本
Ubuntuオフラインインストールパッケージ
ubuntuインストールnginxサーバー
ubuntuの下にFTPサーバーをデプロイします
Ubuntu Server14.04にOpenSSL1.0.2をインストールします
ubuntu16.04ビルドpptpdV **サーバー
ubuntuサーバーでtomcatを構成する
サーバーアップグレードUbuntu20.04LTSレコード
Ubuntu12.04クロスコンパイルサーバーを構築する
サーバーアップグレードUbuntu20.04LTSレコード
UbuntuサーバーはJavaWebサーバーを構築します
Ubuntuはsquidプロキシサーバーを展開します
Ubuntu16.04サーバーの初期設定
Ubuntu16.04ビルドGitLabサーバーチュートリアル
Ubuntuにrglパッケージをインストールします
ubuntuでNginx-RTMPライブサーバーを構築する
Ubuntuでのdebパッケージのインストール
ChefサーバーワークステーションをUbuntu18.04にインストールします
Ubuntu16.04ビルドphp5.6Webサーバー環境
リモートUbuntuサーバーに接続されたMySQL
kvm仮想化を使用してUbuntu18.04サーバーをインストールします
ubuntuでファイルサーバーを構築する
サーバーの初期設定にはUbuntu16.04を使用します
Ubuntu Server12.4.0にOracle11gR2をインストールします
aptコマンドを使用してUbuntu環境で管理パッケージをダウンロードする利点