このエントリーをはてなブックマークに追加

Cygwinにnkfをインストールする手順


Cygwinにnkfをインストール

Cygwinのパッケージにnkfがなかったので、ソースからコンパイルしてみました。
以下にnkfソースの入手からコンパイル、実行までを記します。


nkfソースの入手

以下のURLからnkfのソースコードをダウンロードします。
nkf Network Kanji Filter
https://ja.osdn.net/projects/nkf/

本記事作成時、以下のファイルが最新バージョンでした。

nkf-2.1.4.tar.gz

事前準備

gcc-coreとmakeをインストールしておいてください。

nkfのコンパイル

ダウンロードしたnkfのソースコードアーカイブを$HOME(~)に保存しコンパイルしてみます。

  1. ブラウザでダウンロードしたnkfのソースコードアーカイブを$HOMEにコピーしました。
    ユーザ名は読み替えてください。
    cp /cygdrive/c/Users/sutot/Downloads/nkf-2.1.4.tar.gz $HOME/.
     
  2. ダウンロードしたファイルを展開します。
    tar zxvf nkf-2.1.4.tar.gz
     
  3. 展開したnkfディレクトリにcdします。
    cd nkf-2.1.4
     
  4. makeコマンドを実行します。
    make
    以下の出力がされます。
    $ make
    cc -g -O2 -Wall -pedantic -c nkf.c
    cc -g -O2 -Wall -pedantic -c utf8tbl.c
    cc -g -O2 -Wall -pedantic  -o nkf nkf.o utf8tbl.o
     
  5. make install コマンドを実行します。
    make install
    以下の出力がされます。
    $ make install
    mkdir /usr/local/bin
    mkdir: ディレクトリ `/usr/local/bin' を作成できません: File exists
    make: [Makefile:49: install-main] エラー 1 (無視されました)
    cp -f nkf /usr/local/bin/
    mkdir /usr/local/man
    mkdir /usr/local/man/man1
    cp -f nkf.1 /usr/local/man/man1/
    mkdir /usr/local/man/ja
    mkdir /usr/local/man/ja/man1
    cp -f nkf.1j /usr/local/man/ja/man1/nkf.1
     
  6. nkfコマンドがインストールされているか確認します。
    which nkf
    以下の出力がされます。(usr/local/binにインストールされてるのが確認できます。)
    $ which nkf
    /usr/local/bin/nkf
     
  7. コンパイルに使用したディレクトリおよびファイルを削除する
    nkfが/usr/local/binにインストールされたので、不要になったファイルを削除します。
    cd ..
    rm -fr nkf-2.1.4.tar.gz nkf-2.1.4

nkfを使ってみる

WindowsのipconfigをCygwinターミナルで実行するとSJISで出力されるため
文字化けが発生します。

$ ipconfig

Windows IP ▒\▒▒


▒C▒[▒T▒l▒b▒g ▒A▒_▒v▒^▒[ VirtualBox Host-Only Network:

   ▒ڑ▒▒ŗL▒▒ DNS ▒T▒t▒B▒b▒N▒X . . . . .:

ipconfigの出力をパイプを使いnkfコマンドに渡すことにより文字化けせずに出力されます。

$ ipconfig | nkf

Windows IP 構成


イーサネット アダプター VirtualBox Host-Only Network:

   接続固有の DNS サフィックス . . . . .:

以上、Cygwinでnkfコマンドをコンパイルする方法でした。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-06-08 (月) 21:02:50