Kubuntu and ...
暑中お見舞い申し上げます。
そして、某市の皆さまへは
祝、日本国内最高気温達成
ってのをお贈りします。
なに、暑かったら、サーバールームへ避暑に行けば宜しい。寒いぞ。
switch to kubuntu
前回ウブ起動時にfsckを走らされた。こういうケチの付いたOSは、縁起が悪いと思うぞ。何時再発するか、怯えながら使うのも、いかがなものかと思うぞ。
それでなくても、前々から気になっていた事がある。一つは、メモリー使いすぎ疑惑。感覚なので、定量的に比較出来るようにしとく。下記は起動した直後。Desktopを開かないで、sshで入っての採取。
sakae@ub:~$ free -h total used free shared buff/cache available Mem: 1.9G 486M 1.0G 1.5M 455M 1.3G Swap: 1.9G 0B 1.9G
次は、VMWareから割り当てられるIPアドレスが、1週間ぐらいの間に2度も変わった事。DHCPで割り当てられるんだけど、DebianとかOpenBSDとか、今まで一度もそんな事は無い。何か、裏でこそこそやってる予感。気持ち悪い。
GUIでログインして、Desktopの面積をマウスでバーと広げるんだけど、そこでGUIが固まってしまうという事が、何度も有った。多分、open-vm-toolsとの協調動作だと思うんだけど、なんだかなーの仕打ちに頭が痛い。
そして、お次はこれ。
sakae@ub:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 957M 0 957M 0% /dev tmpfs 198M 1.4M 196M 1% /run /dev/sda1 40G 9.6G 28G 26% / tmpfs 986M 0 986M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 986M 0 986M 0% /sys/fs/cgroup /dev/loop0 3.4M 3.4M 0 100% /snap/gnome-system-monitor/36 /dev/loop1 13M 13M 0 100% /snap/gnome-characters/101 /dev/loop2 2.4M 2.4M 0 100% /snap/gnome-calculator/178 /dev/loop3 87M 87M 0 100% /snap/core/4917 tmpfs 986M 56K 985M 1% /tmp /dev/loop4 140M 140M 0 100% /snap/gnome-3-26-1604/64 /dev/loop5 87M 87M 0 100% /snap/core/4486 /dev/loop6 141M 141M 0 100% /snap/gnome-3-26-1604/59 /dev/loop7 15M 15M 0 100% /snap/gnome-logs/37 /dev/loop9 3.8M 3.8M 0 100% /snap/gnome-system-monitor/45 /dev/loop8 13M 13M 0 100% /snap/gnome-characters/69 /dev/loop10 21M 21M 0 100% /snap/gnome-logs/25 /dev/loop11 1.7M 1.7M 0 100% /snap/gnome-calculator/154 /dev/loop12 87M 87M 0 100% /snap/core/4830 tmpfs 198M 16K 197M 1% /run/user/120 tmpfs 198M 0 198M 0% /run/user/1000
ウブの売りの一つ、snapだけど、これには付き合いたくない。オイラーは、GUIに重きを置いて いないから、正直 gnomesなんてほどほどで良い。だったら、そんなの切れよと言われそう。
じゃ、うぶ全体と縁を切ろう。もう一方の雄、qt系に鞍替えだな。
install kubuntu
前回調べておいたkubuntuのサイトからIOSを取ってくる。32Bitバージョンも置いてあるので間違い無いように。1.8Gの容量だった。このあたりはうぶとさほど変わらず。
VMWareに入れる。例のおまかせコースが有効になってた。IOSファイルのどこにもうぶなんて明示してないのに、勝手にうぶの仲間と認定されてる。
インストールが始まって、いきなり壁紙が出てきた。お試ししますかも、あったものじゃない。ずっと壁紙が表示されたままで、公告も出てこないものだから、果たしてインストールが進んでいるかプチ不安。まあ、diskやCDのアクセスランプ相当が、Lチカしてるんで、問題ないだろう。
再起動されて、ログイン画面が出てた。多分この間10分ぐらいのものかね。生憎、open-vm-toolsがインストールされたのかは不明。GUIの端をマウスで引っ張ると、自在な大きさになったので、インストールされてるんだろうね。
それから、ウブの血筋は争えないもので、プリンター関係と音関係は、VMWareでは扱えないようだ。起動時に警告が出て来る。
注目のファームウェアは、ウブと同じく全部入り状態だった。これで、もしもの時にKubuntuへすんなり移行出来るな。
kubuntu vs ubuntu
忘れないように、比較データを載せておく。
sakae@ubuntu:~$ free -h total used free shared buff/cache available Mem: 1.9G 288M 1.3G 1.1M 312M 1.5G Swap: 1.9G 0B 1.9G
やっぱり、メモリーに優しいね。
sakae@ubuntu:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 957M 0 957M 0% /dev tmpfs 198M 1.2M 196M 1% /run /dev/sda1 40G 8.7G 29G 24% / tmpfs 986M 0 986M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 986M 0 986M 0% /sys/fs/cgroup tmpfs 986M 4.0K 986M 1% /tmp tmpfs 198M 0 198M 0% /run/user/118 tmpfs 198M 8.0K 197M 1% /run/user/1000
そして、ループを使ってマウントするなんて言う、新人類仕様は避けている。オイラー的には、こちらの方が好きです。
但し、gtk関連がまともに入っていないので、こんな目を引く警告を受ける事があります。
sakae@ubuntu:~$ wxmaxima (wxmaxima:1831): Gtk-WARNING **: 14:45:43.081: Unable to locate theme engine in module_path: "adwaita", (wxmaxima:1831): Gtk-WARNING **: 14:45:43.086: Unable to locate theme engine in module_path: "adwaita",
こういう場合は、入れればいいしょと、テーマを入れるのだそうです。
sakae@ubuntu:~$ sudo apt install gnome-themes-standard
公文つの人は、gtk系のアプリは毛嫌いしてるんでしょうか? 2大巨匠なんだから、もう少し友好的であっても、良いと思いますよ。
UbuntuにRStudioをインストールする方法 が掲載されてた。これって技評が出版してる RユーザのためのRStudio[実践]入門 の番宣だよな。番組じゃないんで、正しくは番本か。最近はこんなのばっかりだな。NHKも盛大にやってるから、国家公認の消費推進運動。資本主義の極みです。(MatLabを持っていないと、使えないという罠があるぞ)
Ubuntu Server + VcXsrv
Kubuntuも良い選択だと思うんだけど、これもオフィスが有ったり印刷機構が有ったりして、 オイラーの普段使いと乖離してる。
オイラーがやる事と言ったら、普段CUI上で生活してて、たまにGUIアプリ(ex. gnuplot)を 使いたい程度。
だったらCUIの環境に必要なGUIアプリを入れれば済む話。そんなのは巷に溢れているよ。 WSLはCUIな環境。GUIをやるにはXが必要だけど、そこまでM$は面倒を見てくれない。 そこで、
WSL+ubuntu18.04+VcXsrv+OpenAI Gym 動くまでのメモ
こういう記事がわーと出てくるのだ。オイラーもWSLを入れたんで、一口乗ってみるかね。 まてまて、WSLの環境は物書きで固定しておこう。
じゃ、どうする? そんなのWSLの代わりにUbuntu Server で代替させればいいじゃん。この 環境なら、勝手が知れてるからね。VMWareに入れたよ。
X関係は、昔はXmingだったけど、今はVcXsrvがトレンドらしい。落としてきて数回のクリックでインストール完了。一度XlunchでXを起動し、設定ファイルを作成。
普通にやると、安全側に振られてlocalhostからしか接続出来ないので、セキュリティーに眼をつぶる事にした。(-acのオプションが使えるとか)
出来上がった、config.xlaunchを所定の場所に配置する。いわゆるWindows10の起動時にXも起動させちゃうというアレ。
win+R で、shell:startup と入力。出て来た場所にファイルを置くだけー。正式な場所は、M$のいじわるにより、階層が深い所にある。
C:\Users\ユーザー名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
で、勿論、ウブ側は、
export DISPLAY=WindowIP:0.0
を、.profileに書いておく。
firefoxを起動してみた。
sakae@usvr:~$ firefox libGL error: No matching fbConfigs or visuals found libGL error: failed to load driver: swrast (firefox:1503): LIBDBUSMENU-GLIB-WARNING **: 16:33:10.032: Unable to get session bus: Failed to execute child process “dbus-launch” (No such file or directory) [Parent 1503, Gecko_IOThread] WARNING: pipe error (40): Connection reset by peer: file /build/firefox-oscv9o/firefox-61.0.1+build1/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 353
まあ、これでも動いているから良しとしよう。
sakae@usvr:~$ free -h total used free shared buff/cache available Mem: 1.9G 160M 1.5G 1.1M 250M 1.6G Swap: 2.0G 0B 2.0G
これ、起動直後の状態。使用メモリー少ないな。いかにGUI系で無駄に使われていたか、分かるってもんです。
sakae@usvr:~$ df Filesystem 1K-blocks Used Available Use% Mounted on udev 978792 0 978792 0% /dev tmpfs 201736 1128 200608 1% /run /dev/sda2 41019616 12203624 26702612 32% / tmpfs 1008664 0 1008664 0% /dev/shm tmpfs 5120 0 5120 0% /run/lock tmpfs 1008664 0 1008664 0% /sys/fs/cgroup tmpfs 1008664 0 1008664 0% /tmp /dev/loop0 89088 89088 0 100% /snap/core/4917 /dev/loop1 88704 88704 0 100% /snap/core/4486 tmpfs 201732 0 201732 0% /run/user/1000
これ、必要な物を入れた状態。何が必要だったか? じゃなくて将来の方向性だな。
python3
久しぶりにpython3をちゃんとするかと思って、miniconda3を入れたんだ。そしてジュピターもね。
sakae@usvr:~$ ipython Python 3.7.0 (default, Jun 28 2018, 13:15:42) Type 'copyright', 'credits' or 'license' for more information IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help. In [1]:
3.7来てた。相変わらず進化してるな。
Pythonの機械学習ライブラリ「scikit-learn」で実践する「教師あり学習」「教師なし学習」
Python高速化 【multiprocessing】【並列処理】
Lubuntu
物は次いでと言うんで、Lubuntuを入れてみた。
sakae@lxde:~$ free -h total used free shared buff/cache available Mem: 1.9G 154M 1.6G 3.0M 213M 1.6G Swap: 947M 0B 947M
軽い事にかけては、天下一品である。
ウブ系のDNAなんだろうと思うけど、サーバー版もこのLubuntuもしっかりと、ファームウェアは同梱されてた。この分だとXubuntuも同様だろうね。
このLubuntuは、open-vm-toolsによって任意のサイズのDesktop広さは作れなかった。preferencesメニューにある、monitor-settingsを選び出して、画面サイズを1280x960とかに調整する必要がある。こちらの方式の方が、気分的に安定するだろうって予感がする。
インストール時に、VMWareのお任せモードは働かず、普通にインストールさせられた。起動時の画面で、お試しモードが出てきたのは、Debianでやったのと一緒だな。場所の設定で日本がデフォで選ばれていたのと、apt元が日本のサーバーに最初からなってた。グローバルIPが日本の企業が持ってるかで判断してるのだな。インストーラの中に組み込まれているの?
gauche
Gaucheが久しぶりにUpdateされてたので、入れてみた。まずは試しに、Ubunt serverへ。そして機能メニューの所にある動作プラットフォームを見ると、最近はNetBSDが忘れ去られているんで、人柱の積りで試してみた。
あっさりコンパイル成功。日本語のinfoも作ってくれたんだけど、それがemacsのinfoからは文字化けして読めない。 しょうがないので、リナから貰ってきた。
リリースノートを見ると、今回の売りは、スタンドアロン実行可能ファイルを作れる事。以前から待ち望まれていたやつだ。
例に載ってたぞ。
nb$ cat sample-repl.scm (use gauche.interactive) (define (main argc) (print "Welcome to my standalone REPL application!") (read-eval-print-loop #f #f #f (^[] (display "sample-repl> ") (flush))) 0)
こういう自前のreplを実行可能にするとな。
nb$ gosh build-standalon sample-repl.scm *** ERROR: cannot find "build-standalon" in ("/usr/local/share/gauche-0.9/site/lib" "/usr/local/share/gauche-0.9/0.9.6/lib" "/usr/local/share/gauche/site/lib" "/usr/local/share/gauche/0.9/lib") Stack Trace: _______________________________________
で、早速エラーの洗礼。
nb$ locate build-standalone /usr/local/share/gauche-0.9/0.9.6/lib/build-standalone
ちゃんとPATHに有るんですけどね。
nb$ cd /usr/local/share/gauche-0.9/0.9.6/lib/ nb$ gosh build-standalone Usage: build-standalone [-o outfile][-I dir][--header-dir dir][--library-dir dir] main.scm lib/library.scm ... -o outfile Specify output file name. When omitted, the basename of the main source file is used. : --keep-c-file Do not delete intermediate C file after compilation. This is for troubleshooting. The file <main.scm> is the main script file; usually it contains 'main' procedure. Other files <lib/library.scm> ... are extra library files needed by <main.scm>. They are loaded before executing main.scm.
NetBSD 7.1.2特有の何かが有るのかしらん? こういう時は、みんなが使ってる環境でやってみるのが鉄則。そういう事でリナで実験。
sakae@usvr:/tmp$ gosh build-standalon repl.scm *** ERROR: cannot find "build-standalon" in ("/usr/local/share/gauche-0.9/site/lib" "/usr/local/share/gauche-0.9/0.9.6/lib" "/usr/local/share/gauche/site/lib" "/usr/local/share/gauche/0.9/lib") Stack Trace: _______________________________________
ふむ、同じエラーだな。PATHの問題なんだろうから、そこで立ち往生するのもつまらん。さっさと先へ進む。
sakae@usvr:/tmp$ gosh /usr/local/share/gauche-0.9/0.9.6/lib/build-standalone repl.scm gcc -fPIC -I/usr/local/lib/gauche-0.9/0.9.6/include -o repl replMOeDsE.c -L/usr/local/lib/gauche-0.9/0.9.6/x86_64-pc-linux-gnu -lgauche-static-0.9 -lz -ldl -lcrypt -lutil -lrt -lm -lpthread
スクリプトの在処を絶対PATH指定して実行。色々な物を抱え込んでるなあ。出来上がったアプリを試してみる。
sakae@usvr:/tmp$ ./repl Welcome to my standalone REPL application! sample-repl> (car '(a b c)) a sample-repl> (* 1 2 3 4 5) 120 sample-repl> (map (lambda (x) (* x x)) '(1 2 3 4 5)) (1 4 9 16 25) sample-repl> (exit)
そして、リナとの親和度確認
sakae@usvr:/tmp$ ldd ./repl linux-vdso.so.1 (0x00007fff15bb4000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f8fb91ef000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8fb8feb000) libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f8fb8de8000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f8fb8be0000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8fb8842000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8fb8623000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8fb8232000) /lib64/ld-linux-x86-64.so.2 (0x00007f8fba364000)
ありきたりのライブラリィーを要求してるだけで、gaucheの匂いが消えている。これなら狭い範囲に流通してるウブユーザーに配って、使ってもらえるね。サイズは21Mあるけど。
infoを漁ったら、解決策が見つかったので、NetBSDで再度試す
nb$ export GAUCHE_LOAD_PATH=/usr/local/share/gauche-0.9/0.9.6/lib nb$ gosh build-standalone repl.scm gcc -std=gnu99 -fPIC -DPIC -I/usr/local/lib/gauche-0.9/0.9.6/include -o repl replNZnqjK.c -L/usr/local/lib/gauche-0.9/0.9.6/x86_64-unknown-netbsd7.1 -lgauche-static-0.9 -lz -lcrypt -lutil -lrt -lm -lpthread
実行
nb$ ./repl Welcome to my standalone REPL application! sample-repl> (cons 123 '()) (123)
解剖と言うか、性ですな。
nb$ file repl repl: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for NetBSD 7.1.2, not stripped nb$ ldd repl repl: -lz.1 => /usr/lib/libz.so.1 -lgcc_s.1 => /usr/lib/libgcc_s.so.1 -lc.12 => /usr/lib/libc.so.12 -lcrypt.1 => /usr/lib/libcrypt.so.1 -lutil.7 => /usr/lib/libutil.so.7 -lrt.1 => /usr/lib/librt.so.1 -lm.0 => /usr/lib/libm.so.0 -lpthread.1 => /usr/lib/libpthread.so.1 nb$ ls -lh repl -rwxr-xr-x 1 sakae wheel 16M Jul 24 16:10 repl*
info
gaucheのPATH問題、ちゃんと解決しとけよ。それには、懇切丁寧に日本語で書かれたマニュアルが有るじゃないですか。Webにアクセスする? ネット人間もいいけど、手元で解決するのが良い。ちゃんと info が有るじゃないですか。そんな訳で、emacsからinfoを読むのを習っておく。
原稿を、/usr/shere/infoの中に突っ込んで、dirに登録する。
The Algorithmic Language Scheme * Gauche (ja): (gauche-refj.info). An R7RS Scheme implementation.
うぶのinfoとNetBSDのそれを比べると、うぶの方が貧弱。何が不足してるかと言うとemacs系が欠落してる。どうせ読まないんでしょと言う態度。まずは探してみるか。
emacs25-common-non-dfsg
emacsの場合は特殊な名前みたいだけど、他のものは、docを付ければいいみたい。
sakae@usvr:~$ apt-cache search gcc-doc gcc-doc - Documentation for the GNU C compilers (gcc, gobjc, g++)
Software development と一括りにされてるものは、他にも沢山あるな。いちいち探して入れるのも面倒なので、NetBSDのそれを参照すればいいか。
gaucheの例で出て来た、read-eval-print-loopの引数が何を意味するか? infoで引くには、 次のようにする。
emacs C-hi mgauche iread-eval-print-loop
これだけの操作で、
-- Function: read-eval-print-loop :optional reader evaluator printer prompter `gosh'のデフォルトのread-eval-printループをアプリケーションに エク スポートします。それぞれの引数は、Gaucheのデフォルトの手続きを使う ことを 示す`#f'であっても良いですし、以下の条件を満たす手続きであっ ても構いません。 :
出て来たぞ。素晴らしい。infoを引く時に、目的の所で、T つ告げるだけで、htmlの展開 された形が表示される。いわゆるtocだ。何の略かと思ってたら、Table of Contents なのね。infoの所で ? したら、出てた。