実践演習
実践演習
nkfパッケージのインストールについて
これからパッケージ管理システム(yumコマンド)を使ってnkfパッケージのインストールを行います。
nkfとは
nkfは文字コードの変換を行うソフトウェアです。
OS間でファイルを移動する際、ファイルの文字コードや改行コードが異なると、文字化けなどの原因になるので、正しく読み込むためにnkfのような文字コードを変換する機能が必要になります。


補足:文字コードとは
また文字コードとは、コンピュータが文字を処理するために、各文字に割り振られた番号(数値)です。
「あ」は「001」、「い」は「002」といった感じで、番号が割り振られているので、文字コードに従って、番号に対応した文字が表示されます。
文字コードのルールによって各文字に対応する番号が異なるため、文字コードが異なるファイルを開くと、文字化けが発生することがあります。
一方、改行を表すために用いられる番号(数値)を、改行コードと呼びます。


nkfパッケージのインストール手順
① EPELリポジトリの追加
CentOS7の標準(既存)リポジトリには、nkfパッケージが存在しないので、nkfパッケージを含むEPELリポジトリをインストールします。
② nkfパッケージのインストールと初期設定
nkfパッケージをインストールし、nkfコマンドを利用できるよう設定をします。
③ nkfコマンドの使用
nkfコマンドを利用します。

① EPELリポジトリの追加
CentOS7の標準(既存)リポジトリには、nkfパッケージが存在しないので、nkfパッケージを含むEPEL* リポジトリをインストールします。
実践:EPELリポジトリのインストール
1 | [root@localhost ~]♯yum -y install epel-release |
*EPEL (Extra Packages for Enterprise Linux)について
Fedoraプロジェクトの技術者たちがFedora のパッケージをRed Hat Enterprise Linux (RHEL) やその互換ディストリビューション上で使用したいという要望から作成された拡張パッケージ。
RHELクローンとしてサーバー用途に用いられることが多いCentOSは簡素で堅牢なパッケージを提供する傾向にあります。
CentOSの公式リポジトリは保守的でパッケージ数も多くないため、EPELなどを追加し必要なパッケージを追加するといった使い方がされます。

② nkfパッケージのインストールと初期設定
実践
1) nkfパッケージのインストール
1 | [root@localhost ~]♯yum -y install nkf |
2) インストールしたnkfのバージョンの確認
1 | [root@localhost ~]♯nkf --version |
2 | Network Kanji Filter Version 2.1.3 (2013-11-22) |
3 | Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa). |
4 | Copyright (C) 1996-2013, The nkf Project. |
3) nkfコマンドが使えるように設定する
nkf(文字列変換)をコマンドとして利用できるようにするため、 「/usr/local/bin/nkf」から「/usr/bin/nkf」へシンボリックリンクを張ります。
1 | [root@localhost ~]♯ ln -s /usr/ local /bin/nkf /usr/bin/nkf |

③ nkfコマンドの使用
オプションの一覧
実際にコマンドを使用する前に、以下のオプションを確認しましょう。

実践①:文字コード変換で使用するファイルを用意する
1) ファイルを作成するため、Viエディタを起動します。
1 | [root@localhost ~]♯ vi a1 |

2) インサートモード(編集モード)を起動する
「i」のキーを押す)を実行して、インサートモードに切り替えます。
画面左下に、「-挿入-」という文字が表示されます。

3) 下記の内容を記載します
1 | あいうえお |
4) インサートモードを終了する
インサートモードを終了するため、[Esc]キー をクリックしてください。
画面左下に「-挿入-」という文字が、表示されなくなったことがわかります。
5) 上書き保存する
上書き保存するため、「:wq」をタイプして、「Enter」キーをクリックします。
※ タイプすると画面左下に、タイプした文字が表示されますので、「:wq」をタイプし、「Enter」キーをクリックしてください。
実践②:文字コードを確認する
1) サーバー(CentOS)の文字コードを確認する
1 | [root@localhost user11] # echo $LANG |
2 | ja_JP.UTF-8 |
2) 作成したファイルの文字コードを確認する
1 | [root@localhost] # nkf --guess a1 |
2 | UTF-8 (LF) |
実践③:文字コード、改行コードを変換する
1) 文字コードを変換する
a. ファイル「a1」の文字コードを「shift-JIS」に変換したファイル「ai_sijs」を作成します。
1 | [root@localhos] # nkf -s a1 > ai_sjis |
b. 作成したファイル(ai_sijs)の文字コードを確認します。
1 | [root@localhost] # nkf --guess ai_sjis |
2 | Shift_JIS (LF) |

2) 改行コードを変換する
a. ファイル「a1」の改行コードを「CR」に変換したファイル「ai_cr」を作成します。
1 | [root@localhost] # nkf -w -Lm a1 > ai_cr |
b. 作成したファイル(a1_cr)の改行コードを確認します。
1 | [root@localhost] # nkf --guess ai_cr |
2 | UTF-8 (CR) |

3) 元ファイルの文字コードを変換する
a. ファイル「a1」の文字コードを「EUC-JP」に変換し、上書きします。
1 | [root@localhost] # nkf -e --overwrite a1 |
b. ファイル「a1」の文字コードを確認します。
1 | [root@localhost] # nkf --guess a1 |
2 | EUC-JP (LF) |

パッケージのアップデートの手順
① インストール済みのパッケージの一括アップデート
既にインストールされているパッケージをまとめて最新のものにアップデートします。
② パッケージのダ自動アップデートの設定
「yum-cron」というサービスを利用して、パッケージが自動でアップロードされるように設定します。

① インストール済みのパッケージの一括アップデート
既にインストールされているパッケージをまとめて最新のものにアップデートします。
以下のコマンドに、引数に何も指定しなければ、全てのパッケージを一括で更新できます。
実践
1 | [root@localhost ~] #yum -y update |
2 | Complete! |
②自動更新を有効にする(yum-cronの利用)
続いてパッケージの自動更新を有効にするため、「yum-cron」というサービスを利用します。
yum-cronとは
このサービスは、既にインストールされているパッケージの更新状況を管理するためのサービスです。
具体的には更新状況を確認したり、自動更新を有効にすることができます。

実践①:yum-cronのインストール
yum-cronのインストール(※任意)
環境によっては「yum-cron」がデフォルトでインストールされていますので、必要な方はインストールしてください。
1 | [root@localhost ~]♯yum -y install yum- cron |
yum-cronのインストール状況の確認
「yum-cron」がインストールされているのかを確認します。インストールされていない場合は、「1. yum-cronのインストール」を実施してください。
1 | [root@localhost ~]♯yum list installed | grep yum- cron |
2 | yum- cron .noarch 3.4.3-168.el7.centos @base |
yum list installed | grep パッケージ名
指定のパッケージのインストール状況を確認できます。
yum list installedでインストール済みのパッケージの一覧を確認し、grepコマンドで指定のパッケージ名だけの情報に限定することができるからです。
実践②:自動更新の機能を使うための設定
yum-cronで自動更新を有効にする機能を使うための、設定を行います。
設定するためには、yum-cronの設定ファイル「/etc/yum/yum-cron.conf」を編集します。
1) ファイルを作成するため、Viエディタを起動します。
1 | [root@localhost ~]♯ vi /etc/yum/yum- cron .conf |

2) インサートモード(編集モード)を起動する
「i」のキーを押す)を実行して、インサートモードに切り替えます。画面左下に、「-挿入-」という文字が表示されます。

3) 下記の通りに編集します
1 | # Whether updates should be applied when they are available. Note |
2 | # that download_updates must also be yes for the update to be applied. |
3 | apply_updates = yes |
図

4) インサートモードを終了する
インサートモードを終了するため、[Esc]キー をクリックしてください。
画面左下に「-挿入-」という文字が、表示されなくなったことがわかります。
5) 上書き保存する
上書き保存するため、「:wq」をタイプして、「Enter」キーをクリックします。
※ タイプすると画面左下に、タイプした文字が表示されますので、「:wq」をタイプし、「Enter」キーをクリックしてください。
実践③:自動更新サービスの起動
1) 自動更新サービスの起動
1 | [root@localhost ~] #systemctl start yum-cron |
2) Linuxの起動時に自動更新サービスが起動するよう設定
1 | [root@localhost ~] #systemctl enable yum-cron |
パッケージアップデートの自動起動について
本番系サーバーではバージョンが変わることによって障害が起きたりするので、通常、この作業は行いません。
一般的には、アップデートすべきパッケージがどれだけあるか、毎日チェックし、そのチェック結果を通知する仕組みを採ることが多いです。
【補足】systemctlコマンドについて
systemctlコマンドについて
特定のサービス(プログラムやアプリケーション)を、起動したり、停止するなど、サービスを管理するためのコマンドです。
オプションの内容によって、起動するのか、停止するのかを指定できます。
代表的なオプション
