更新履歴

icon
 古場 正行   2020/05/31 8:59

現在との差分
History → Now CHANGED
@@ -1,95 +1,102 @@
1
- # OSS (Open Source Software) に強い OS とは?
1
+ # はじめに
2
- - OSS のパッケージ管理機能を標準では持っていない Windows を自システムの OS に採用してしまうと、導入した OSS のアップデートが大変なことになってしまう。多数の OSS を活用するのであれば Linux ディストリビューションを OS として採用するのが無難だろう。
3
- - Windows 環境に手作業でインストールした OSS の更新を実行しようとすると、更新した OSS が依存しているライブラリに要求されるバージョンのズレが発生したり、そもそもの依存ライブラリ不足といったことに起因する整合性回りのエラーが発生したりして、頭を抱えることになってしまう。
4
- - OSS の更新に強い OS の候補としては、RedHat Enterprise Linux (RHEL)、CentOS、Ubuntu (Ubuntu Server) あたりが代表的なものになる。
5
2
3
+ ## OSS (Open Source Software) に強い OS とは?
4
+ - OSS のパッケージ管理機能を標準では持っていない Windows を自システムの OS に採用してしまうと、導入した OSS の更新作業が大変なことになる。
5
+ - 例えば、Windows 環境に手作業でインストールした OSS の更新を実行しようとしたら、更新した OSS が依存しているライブラリに要求されるバージョンのズレが発生したり、依存関係が変わってしまったことによる依存ライブラリ不足などといったことに起因する整合性回りのエラーが発生して頭を抱えることになってしまった、という話をよく聞く。
6
+ - OSS の更新作業が大変だとついつい更新をサボってしまいがちになり、その結果、そのシステムは重大なセキュリティインシデントを引き起こす可能性が高くなってしまう。多数の OSS を活用するのであれば、Windows よりも Linux ディストリビューションを OS として採用する方が無難だろう。
7
+ - OSS の更新に強い OS の候補としては、Red Hat Enterprise Linux (RHEL)、CentOS、Ubuntu (Ubuntu Server) あたりが代表的なものになる。
8
+
6
9
|ディストリビューション名|特徴|
7
10
|:---|:---|
8
- |RedHat Enterprise Linux (RHEL)|有償サポートの OS。提供する OSS は、最新であることよりも安定していることが重視される。|
11
+ |[RHEL](https://www.redhat.com/ja/technologies/linux-platforms/enterprise-linux)|有償サポートの OS。提供する OSS は、最新であることよりも安定していることの方が重視される。|
9
- |CentOS|RHEL とほぼ同じ内容を提供しているクローン。無償だが、サポートがないので自己責任で利用する必要がある。|
12
+ |[CentOS](https://www.centos.org)|RHEL とほぼ同じ内容を提供しているクローン OS。無償だが、サポートがないので自己責任で利用する必要がある。|
10
- |Fedora|RHEL がサポートする予定の機能を先取りして検証しているという立ち位置の OS。提供している OSS は最新であることが重視される。無償だが、サポートがないので自己責任で利用しなければならない。|
13
+ |[Fedora](https://getfedora.org/ja/)|RHEL がサポートする予定の機能を先取りして検証しているという立ち位置の OS。提供している OSS は最新であることが重視される。無償だが、サポートがないので自己責任で利用しなければならない。|
11
- |Ubuntu|開発環境として多くの開発者達に愛用されている OS。CentOS や Fedora が RHEL 準拠なのと比べると、システム構成は RHEL とは異なる独自のものになる。提供している OSS は基本的に最新のものになる。|
14
+ |[Ubuntu](https://jp.ubuntu.com)|開発環境として多くの OSS 開発者達に愛用されている OS。CentOS や Fedora が RHEL 準拠なのと比べると、こちらのシステム構成は Debian GNU/Linux をベースとしており、RHEL とは異なる構成になる。なお、提供している OSS は基本的に最新のものが採用されている。|
12
15
13
- # OSS パッケージ管理機能の使い方
16
+ ## OSS パッケージ管理機能
14
- - 上記の OS のパッケージ管理機能は、以下の通り。
17
+ - それぞれの OS の OSS パッケージ管理機能は、以下のものになる。
15
18
16
19
|OS|パッケージ管理機能|備考|
17
20
|:---|:---|:---|
18
- |RedHat Enterprise Linux (RHEL)、CentOS|yum|RHEL 7 や CentOS 7 まで。|
21
+ |RHELCentOS|yum|RHEL や CentOS のバージョン 7 まで。|
19
- |RedHat Enterprise Linux (RHEL)、CentOS|dnf|RHEL 8 や CentOS 8 以降。|
22
+ |RHELCentOS、Fedora|dnf|RHEL や CentOS はバージョン 8 以降から。|
20
23
|Ubuntu|apt||
21
24
|macOS|[Homebrew](https://brew.sh/index_ja)|厳密に言うと OS の機能ではないが、もはや macOS のデファクトスタンダードである。|
22
25
23
- - 本章ではそれらの OSS パッケージ管理機能の具体的な使い方を説明する。
26
+ - 本ナレッジでは、それらの OSS パッケージ管理機能の具体的な使い方を説明する。
24
27
25
- ## OS に取り込める OSS を探す
28
+ ---
26
29
30
+ # OS に取り込める OSS を探す
31
+
27
32
|yum|dnf|apt|Homebrew|
28
33
|:---|:---|:---|:---|
29
34
|yum search キーワード|dnf search キーワード|apt search キーワード|brew search キーワード|
30
35
31
36
- 以下に、CentOS 7 における OSS の探し方の具体例を紹介する。
32
37
```
33
38
$ yum search apache
34
- :
39
+ :
35
40
httpd.x86_64 : Apache HTTP Server
36
- :
41
+ :
37
42
```
38
43
39
- ## OSS を OS にインストールする
44
+ # OSS を OS にインストールする
40
45
- OSS パッケージ管理機能を利用して OSS をインストールすると、依存関係で必要になる OSS も合わせて同時にインストールされる。
41
46
42
47
|yum|dnf|apt|Homebrew|
43
48
|:---|:---|:---|:---|
44
49
|yum install パッケージ名|dnf install パッケージ名|apt install パッケージ名|brew install パッケージ名|
45
50
46
- - パッケージの内容を変更する作業には root 権限を要求される。
51
+ - OS のパッケージ構成を変更する作業には基本的に root 権限を要求される。
52
+ - Homebrew だけはパッケージ構成の基本がユーザの実行環境になっており root 権限が必要になった時にのみ権限昇格を要求されるので、最初から最後まで root 権限なしで作業 (コマンド入力) する。
47
- - yum su で root になってから実行することが多いが、dnf や apt は `sudo apt install パッケージ名` と入力する sudo 環境での運用が推奨されている。
53
+ - yum は過去の慣例もあって su で root になってから作業することが多いのだが、dnf や apt は `sudo apt install パッケージ名` などと入力する sudo 環境での作業が推奨されている。
48
54
- 以下に、CentOS 7 における OSS の追加手順の具体例を紹介する。
49
55
```
50
56
# yum install httpd
51
57
```
52
58
53
- ## OS にインストール済の OSS 一覧を表示する
59
+ # OS にインストール済の OSS 一覧を表示する
54
60
55
61
|yum|dnf|apt|Homebrew|
56
62
|:---|:---|:---|:---|
57
63
|yum list installed|dnf list installed|apt list --installed|brew list|
58
64
59
- ## リポジトリを更新する
65
+ # リポジトリを更新する
60
- - この節でいうリポジトリとは「OS が管理している OSS のバージョン情報や依存関係を管理しているメタデータのことである」と定義する。
66
+ - この節でいうリポジトリとは「OS が管理している OSS のバージョン情報や依存関係が定義されているメタデータのことである」と定義する。
61
67
- 一部の OS は、OSS の更新を実行する前にリポジトリを更新しなければならない。
62
68
- リポジトリを更新してもインストール済の OSS の方は更新されない。
63
69
64
70
|yum|dnf|apt|Homebrew|
65
71
|:---|:---|:---|:---|
66
72
|||apt update|brew update|
67
73
68
- ## 更新が可能な OSS を確認する
74
+ # 更新が可能な OSS を確認する
69
75
70
76
|yum|dnf|apt|Homebrew|
71
77
|:---|:---|:---|:---|
72
- |yum check-update|dnf check-update||brew outdated|
78
+ |yum check-update|dnf check-update|apt list --upgradable|brew outdated|
73
79
74
- - apt の場合は、後述する `apt upgrade` の時に更新対象が一覧表示されるので、ここで n を入力すると更新が可能な OSS の確認だけを行うことができる。
80
+ - apt の場合は、後述する `apt upgrade` の時に更新対象が一覧表示されるので、そこで n を入力すると更新が可能な OSS の確認だけを行うことができる。
75
81
76
- ## OSS を更新する
82
+ # OSS を更新する
77
83
78
84
|ケース|yum|dnf|apt|Homebrew|
79
85
|:---|----|:---|:---|:---|
80
- |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|
81
87
|脆弱性が修正されたパッケージだけを更新する||dnf upgrade --security|||
82
- |特定のパッケージを更新する|yum upgrade パッケージ名|dnf upgrade パッケージ名|apt upgrade パッケージ名`|`brew upgrade パッケージ名|
88
+ |特定のパッケージを更新する|yum upgrade パッケージ名|dnf upgrade パッケージ名|apt upgrade パッケージ名|brew upgrade パッケージ名|
83
89
84
90
- `yum upgrade` の動作は `yum update --obsoletes` と同じであり、OSS の更新に伴って必要がなくなったパッケージを自動的に削除するという処理が追加される。
85
- - yum と dnf と apt は更新の実行の有無を確認してくるが、`-y` オプションを追加しておくと自動的に y を答えたことになる。
91
+ - yum と dnf と apt は更新の実行の有無を確認してくるが、-y オプションを追加しておくと自動的に y を答えたことになる。
86
- - Homebrew は、`brew upgrade` を実行するだけで、リポジトリの更新と Homebrew でインストールしたパッケージの更新の両方を行う。
92
+ - Homebrew は、`brew upgrade` を実行すると、リポジトリの更新とインストールしたパッケージの更新の両方を行う。
93
+ - 特定のパッケージを更新すると、そのパッケージが依存しているパッケージも自動的に更新される。
87
94
88
- ### OSS の更新の実行例
95
+ ## OSS の更新の実行例
89
96
- Homebrew
90
97
```
91
- % brew upgrade
98
+ $ brew upgrade
92
99
==> Upgrading 11 outdated packages:
93
100
glib-networking 2.64.2_1 -> 2.64.3
94
101
postgresql 12.3_3 -> 12.3_4
95
102
cmake 3.17.2 -> 3.17.3
@@ -101,29 +108,28 @@
101
108
libwebsockets 4.0.10 -> 4.0.13
102
109
node 14.3.0 -> 14.3.0_1
103
110
python@3.8 3.8.2 -> 3.8.3
104
111
==> Upgrading icu4c 66.1 -> 67.1
105
- :
112
+ :
106
113
```
107
114
108
- ## OSS の更新に伴って必要がなくなったパッケージを削除する
115
+ # OSS の更新に伴って必要がなくなったパッケージを削除する
109
116
110
117
|yum|dnf|apt|Homebrew|
111
118
|:---|:---|:---|:---|
112
119
|||apt autoremove|brew cleanup|
113
120
114
121
- yum と dnf は、`yum upgrade` `dnf upgrade` を実行すると、パッケージの更新のついでに必要がなくなったパッケージを削除してくれる。
115
- - apt は `apt full-upgrade` を実行すると `apt upgrade` `apt autoremove` の両方を実行してくれる。
116
122
117
- ## キャッシュを削除する
123
+ # キャッシュを削除する
118
- - キャッシュとは、OSS のインストール時に必要となった関連ファイルのことである。
124
+ - この節でいうキャッシュとは、OSS のインストール時に必要となった関連ファイルのことである。
119
125
- インストールが完了している OSS にそれらのキャッシュは不要なので、ストレージ容量がシビアな環境では以下のコマンドを実行してキャッシュを削除しておくといいかもしれない。
120
126
121
127
|yum|dnf|apt|Homebrew|
122
128
|:---|:---|:---|:---|
123
129
|yum clean all|dnf clean all|apt clean|brew cleanup -s|
124
130
125
- ## OS にインストールした OSS をアンインストールする
131
+ # OS にインストールした OSS をアンインストールする
126
132
127
133
|yum|dnf|apt|Homebrew|
128
134
|:---|:---|:---|:---|
129
135
|yum remove パッケージ名|dnf remove パッケージ名|apt remove パッケージ名|brew uninstall パッケージ名|

過去のナレッジの内容

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