はじめに
MacのTerminal(ターミナル)で、QnapにSSHで接続し、ファイルをいざ編集しようと思ったら、コメント部分の漢字が文字が化けてしまいました。vim のエンコードも変更できず困って色々と調べてこの記事をまとめてみました。
結論からいうと、QnapのVimのバージョンが古い(または、使えるコマンドがインストールされていない)のが原因のようです。Sambaで接続しているMacのVimでは文字化けをおこしませんでした。
環境
QNAP | TS-231P |
Mac | macOS Catalina Version 10.15.2 |
文字化けしている VIM | Version 7.2 |
Entware-std のインストール
パッケージマネージャ「Entware-std」をインストールします。
QNAPにリポジトリを追加する
QNAPのデスクトップにある「App Center」をクリックします。
起動した「App Center」の右上にある「歯車」アイコンをクリックします。
「設定」画面の「アプリリポジトリ」を選択、「追加」ボタンを押し、リポジトリの名前とWebサイトを追加してください。
[PreTitle val="WEBサイト名"] !https://www.qnapclub.eu/en/repo.xml
リポジトリの追加ができると、画面左側に「Qnap Club」というアイコンができています。
Entware-std のインストール
「Qnap Club」のアイコンをクリックします。「Qnap Club」に登録されているアプリ一覧が表示されます。
アプリの一覧から「Entware-std」の「インストール」ボタンを押します。
「デジタル署名警告」表示されますので、ここに記載どおり「リスクを理解した上でこのアプリケーションをインストールします。」を理解した上でチェックを付け、「インストール」ボタンを押します。
Entware-std を使って「VIM」をインストール
Mac のターミナルを起動し、SSHでQnapに接続します。
Entware-std の動作確認
以下のような内容が出力されれば、「Entware-std」がインストールされています。
[PreTitle val="Qnap Terminal"] # /opt/bin/opkg opkg must have one sub-command argument usage: opkg [options...] sub-command [arguments...] where sub-command is one of: Package Manipulation: update Update list of available packages upgrade Upgrade packages install Install package(s) configure Configure unpacked package(s) remove <pkgs|regexp> Remove package(s) flag Flag package(s) =hold|noprune|user|ok|installed|unpacked (one per invocation) 〜〜〜 以下、省略 〜〜〜
Vimのインスール
[PreTitle val="Qnap Terminal"] # /opt/bin/opkg install vim-full
VimのシンボリックリンクをインストールしたVimにする
すでに設定されているVimのシンボリックリンクを消し、インストールしたバージョンのVimと切り替えます。
すでに設定されているシンボリックリンクを消す
[PreTitle val="Qnap Terminal"] # rm /bin/vi # rm /bin/vim
インストールしたVimにシンボリックリンクを作成する
[PreTitle val="Qnap Terminal"] # ln -s /opt/bin/vim /bin/vi # ln -s /opt/bin/vim /bin/vim
確認のために「文字化け」をおこしていたファイルをVimで開き、「文字化け」がおこっていないことが確認できれば、完了です。
おわりに
MacとQnapをSambaでつないでいるのだから、そのままMacのVimで編集すればいいことなのですが、QnapのターミナルでPHPのソースを実行したかったこともあり、フルパッケージ版のVimをインストールすることにしました。
「Entware-std」でインストールできるパッケージは以下コマンドで確認ができます。色々とインストールできるアプリケーションもあるので、「Entware-std」のインストールはいいかもしれませんね。
[PreTitle val="Qnap Terminal"] # /opt/bin/opkg list
おつかれさまでした。
[Footer]