実践演習

実践演習

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リポジトリのインストール

[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パッケージのインストール
[root@localhost ~]♯yum -y install nkf
2) インストールしたnkfのバージョンの確認
[root@localhost ~]♯nkf --version
Network Kanji Filter Version 2.1.3 (2013-11-22)
Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa).
Copyright (C) 1996-2013, The nkf Project.
3) nkfコマンドが使えるように設定する

nkf(文字列変換)をコマンドとして利用できるようにするため、 「/usr/local/bin/nkf」から「/usr/bin/nkf」へシンボリックリンクを張ります。

[root@localhost ~]♯ln -s /usr/local/bin/nkf /usr/bin/nkf

③ nkfコマンドの使用

オプションの一覧

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

実践①:文字コード変換で使用するファイルを用意する

1) ファイルを作成するため、Viエディタを起動します。
[root@localhost ~]♯ vi a1
2) インサートモード(編集モード)を起動する

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

3) 下記の内容を記載します
あいうえお
4) インサートモードを終了する

インサートモードを終了するため、[Esc]キー をクリックしてください。
画面左下に「-挿入-」という文字が、表示されなくなったことがわかります。

5) 上書き保存する

上書き保存するため、「:wq」をタイプして、「Enter」キーをクリックします。
※ タイプすると画面左下に、タイプした文字が表示されますので、「:wq」をタイプし、「Enter」キーをクリックしてください。

実践②:文字コードを確認する

1) サーバー(CentOS)の文字コードを確認する
[root@localhost user11]# echo $LANG
ja_JP.UTF-8
2) 作成したファイルの文字コードを確認する
[root@localhost]# nkf --guess a1
UTF-8 (LF)

実践③:文字コード、改行コードを変換する

1) 文字コードを変換する

a. ファイル「a1」の文字コードを「shift-JIS」に変換したファイル「ai_sijs」を作成します。

[root@localhos]# nkf -s a1 > ai_sjis

b. 作成したファイル(ai_sijs)の文字コードを確認します。

[root@localhost]# nkf --guess ai_sjis
Shift_JIS (LF)
2) 改行コードを変換する

a. ファイル「a1」の改行コードを「CR」に変換したファイル「ai_cr」を作成します。

[root@localhost]# nkf -w -Lm a1 > ai_cr

b. 作成したファイル(a1_cr)の改行コードを確認します。

[root@localhost]# nkf --guess ai_cr
UTF-8 (CR)
3) 元ファイルの文字コードを変換する

a. ファイル「a1」の文字コードを「EUC-JP」に変換し、上書きします。

[root@localhost]# nkf -e --overwrite a1

b. ファイル「a1」の文字コードを確認します。

[root@localhost]# nkf --guess a1
EUC-JP (LF)

パッケージのアップデートの手順

① インストール済みのパッケージの一括アップデート

既にインストールされているパッケージをまとめて最新のものにアップデートします。

② パッケージのダ自動アップデートの設定

「yum-cron」というサービスを利用して、パッケージが自動でアップロードされるように設定します。

① インストール済みのパッケージの一括アップデート

既にインストールされているパッケージをまとめて最新のものにアップデートします。
以下のコマンドに、引数に何も指定しなければ、全てのパッケージを一括で更新できます。

実践

[root@localhost ~]#yum -y update
Complete!

②自動更新を有効にする(yum-cronの利用)

続いてパッケージの自動更新を有効にするため、「yum-cron」というサービスを利用します。

yum-cronとは

このサービスは、既にインストールされているパッケージの更新状況を管理するためのサービスです。

具体的には更新状況を確認したり、自動更新を有効にすることができます。

実践①:yum-cronのインストール

yum-cronのインストール(※任意)

環境によっては「yum-cron」がデフォルトでインストールされていますので、必要な方はインストールしてください。

[root@localhost ~]♯yum -y install yum-cron
yum-cronのインストール状況の確認

「yum-cron」がインストールされているのかを確認します。インストールされていない場合は、「1. yum-cronのインストール」を実施してください。

[root@localhost ~]♯yum list installed | grep yum-cron
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エディタを起動します。
[root@localhost ~]♯vi /etc/yum/yum-cron.conf
2) インサートモード(編集モード)を起動する

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

3) 下記の通りに編集します
# Whether updates should be applied when they are available. Note
# that download_updates must also be yes for the update to be applied.
apply_updates = yes
4) インサートモードを終了する

インサートモードを終了するため、[Esc]キー をクリックしてください。
画面左下に「-挿入-」という文字が、表示されなくなったことがわかります。

5) 上書き保存する

上書き保存するため、「:wq」をタイプして、「Enter」キーをクリックします。
※ タイプすると画面左下に、タイプした文字が表示されますので、「:wq」をタイプし、「Enter」キーをクリックしてください。

実践③:自動更新サービスの起動

1) 自動更新サービスの起動
[root@localhost ~]#systemctl start yum-cron
2) Linuxの起動時に自動更新サービスが起動するよう設定
[root@localhost ~]#systemctl enable yum-cron
パッケージアップデートの自動起動について

本番系サーバーではバージョンが変わることによって障害が起きたりするので、通常、この作業は行いません。

一般的には、アップデートすべきパッケージがどれだけあるか、毎日チェックし、そのチェック結果を通知する仕組みを採ることが多いです。

【補足】systemctlコマンドについて

systemctlコマンドについて

特定のサービス(プログラムやアプリケーション)を、起動したり、停止するなど、サービスを管理するためのコマンドです。
オプションの内容によって、起動するのか、停止するのかを指定できます。

代表的なオプション


NEXT>> 管理システムを使わずにインストールする方法