更新履歴

icon
 古場 正行   2020/06/01 2:31

現在との差分
History → Now CHANGED
@@ -2,25 +2,25 @@
2
2
3
3
## OSS (Open Source Software) に強い OS とは?
4
4
- OSS のパッケージ管理機能を標準では持っていない Windows を自システムの OS に採用してしまうと、導入した OSS の更新作業が大変なことになる。
5
5
- 例えば、Windows 環境に手作業でインストールした OSS の更新を実行しようとしたら、更新した OSS が依存しているライブラリに要求されるバージョンのズレが発生したり、依存関係が変わってしまったことによる依存ライブラリ不足などといったことに起因する整合性回りのエラーが発生して頭を抱えることになってしまった、という話をよく聞く。
6
- - OSS の更新作業が大変だと、ついつい更新をサボってしまいがちになる。その結果、そのシステムは重大なセキュリティインシデントを引き起こす可能性が高くなってしまう。多数の OSS を活用するのであれば、Windows よりも Linux ディストリビューションを OS として採用する方が無難だろう。
6
+ - OSS の更新作業が大変だとついつい更新をサボってしまいがちになり、その結果、そのシステムは重大なセキュリティインシデントを引き起こす可能性が高くなってしまう。多数の OSS を活用するのであれば、Windows よりも Linux ディストリビューションを OS として採用する方が無難だろう。
7
7
- OSS の更新に強い OS の候補としては、Red Hat Enterprise Linux (RHEL)、CentOS、Ubuntu (Ubuntu Server) あたりが代表的なものになる。
8
8
9
9
|ディストリビューション名|特徴|
10
10
|:---|:---|
11
11
|[RHEL](https://www.redhat.com/ja/technologies/linux-platforms/enterprise-linux)|有償サポートの OS。提供する OSS は、最新であることよりも安定していることの方が重視される。|
12
12
|[CentOS](https://www.centos.org)|RHEL とほぼ同じ内容を提供しているクローン OS。無償だが、サポートがないので自己責任で利用する必要がある。|
13
13
|[Fedora](https://getfedora.org/ja/)|RHEL がサポートする予定の機能を先取りして検証しているという立ち位置の OS。提供している OSS は最新であることが重視される。無償だが、サポートがないので自己責任で利用しなければならない。|
14
- |[Ubuntu](https://jp.ubuntu.com)|開発環境として多くの OSS 開発者達に愛用されている OS。CentOS や Fedora が RHEL 準拠なのと比べると、こちらはシステム構成は Debian GNU/Linux をベースとしており、RHEL とは異なる構成になる。なお、提供している OSS は基本的に最新のものが採用されている。|
14
+ |[Ubuntu](https://jp.ubuntu.com)|開発環境として多くの OSS 開発者達に愛用されている OS。CentOS や Fedora が RHEL 準拠なのと比べると、こちらのシステム構成は Debian GNU/Linux をベースとしており、RHEL とは異なる構成になる。なお、提供している OSS は基本的に最新のものが採用されている。|
15
15
16
16
## OSS パッケージ管理機能
17
17
- それぞれの OS の OSS パッケージ管理機能は、以下のものになる。
18
18
19
19
|OS|パッケージ管理機能|備考|
20
20
|:---|:---|:---|
21
- |RHEL、CentOS|yum|RHEL 7 や CentOS 7 まで。|
21
+ |RHEL、CentOS|yum|RHEL や CentOS のバージョン 7 まで。|
22
- |RHEL、CentOS、Fedora|dnf|RHEL 8 や CentOS 8 以降。|
22
+ |RHEL、CentOS、Fedora|dnf|RHEL や CentOS はバージョン 8 以降から。|
23
23
|Ubuntu|apt||
24
24
|macOS|[Homebrew](https://brew.sh/index_ja)|厳密に言うと OS の機能ではないが、もはや macOS のデファクトスタンダードである。|
25
25
26
26
- 本ナレッジでは、それらの OSS パッケージ管理機能の具体的な使い方を説明する。
@@ -47,11 +47,11 @@
47
47
|yum|dnf|apt|Homebrew|
48
48
|:---|:---|:---|:---|
49
49
|yum install パッケージ名|dnf install パッケージ名|apt install パッケージ名|brew install パッケージ名|
50
50
51
- - OS のパッケージ構成を変更する作業には root 権限を要求される。
51
+ - OS のパッケージ構成を変更する作業には基本的に root 権限を要求される。
52
- - Homebrew root 権限が必要になった時点で権限昇格を要求されるので、通常の場合は root 権限なしで作業すべきである。
52
+ - Homebrew だけはパッケージ構成の基本がユーザの実行環境になっており root 権限が必要になった時にのみ権限昇格を要求されるので、最初から最後まで root 権限なしで作業 (コマンド入力) する。
53
- - yum su で root になってから作業することが多いのだが、dnf や apt は `sudo apt install パッケージ名` などと入力する sudo 環境での作業が推奨されている。
53
+ - yum は過去の慣例もあって su で root になってから作業することが多いのだが、dnf や apt は `sudo apt install パッケージ名` などと入力する sudo 環境での作業が推奨されている。
54
54
- 以下に、CentOS 7 における OSS の追加手順の具体例を紹介する。
55
55
```
56
56
# yum install httpd
57
57
```
@@ -62,9 +62,9 @@
62
62
|:---|:---|:---|:---|
63
63
|yum list installed|dnf list installed|apt list --installed|brew list|
64
64
65
65
# リポジトリを更新する
66
- - この節でいうリポジトリとは「OS が管理している OSS のバージョン情報や依存関係を管理しているメタデータのことである」と定義する。
66
+ - この節でいうリポジトリとは「OS が管理している OSS のバージョン情報や依存関係が定義されているメタデータのことである」と定義する。
67
67
- 一部の OS は、OSS の更新を実行する前にリポジトリを更新しなければならない。
68
68
- リポジトリを更新してもインストール済の OSS の方は更新されない。
69
69
70
70
|yum|dnf|apt|Homebrew|
@@ -74,23 +74,24 @@
74
74
# 更新が可能な OSS を確認する
75
75
76
76
|yum|dnf|apt|Homebrew|
77
77
|:---|:---|:---|:---|
78
- |yum check-update|dnf check-update||brew outdated|
78
+ |yum check-update|dnf check-update|apt list --upgradable|brew outdated|
79
79
80
80
- apt の場合は、後述する `apt upgrade` の時に更新対象が一覧表示されるので、そこで n を入力すると更新が可能な OSS の確認だけを行うことができる。
81
81
82
82
# OSS を更新する
83
83
84
84
|ケース|yum|dnf|apt|Homebrew|
85
85
|:---|----|:---|:---|:---|
86
- |OS にインストールした全てのパッケージを最新に更新する|yum update もしくは yum upgrade|dnf upgrade|apt upgrade|brew upgrade|
86
+ |OS にインストールした全てのパッケージを最新に更新する|yum update もしくは yum upgrade|dnf update もしくは dnf upgrade|apt upgrade|brew upgrade|
87
87
|脆弱性が修正されたパッケージだけを更新する||dnf upgrade --security|||
88
88
|特定のパッケージを更新する|yum upgrade パッケージ名|dnf upgrade パッケージ名|apt upgrade パッケージ名|brew upgrade パッケージ名|
89
89
90
90
- `yum upgrade` の動作は `yum update --obsoletes` と同じであり、OSS の更新に伴って必要がなくなったパッケージを自動的に削除するという処理が追加される。
91
91
- yum と dnf と apt は更新の実行の有無を確認してくるが、-y オプションを追加しておくと自動的に y を答えたことになる。
92
- - Homebrew は、`brew upgrade` を実行すると、リポジトリの更新と Homebrew でインストールしたパッケージの更新の両方を行う。
92
+ - Homebrew は、`brew upgrade` を実行すると、リポジトリの更新とインストールしたパッケージの更新の両方を行う。
93
+ - 特定のパッケージを更新すると、そのパッケージが依存しているパッケージも自動的に更新される。
93
94
94
95
## OSS の更新の実行例
95
96
- Homebrew
96
97
```
@@ -119,9 +120,9 @@
119
120
120
121
- yum と dnf は、`yum upgrade` `dnf upgrade` を実行すると、パッケージの更新のついでに必要がなくなったパッケージを削除してくれる。
121
122
122
123
# キャッシュを削除する
123
- - キャッシュとは、OSS のインストール時に必要となった関連ファイルのことである。
124
+ - この節でいうキャッシュとは、OSS のインストール時に必要となった関連ファイルのことである。
124
125
- インストールが完了している OSS にそれらのキャッシュは不要なので、ストレージ容量がシビアな環境では以下のコマンドを実行してキャッシュを削除しておくといいかもしれない。
125
126
126
127
|yum|dnf|apt|Homebrew|
127
128
|:---|:---|:---|:---|

過去のナレッジの内容

現在のナレッジの内容
 戻る