Kamuycikap - SentenceDataBase

日々の勉強の記録を気分で書き綴るブログ

MX Linux 18 で改行コードを一括変換 DOS → UTF8 CRLF → LF

WindowsのファイルをLinuxで屠る

Windows環境でも、Unixな環境のコマンドを使いたい。
そんな時に利用するのが、busybox
https://frippery.org/busybox/

特にWindowsを意識することなくbashが動作し、GrepAWKを使うことが出来ます。
大きなテキストファイルをアレコレ屠った続きをLinuxPCでやろうとすると、文字コードと改行コードが違うので・・・(以下略

いつも忘れるので、両方のコマンドをメモ。
ちなみに、大層なタイトルですが、別にMX Linux 18でなくても動きます。

フォルダを掘って再帰的に変換してくれます。

# DOS → UTF8 一括変換
find . -type f | xargs nkf -w --overwrite

# CRLF → LF 一括変換
find . -type f | xargs file | grep CRLF | awk -F: '{print $1}' | xargs nkf -Lu --overwrite

小さな機能を繋げて目的の機能を実現。
small is beautifull!!

MX Linux 18 でM5STACK開発環境構築

Linux だって でM5STACK開発したい

Windowsでの開発環境構築情報は沢山あるけれど、Linuxでの開発環境構築情報は少ない!?
という印象なので、今更ではありますが、Linuxでの開発環境構築について執筆。

結論としては、無事に環境構築完了。
しかしながら、若干躓いたことがあるのでメモとして残す。

開発環境としては、本家に記載のあるArduinoで行います。
Arduino以外の開発環境も有りますが、一番安定している様子なので。

私の場合、Arudinoはライブラリなどの環境構築とプログラムの焼き込み環境です。
プログラミングは、外部エディタ(Emacs、SublimeText3等)で行っています。

Arduinoのインストール

基本的なインストールは、本家の情報のとおりに行います。
本家ではUSBドライバのインストールについて記載が有りますが、私の環境ではインストールすること無く動作しました。
※もしかしたら、様々な環境をインストールしているので、それらの何処かで入っていた可能性も有ります。

M5Stack - A series of modular stackable development devices

基本的には、本家の通りにインストールすれば、OKでした。

遭遇した問題点

ここからが、このブログの本題と申しますか、あえてこのネタを書く意味です。
開発環境の構築が成功した後、そこはやはり動かしたいわけで。
いくつかの問題点は、きっと同様に躓くであろうと考えます。

「○○.h」に対して複数のライブラリが見つかりました。というエラーが出る

私の場合は、「SD.h」でした。
Google先生に問い合わせた結果、的を得ていたのはこちらのブログ。

ESP8266, ESP-WROOM-02, ESPr Developer トラブルシューティングまとめ | ページ 2 / 5 | mgo-tec電子工作

完璧に一致しており、たまたまSD.hで良かったなと。
私も、ブログ主様と同様に様々なバージョンを試したいので、インストーラーを利用せずにArudinoを使っています。
ライブラリ管理の中でアップデートを行うとこのような症状になるらしい。

現在、Ver 1.8.8 を利用しており、homeディレクトリのopt下にダウンロードした環境を配置しています。
※あくまでも私が遭遇した sd.h のフォルダですので適度読み替えてください。

削除したフォルダ → /home/kamuycikap/opt/arduino-1.8.8/libraries/SD

ImportError: No module named ○○ というエラーが出る

私の場合、ImportError: No module named serial とエラーになりました。

Traceback (most recent call last):
  File "/home/kamuycikap/.arduino15/packages/esp32/tools/esptool_py/2.6.1/esptool.py", line 37, in <module>
    import serial
ImportError: No module named serial
exit status 1
ボードESP32 Dev Moduleに対するコンパイル時にエラーが発生しました。

これもgoogle先生に質問し、参考にしたブログがこちら。

酔いどれプログラマーの不定期日記: ESP32 にて謎のエラー


どうも、Pythonのserialライブラリが不足しているようなので、下記のコマンドでインストール

$ sudo apt install python-pip
$ pip install pyserial

結果、コンパイルは無事に完了するようになりました。

MX Linux 18 でvisual studio codeを使う

MX Linux 18 に、visual studio code がインストールできるのか?

結論から先に書くと、問題なくインストールできた。
非常にあっけない。

visual studio code for linux をダウンロード

Download Visual Studio Code - Mac, Linux, Windows
ここから、「.deb」ファイルをダウンロードする。
任意のフォルダにダウンロードすればOK。

インストール

ファイラを起動し、ダウンロードしたファイルのフォルダまでカレントを移動。
表示されているdebファイルをダブルクリックで起動。
特に何も注意すること無く、ウィザードに従って「次へ」を意味するボタンをクリックする。

起動

MXメニューをクリックし、「開発」を選択すると、Visual Studio Code が追加されています。
クリックすればVisual Studio Code が起動します。

日本語化

これもあっけなく終了。
手順を写真で掲載。

f:id:kamuycikap:20190824220624p:plain
日本語パッケージを選択

f:id:kamuycikap:20190824220652p:plain
インストールボタンをクリック

上記の処理を終了したら、一度 visual studio code を閉じて起動し直す。
すると、メニュー等が日本語になっています。

MX Linux 18 で、Shift-JISなファイルたちを一発UTF8変換

ディレクトリ以下を再帰的に一発変換(Shift-JIS → UTF8)したい

昔ながらのコマンドで、特に新しいテクニックでも何でもないけれど、やろうとすると忘れているやつですね。
ネットに星の数ほど転がっていますが、MX Linux 18 でも同様ですと報告する意味で。
※当たり前か・・・

find . -type f | xargs nkf -w --overwrite

nkfのオプションもいつも忘れるので書いておく。
よく使うものだけ。

-j : JISコードを出力
-e : EUCコードを出力
-s : Shift-JISコードを出力
-w : UTF-8コードを出力(BOM無し)
-g : 自動判別の結果を表示
--overwrite : 引数のファイルに上書

MX Linux 18 で楽天Koboデスクトップアプリを動かす(Wine2.21)

どうしても楽天Koboの本が読みたかった

普段遣いがMX Linux 18(以降 MX)となってしばらく立ちますが、快適に利用できています。
そうなりますと、あれこれもMXでやりたくなります。

今回、MX上にWineの環境を構築し、楽天Koboのデスクトップアプリを動作させて、Linux上で書籍を参照できるようにします。
あくまで記録なので、全ての操作が必要ではないような気はしますが・・・やった作業を含めて晒しますw

先に結論を書きますと、快適に動いています。

Wineの環境を構築

私の場合ですが・・・なぜかwine-2.21 (Staging)がインストールされていました。
過去にインストールしていたのか否か・・今となっては不明なのですが、予めwine-2.21がインストールされていることが前提です。

ですので、この記事を読んでいる皆さんは、まずMX Linux 18上で下記のコマンドを試してみましょう。

$ wine --version
wine-2.21 (Staging)

上記のようにバージョン表示されれば、wine2.21がインストールされています。
インストールされていない人は、先人たちが頑張ってくれているはずなので、Google検索などで勉強してインストールしてみてください。
今回の私の実験から、少なくとも、バージョン2.21以上であれば、楽天Koboデスクトップアプリは動作するようです。

ちなみにですが、MXメニューから「MX Package Installer」を起動しwineを検索すると、バージョン1.8がヒットします。
私のPCでは、1.8はインストールされていない状態でした。
※もしかしたらバージョン1.8で動くかもしれませんが・・・試していません。

Windows側からフォントを持ってくる

Wine2.21のインストールが完了したら、次はWindowsのフォントを突っ込みます。
wineをインストールしただけでは、表示されるウィンドウの文字が「□」になっている可能性が高いです。
※私はそうでした。

そこで、WindowsのFontsフォルダからフォントをコピーしてきます。
Windowsが動いているパソコンなんか無いわぃ!って人は・・・・頑張ってください。

Windows側からLinux側にファイルをコピーできれば、その手法は何でも良いです。
私はMicroSD経由でフォントファイルをコピーしました。

コピー元:Windowsのフォントをコピー

対象のフォルダは「C:\Windows\Fonts」です。
C:\Windows\Fonts フォルダの中にある、拡張子が「ttf」と「ttc」のファイルを全てコピーします。

コピー先:Linux側にフォントを貼り付け

Windows側からコピーしてきたttfファイルとttcファイルを、wineが管理しているfontディレクトリへ配置します。
対象のディレクトリは「/home/kamuycikap/.wine/drive_c/windows/Fonts/」です。
※上記Pathのkamuycikapはユーザー名ですので、自分の環境に置き換えて考えてください。

Wineを起動し文字化けしていないことを確認

フォントの配置(コピー)が完了したら、下記のコマンドで正しく文字が表示されるか否かを確認します。

$ winecfg

wineの設定画面が起動するはずです。
起動した画面上に表示される文字が、「□」でなければ成功です。

f:id:kamuycikap:20190531124514p:plain
Wineのコンフィグ画面

楽天Koboデスクトップアプリのインストール

ここまでできたら、いよいよ楽天Koboデスクトップアプリのインストール開始です。

楽天Koboデスクトップアプリのダウンロード

https://books.rakuten.co.jp/info/introduction/e-book/
ここからWindows用のインストーラーをダウンロード

f:id:kamuycikap:20190531124719p:plain
楽天Koboデスクトップアプリダウンロード画面
※2019年5月28日現在のダウンロードファイルで検証済み

楽天Koboデスクトップアプリのインストール

ダウンロードしたファイルをwineで実行します。

f:id:kamuycikap:20190531124603p:plain
右クリックからWineで実行(ファイラ:Thunar1.6.15)

すると、インストーラが起動しインストールが始まります。
インストーラーが終了すると、デスクトップにアイコンが出現しているはずです。
※wineで実行してもうんともすんとも言わない場合もあります。その場合でも実は動いており、知らないうちにアイコンがデスクトップにあるはずです。

起動!

デスクトップにあるアイコンをダブルクリックするか、MXメニューから楽天Koboデスクトップアプリをクリックして実行します。
IDの入力やパスワードの入力を促され、おなじみの画面が表示されます。

f:id:kamuycikap:20190531124803p:plain
楽天Kobo デスクトップアプリ

日本語も全て表示され、なんの問題もなく利用できています。

MX Linux 18 にSublimeText 3 を導入しClozureCL開発

MX Linux 18にSublimeText3によるCommonLisp開発環境構築

普段、自分はCommonLispのコードを書いたり試したりするとき、鉄板のSLIMEを利用しています。
普段からEmacsを使っているので、SLIMEで事足りているんですが、CommonLispを布教する時、残念ながらEmacsは初心者の障壁になってしまいます。
一部の人からは、変態扱いまでされてしまうしまつ・・・。
そこで、SublimeText3で環境を整えてみます。

ClozureCLのインストール

なにはともあれ、CommonLispの実行環境をインストールしなければなりません。
以前は、エイリアン本の影響でCLISPを使っていたんですが、QuickLispがまともに動作しない症状に悩まされ、ClozureCLを選択しました。
理由は、たまたま布教相手がMacユーザーだったから。

ダウンロード

本家のサイトからダウンロードします。
https://ccl.clozure.com/download.html

画面中央少し上の右あたりにあるリンクがダウンロードのリンク。
Linuxの横にある「.tar.gz」をクリックしてファイルをダウンロードし、解凍するとcclフォルダができます。
cclフォルダを、~/opt など、好きなところに配置。

インストール

cclフォルダの中にある「lx86cl64」のソフトリンク(ショートカット)を作成し、名前をcclに変更。
※32bit版の場合はlx86clをソフトリンクに

作成したcclを /usr/local/bin/ へコピー。
これで、次回ターミナル実行時から、プロンプトに ccl とタイプしてEnterキーを叩けば、ClozureCLのREPLが起動されます。
※環境によっては、chmod コマンドで「lx86cl64」と「lx86cl」に実行権限を与えてやる必要があるかもしれません。

SublimeText3をインストール

SublimeText3の本家から実行ファイルをダウンロードします。
https://www.sublimetext.com/3

Webページ上部にある下記の文字列に注目です。

Linux repos - also available as a 64 bit or 32 bit tarball 

「64bit」か「32bit tarball」のリンクをクリックしてダウンロードします。
ダウンロードしたファイルを解凍すると、「sublime_text_3」フォルダが作成されます。
作成されたフォルダを ~/opt の中に配置。

sublime_text_3フォルダの中にある「sublime_text」が、実行するアプリケーション本体です。
※環境によっては chmod コマンドで実行権限を与えてやる必要があるかもしれません。

SublimeText3にプラグインシステムを導入

SublimeText3とくれば必須のプラグインシステムです。

英語のサイトですが、プラグインシステムの導入方法がきちんと記載されています。
英語ですが、恐れずに眺めましょう!
https://packagecontrol.io/installation#st3

SublimeText3 で Ctrl + `を押すとコンソールが出てきます。
Ctrl + ` の「`」は日本語キーボードなら「SHIFT + @」で入力できます。
難しければ、メニューから

Preferences > Browse Packages…

でコンソールが出現します。

プラグインシステムのWebページ左下にあるPythonコードをコピペし、コンソールに貼り付け、Enterキーを押して実行してください。
※必ずWebページ中央左付近にある「SublimeText3」側のタブをクリックしておいてください!

一応、2019年4月2日現在のSublimeText3用Pythonコードを貼っておきます。

import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0ef93d5f746d80ef60'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by) 

深町さんのリポジトリを追加

プラグインシステムの導入が完了したら、必要なリポジトリの追加です。

有名なCommonLisperの深町さんが、ブログでSublimeText用REPLのリポジトリを公開してくださっています。
ありがたく使わせて頂きます。感謝!
メニューから

Preferences > Package Control

をクリックし、

Package Control: Add repository

とタイプします。
Add まで入力すると、ドロップダウンリストの中にAdd repositoryがあるはずですので、マウスクリックしてもOKです。

すると、画面下部にURLの入力欄が出現しますので、

https://github.com/fukamachi/SublimeREPL

を入力します。
入力を完了したらEnterキーを叩いて完了です。

CommonLisp開発に便利なプラグインを導入

無事にプラグインシステムの導入が完了しましたら、いよいよ便利プラグインの導入です。

Preferences > Package Control

としてプラグインシステムを起動し、

Package Control: install package

としてEnterキーを叩き、パッケージのインストール画面に進みます。

表示される入力欄に、インストールしたいパッケージ名をタイプすると、ドロップダウンリストに表示されるはずです。
今回オススメするのは

  1. ispindent
  2. SublimeREPL
  3. paredit

です。
3つそれぞれ入力し導入します。
※一度にひとつずつ、順にパッケージをインストールします。

SublimeText3からREPLを実行できるように

REPLもパッケージインストールから導入します。

Preferences > Package Control

としてプラグインシステムを起動し、

Package Control: install package

としてEnterキーを叩き、パッケージのインストール画面に進みます。

SublimeREPL

とタイプすると、ドロップダウンリストに絞り込まれて表示されるはずです。

SublimeText3のメニューを日本語化

最初にやるべきかとは思いましたが、今回は後回しにしてしまいました。
メニューの日本語化です。
日本語化もプラグインで行います。

日本語化プラグインの導入

もうおなじみになったであろうパッケージインストール画面を表示させます。

Preferences > Package Control

としてプラグインシステムを起動し、

Package Control: install package

としてEnterキーを叩き、パッケージのインストール画面に進みます。

目的の日本語化パッケージは

Japanize

です。

無事に導入されると、SublimeText3の画面上に、インストール方法が記載されます。
※残念ながら、インストール方法の文章は、Windows向けの内容になっており、Linuxでは表示のとおりには操作できません。

日本語化メニューファイルを配置

無事にJapanizeが導入できると、

~/.config/sublime-text-3/Packages/Japanize

フォルダができているはずです。

その中に入っているファイルの中から、ファイル名の末尾が「.jp」になっているファイルたちだけを、

~/.config/sublime-text-3/Packages/Default

にコピーします。
※Defaultフォルダが無い場合は作成してください。

Defaultフォルダ内のファイルをリネーム

コピーしただけでは日本語メニューにはなりません。
コピーしたファイルのファイル名を変更しなければ有効にならないのです。

具体的には、Defaultフォルダにコピーしたファイル名「〜〜.jp」の、「.jp」を消します。
コピーしたファイル全てが対象です。

全てのファイルのファイル名から「.jp」を取り除いたら、SublimeText3を再起動してみると・・・メニューが日本語になっているはずです。

タグシステム「ctags」を導入

ソースリーディングに必須のctags。
特に、人の書いたソースを読む時間が劇的に短縮されます。

ctagsのインストール

インストールは「MX パッケージンストーラー」からできるので、非常に簡単です。

MXパッケージインストーラー → StableRepoタブ → exuberant-ctags

インストール完了後、ターミナルを開き、ctagsコマンドを叩くとヘルプの見方を促されるはずです。

$ ctags
ctags: No files specified. Try "ctags --help".
SublimeText3 に ctagsをセットアップ

システムにctagsをセットアップしたあとは、SublimeText3から使えるように設定します。

SublimeText3 を起動し、

基本設定(n) → Package Control → ctags(入力して出現させる)

と進み、ctagsパッケージをインストールします。

パッケージのインストールを完了したら、利用するための設定を書き込んで完了です。
SublimeText3 のメニューバー操作にて、下記のとおりにマウスクリック。

基本設定(n) → Package Settings → CTags → Settings - User

表示される画面に下記の内容を書き込みます。

{
  "command" : "/usr/local/bin/ctags"
}

以上で、SublimeText3 へのctags設定は完了です。
Ctagsの詳しい使い方は・・・また別の機会に、、(汗

さぁ!開発してみよう!

セットアップした環境を早速試してみましょう。

REPLの起動

REPLとは、Read Eval Print Loop の略。
簡単に説明すると、Lispの実行環境であり編集環境です。
RubyPythonの経験がある人はおなじみですね。
その技術はLispのREPLから模倣されています。
Rubyの作者、まつもとゆきひろさんは、自他ともに認める優秀なLispプログラマーです。

ツール(T) → SublimeREPL → Common Lisp → Clozure CL

f:id:kamuycikap:20190414124230p:plain
REPLの起動
すると、新たなタブとしてClozureCLのREPLがSublimeText3上に出現します。

f:id:kamuycikap:20190414125048p:plain
起動したREPL

ソースファイルの作成

REPLを起動したら、新規ファルの作成でLispソースファイルを作成します。
フィアル名は適当に「sample.lisp」とでもしておきます。

f:id:kamuycikap:20190414124149p:plain
Lispのソースファイルを作成
ソースファイルが完成したら忘れずに保存です。

作成したソースファイルの評価(実行テスト)

ツール(T) → SublimeREPL → Eval In REPL → File

f:id:kamuycikap:20190414124417p:plain
REPLへソースファイルを読み込み

を指定すると、先ほど作成したREPLタブにソースファイルに作成した関数が評価された状態になります。
REPLタブを選択表示すると、作成した関数「say-hello」が自動的にLoadされているはずです。

f:id:kamuycikap:20190414124530p:plain
自動的に作成した関数がREPLにloadされている

REPLでsay-hello関数を実行!

さっそく関数を動かして(評価して)みましょ。

REPLの入力プロンプトで (say-hello) と入力すればOKです。

f:id:kamuycikap:20190414124623p:plain
say-hello関数の実行画面

(say-hello) 関数の戻り値として、hello world が表示されていることが確認できます。

MX Linux 18にbrotherのネットワークプリンタをセットアップ

MX Linux 18にbrotherのBrotherのDCP-J973をセットアップ
特になんの問題もなくインストール完了、このへんはさすがBrotherさんです。

インストールマシンスペック

プリンタのセットアップに、マシンスペックなど関係ないとは思いますが、一応情報だけ。
私がMX Linux 18(64bit)をセットアップしているPCです。
32bit版でもプリンターのセットアップに関しては全く同じでしょう。

Lenovo X220
CPU Core i5-2520M
Memory 8GB
HDD SSD120GB

プリンタードライバのダウンロード

ダウンロードサイト
ソフトウェアダウンロード | DCP-J973N-B/W | 日本 | ブラザー

ここから、Linux用のドライバをダウンロード。
私のOSは64bitなので、64bit向けのドライバーをダウンロードしました。

f:id:kamuycikap:20180726144512p:plain
ダウンロードするOSとタイプを選択

f:id:kamuycikap:20190330130056p:plain
ダウンロードするドライバ

f:id:kamuycikap:20190330130352p:plain
スキャナドライバ

スキャナーが利用できるツールとドライバーもダウンロード

f:id:kamuycikap:20190330142843p:plain
Downloadしたファイル

これでインストールする準備が整いました。

プリンタドライバ-のインストール

debパッケージなので、ダブルクリックするだけでインストールできます。(勿論ですが、管理者権限ユーザーのパスワードが必要です)

このくだりは特に困ったことも無いはずはので画面写真はなしです。

CUPSの設定

ブラウザを起動し、アドレスバーに下記のURLを入力
http://localhost:631/

f:id:kamuycikap:20180726150045p:plain
caps管理画面

表示された画面で、「管理」タブ → 「プリンターの追加」ボタン → 「発見されたネットワークプリンター」でBrother DCP-J973N (Brother DCP-J973N)を選択

管理者のユーザー名とパスワードを求められます。
MX Linux 18のインストール時に特に何も変更していないなら、ユーザー名は「root」で、パスワードは自身で設定したもので先に進めます。

f:id:kamuycikap:20190330143948p:plain
ログイン画面

f:id:kamuycikap:20180726150509p:plain
プリンターの選択

あとは、ウィザードに従ってそのまま続けるだけでOK。
何も変更しなければ、「Brother DCP-j973N」というプリンターが追加されるはずです。

プリンターを確認

メニューから「システム」 → 「印刷設定」とクリックし、プリンターの一覧を表示します。
すると、「Brother DCP-j973N」が一覧に表示されているはずです。

f:id:kamuycikap:20190330150221p:plain
印刷設定

f:id:kamuycikap:20190330150442p:plain
インストールされたプリンタ

※一覧にDCPj973Nのアイコンがある場合、それはUSB接続用プリンタの可能性が高いです。(プロパティでデバイスURIを確認するとわかります)

Brother DCP-j973Nのアイコンを右クリック → プロパティ と操作し、テストページの印字ボタンで動作すれば正解です。


maxinfo