So-net無料ブログ作成

エディタとSystemdが使いやすくてうれしかった。 [Linux]

Markdownがすんなり読めるようにAtomを入れてみたんだけど、なんか動作がもっさりしているというか、インストールが異様に時間がかかってちょっと辟易。Atomが流行ってた頃には手を全く付けなかったんだけど、メリットってどんなものなのかなぁ。最近、Sakura EditorとviとIDEのものしか使っていないので、正直あんまり頓着はないので何でもいいんだけどね。

何でもいいと言いながらGREPに近い検索ができた方がいいし、正規表現ができた方が何かと役に立つ。IDEだとデバッガと連動しているから、やっぱり開発には使った方が楽ができるよね。ただメモリ消費量が多くて重いけど、それさえ気にしなければエディタとコンパイラだけを使っているよりかは効率的ではある。というかデバッガって単体で使ったことがほとんどない。

Markdownを調べようとしたんだけど、正直亜種が多すぎて覚える気にはならなかあった。そういう意味でMarkdownエディタとかはお手軽なのかなと思う。ただプレビューを見せるだけのものが多くて、インラインで編集できるのってそんなになさそうな気がした。そこまでするほど重いものを望んでいるわけではないし、wikiにしてもmarkdownにしても自分で拡張した部分が多すぎるような気がしてならない。かといってHTMLゴリゴリ書く気にはならないからブログを使っているわけだが、Markdownでさえマークアップが面倒とさえ思えてきてしまう。まぁ一部HTMLのタグの簡易的な記法みたいなものだが、思ったよりも楽しめなかったのが残念でした。


Systemdを使って自分のアプリをデーモン化したのだが案外簡単だった。スクリプト書いて、二三のコマンドだけで立ち上がるようになった。/etc/init.d/に特殊なシェルスクリプトみたいなのを書くよりも、設定ファイルを書くだけのファイル操作を考えるとSystemdに移行する意味もあろうというものだ。しかし、なんで少なくない人がSystemdに反対していたのか理由がよく分からんな。使いやすくなって速くなって多くのディストロが取り入れた意味が分かろうものだが、この先進的なLinuxのシステムにおいても新興勢力をいいと思わない人がいるんだという事だ。

http://postd.cc/why-i-dislike-systemd/

正直、問題としている理由がそんなに重いものだとは思えない。というか、Linuxが技術偏重の人間が使い続ける事自体の方が問題があるのではと思う。どこかでダーティーな処理を受け持たないといけないという話であれば、集約できる作業ならそうしてしまった方がいい。今更aptやyumがない依存性解決を全部自分でやれという世界に戻れるか?それといっしょだろう。

コンピュータ言語でもそうだけど、複雑な処理は隠ぺいした方が本来の作業に集中できるのだ。OSを使うのを好きな人はいいかもしれないけど、ほとんどの人はそれを動かして何をするかが問題となってくるのであって、学ばなくていいという事ではないが、別に学ぶことがごまんとあるのが分からないとは言わせない。

それにしてもデーモン化する前までは、tmuxで立ち上げたままにしていたので、その分tmuxが使いづらくなっていた。Systemdは面倒なことを覚えなくて楽ができていい。手続きを簡単にしてできることを増やした方が断然いい。技術系の人間は俺はできるからいいけど、って奴が多すぎて反吐が出る。そんなことでは世の中は発展しない。パワステもオートマもない車の世界がないように、GEEKだけが台頭するような世界ではなくなっている。そもそも今どきカーネルを自分でコンパイルしないとできない事とかほとんどないしな。多くの人がブートできない状態にしてしまうのが関の山だろう。

と僕が言わなくても、ほとんどのディストリビューションがSystemdを取り入れていることから正常進化と考えるのが普通の人間なんじゃないかな。歴史も大切かもしれないけど、実際に現在使う人間の事を考えるのが世の中の常である。基本的にマッチョな世界ってのは嫌なんだよ。外に出ると使えないスキルでタコツボの中で鼻高々な奴らは見ていて辟易する。

コメント(0) 
共通テーマ:パソコン・インターネット

Linuxのキャッシュの扱いはどうにかならんか [Linux]

freeコマンドでメモリの使用状況を見てみると、いつもキャッシュに消費されて最終的にハードディスクのスワップ領域まで使ってしまう。メモリが足りていればSWAPを使わない選択もあるとは思うのだが、すべてにそれが通用すると言うわけでもないわけで、もう少し優先順序を変えて欲しいと思うのである。

あくまでキャッシュなんだから使わなさそうなものは上書きして使って欲しいんだよね。数GBとか明らかに余裕があってそのままにしている感じがするんだけれども、勝手に開放してくれる様子はない。というかもはやキャッシュという扱いのメモリではない。


手動で開放する方法はあって
sudo su
3 /proc/sys/vm/drop_caches
みたいにすればサクッとキャッシュがクリアされる。いちいち管理者権限で開放するのが面倒くさい。キャッシュを開放するぐらいのことで、何でこんなにも面倒なことをしないといけないのかがわからない。キャッシュにアクセスするのに機密情報も含まれているかもしれないので、suじゃないとあかんということなのだろうか。中身にアクセスして云々とか、重要な情報を解放してしまってダメだとか、そういう情報はそもそもキャッシュという名前で扱ってはいけないからないとは思うんだけど。それにしても面倒。

http://d.hatena.ne.jp/rideonshooting/20141021/1413881187

sudo swapoff -a

めんどいのでswapをオフにしてしまった。まぁメモリ16GBもあることだし。それにしてもなぜキャッシュが開放されないのかUbuntuの(Linuxの?)仕様が謎。理由はあるのだろうけど、Linuxは問題が放置されているのか謎仕様が割りと存在していて、気になった人だけ自分でちまちま解決すると言う状態になっている気がする。

ディストリビューションには多少ぐらいは声が届くけど、カーネルを扱っているところにまでは声が届かないのかもなぁと思ったり。でも、大抵の事はディストリビューションだけで解決するんだけど、案外まともな改善策を打てないことも多い。

逆にセキュリティパッチを再起動無しに当てられる機能とかkernel ver.4のあたりからあると思うんだけど、Ubuntuでは一向に実装されない感じ。されてるのかな。されてる割には
*** System restart required ***
と出ているんだけど、使われてはいないみたいだ。実際、機能があっても使わなきゃ意味がないと思うんだが、そういやメモリ圧縮機能も使われていない気はする。使いたいやつは自分でやれってことだろうか。

Ubuntuは初めの頃のLinuxデスクトップの革命を起こして、GPLなどにがんじがらめになっていたDebianをある意味解放したわけだが、正直そのあとはUnityの失敗やら本質的に何も変わらないことなど、LTSを出している以外は使い道があまり嬉しくなくなっていた。そろそろGUI環境に腐心していたリソースを本来の開発に差し向けてほしい。LXDとかわりといいプロジェクトもあるんだし、そういう地道な派手じゃないけど便利な機能を充実させてほしいもんだね。

コメント(0) 
共通テーマ:パソコン・インターネット

nvencを使おうとして、CUDAでハマる、GT1030の罠にハマる [Linux]

NVENCはCUDAが必ずしも必要じゃないって、Windowsだけの話じゃん。というわけで、CUDAインストールでハマっているものです。CUDAインストールするとUbuntuが起動しなくなります。aptから入れると大丈夫なのですが、NVIDIAのリポジトリから入れるとブートしない状態になっています。NVIDIAも結構ポンコツだな。というかLinuxの技術者が自分と大して違わないほど寸足らずか。nvidia persistence daemonとやらが悪いのか、そのあとでブートを妨げる何かがあるのかよくわからない。

Video_Codec_SDK_8.0.14というのを取ってきて、サンプルファイルを動かそうとしているのだけれど、とりあえずコンパイルが通るようになったものの、ビルドできた実行ファイルが思うように動かない。エラーだとcudaのcuInit()が動いていないみたいなエラーが出るのだが、コンパイルの時にCUDAが入っていなくてもコンパイルは通る。CUDAを入れたり入れなかったりで不安定な中で少し不確かではあるのだが、CUDA関係でコンパイルエラーが出たことはなかった。CUDAはOptionalで入れても入れなくてもいいみたいな書き方をしているけど、サンプルファイルをそのまま実行しようとするとCUDAが必要みたいな感じになってくる。NVIDIAのドライバは必須なのだが、それだけでは動かないのだろうか。

そして、そもそもドライバのNVENCの機能が動いているかどうか怪しい。Video Codec SDK 8.0を落としてきて使っているのだが、それ自体でインストールされる機能はなく、サンプルファイルとヘッダファイルとドキュメントが入っているだけ。だから、nvencが実装されているドライバを入れれば動くはずなのだ。SDK8.0が要求するドライバのバージョンが結構高めで、UbuntuのAPTから入れられるnvidia-cuda-toolkit 7.5とか、NVIDIAのリポジトリから入れるCUDA 8.0とかでは、一緒に入れられるドライバがSDK8.0の基準にみたっていない。CUDAは必要。でもそのCUDAはドライバが古い。どないせいっちゅうねんw。

色々試してはみたものの、そもそも自分のGPUではCUDAが思うさま動いてくれてないようなのだ。CUDA自体なのか、ドライバを入れる時点で問題がおきているのかは分からないのだけれど、とにかくCUDAを使おうとするとイニシャライズの時点でこけるっぽい。GT 1030ってCUDA使えないとかいう話聞いた事ないんだけど。とにかくCUDAが動くかどうか、動かせるか試さないことには話が進まない気がする。それとCUDAを含めたグラフィックドライバの問題がある気がする。

とりあえず、Windowsでも動かなかったらハードウェアの方がおかしいと考えていいと思われ。DirectXを入れてタダのVisual Studioで開けてコンパイルしたらすんなり通った。やっぱりWindowsは整備されていて楽だわ。グラフィックドライバ入れてブート途中で止まることもないし。

しかし、エンコードするサンプルの実行で止まる。エラーも出ないんだが出力もない。何が問題なのか分からなくなったので、Visual Studioでデバッグするしかないか。Visual Studioでコマンドラインアプリのデバッグって少し面倒なのだが、また設定とか調べないといけないなぁ。


うわ、残念なお知らせw。
http://akiba-pc.watch.impress.co.jp/docs/mreview/buy/1062193.html
GT 1030はNVENCディスエイブルっぽい。その他の機能も使えないのかよ。全くの安物買いの銭失いだよw。改めてGTXシリーズ買います。こういうの買う前にググらないと話にならないよなぁ。ググらないカスになってしもうた。

Zotac VCX zt-p10510e-10l GeForce ?GTX 1050 ti 4 GB gddr5 128b DP HDMI dl-dvi LP

Zotac VCX zt-p10510e-10l GeForce ?GTX 1050 ti 4 GB gddr5 128b DP HDMI dl-dvi LP

  • 出版社/メーカー: Zotac
  • メディア: Personal Computers



グラフィックドライバについても新しいからきちんと実装ができていない可能性があり、実装されていない機能を呼び出しに行って死ぬとか起きてそう。というわけでNVENCの実装はしばらくはGTXシリーズを買うまではお休みです。あ~休みの日数日とグラフィックカード代1万円強を返してくれ~NVIDIAよw。


コメント(0) 
共通テーマ:パソコン・インターネット

UbuntuにCUDAを入れたら動かなくなった。 [Linux]

Ubuntu16.04にCUDAを入れて再起動したら、ブートしなくなってしまった。元々nvencを使うだけなら入れる必要がなかったのかもしれないが、一応入れておいた方が良さそうなことを書いていたので入れてみてnvenc用のサンプルファイルをコンパイルしてみたら、全然入れる前と同じように通らなかった。

そしてREADMEを読むとドライバを入れたらどうにかならしかったので、入れようとしたらXが動いていると入れられないとか言い出す始末。あれ、これはデジャブか? というか普通に前にもやった気がする。そんなわけで再起動してGUIを発動させないようにGRUBか何かの設定を変えて入ってみようとかと思ったが、全く入れなくなってしまったという状態なわけだ。

リカバリモードでCUDAを削除してみたんだけどうまくいかず。削除はされているはずなんだけどなぁ。GRUBが終わってUbuntuのロゴが出て消えるところまでは行くんだけど、それ以上は進まない。色々試したみたものの、Linuxってまともな環境のロールバック方法がシステムで用意されていないと思うので、こういう起動しなくなる状況ってのはキツい。間違ってUbuntuを日本語環境で入れてしまったので、さっくり入れ直した方が早い気がしてきた。リカバリモードでは日本語入力できないので日本語ディレクトリには入れなくなるのであった。分かってても日本語がいいかなと思ってしまうところが学ばない人間なのだとやる気を挫かれる。

そもそも正式な方法でCUDAを入れているのになぜ立ち上がらなくなるのだ、というNVIDIAへの不信感があるのだが、Linuxは自分で解決しろ文化があるのでそこいらは投げっぱなしジャーマンを食らったような気持ちだ。前もはまった気がするなぁ。どうしようもないのだろうか。Linuxをインストールするのに慣れるというのはあまり賢くないし、賢くないにしても何とか環境を生きながらえさせるよりも最初から作り直してしまった方が早いという効率性もあったりで、正直こういう状態はずっと続くんだろうなと思うとウンザリする。まぁそこは提供する側のクオリティに対する意思と、そのやる気のなさを乗り越えるユーザーの気合いによるんだろうが、OSSというのは結局商業的なものにはかなわない責任問題というものがないから仕方ない。

英語で入れてCUDAはNVIDIAの.debファイルからじゃなく、普通のaptから入れることにした。nvenc使うだけならCUDA入れなくてもいいかもしれないんだが、結局入れざるを得ない状況になりそうなので入れる。

というか、ドライバもaptから入れられるっぽいね。プロプライエタリなものとOSSのものがあるから選ばないといけないようだけど。う〜ん、ドライバが新しすぎて選択肢が古すぎて無い。やっぱ新しいSDKを使うにはNVIDIA提供の最新ドライバが必要っぽい。

https://cosmo0920.wordpress.com/2011/02/13/ubuntu10-10%E3%81%A7x-sever%E3%82%92%E5%81%9C%E6%AD%A2%E3%81%97%E3%81%A6%E6%93%8D%E4%BD%9C%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF/

これをlightdmにしてstop startしたらできたみたいだけど、--compat32-libdir optionが云々言われて、サンプルファイルがきちんとコンパイルが通らない。-lnvidia-encodeがライブラリを見られず、コンパイルがこけてしまうのは相変わらず変わっていない。そもそもきちんとドライバが入っていないようだ。インストール時にオプションを入れないといけないのだろうか。入れてみてうまくいけばいいのだが、正直32bitのものを入れてうまく行くとは思えないのだが。上手く行くなら最初から入れてくれという話で、やってみたらダメだった。そもそも--compat32-libdirなんてオプションないじゃん。もう一回普通に入れてみたら色々別のメッセージが出た。前ドライバを入れた後にライブラリをaptで追加したからかもしれない。

ln -sf /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/libGL.so.1

をしろと言われたが、元々のディレクトリにlibGL.so.1じゃなくてlibGL.soしかなかった。こういうちょっとした罠がそのままやると失敗に繋がるんだよな。きちんとチェックをしないといけないのが面倒。というか全自動でやってくれ。前の引数をso.1でなく.soに変えてやったらドライバが入ったみたいで、サンプルファイルのビルドが全部成功したみたいだった。でも、実際に動作するかどうかまでは試してない。

というように、開発環境を整えるまでに面倒なのがCUDA関係とかGPGPUの関係だったりする。基本的なLinuxのお作法を知っていないと乗り越えられない部分も結構あるなぁ。それはプログラミングとはまた別のスキルとも言えるし、本来はそんなことは気にしたく無い部分ではある。

CUDAはインストールはオプショナルと書いているけれども、結局は使うことになりそうな気がするので、本気でやるつもりなら入れた方がいいかもしれない。なんだかんだ言ってサンプルファイルにもCUDAの選択肢があったりするし、NVIDIAでGPUを使うならCUDAは避けて通れないだろう。純粋にDirectXとか使っているなら別かもしれないけど、Linuxで使わないという訳にはいかない気はする。


《後記》

リブートしたらパスワード入力画面から先に進めなくなったので、Ctrl + Alt + F1でapt updateをしてみたら、エラーとともにコマンドを打てと出てきたので、打ったら入れるようになった。それで、コンパイルしたエンコードのサンプルを動かしたら、

NvEncoder.cpp line 143: cuInit error:0x3e7
NvEncoder: NvEncoder.cpp:144: NVENCSTATUS CNvEncoder::InitCuda(uint32_t): Assertion `0' failed.

と出てきた。でもCUDAが悪いんじゃなくて、ドライバがきちんと入っていなくてNVENCが発動できないらしい。ログインできると思ったらドライバが入ってるようで入ってないらしい。コンパイルリンクは通るが実動はしないという理由にはなっている。

https://forums.ubuntulinux.jp/viewtopic.php?pid=115175

めんどうなのでPPAから入れることに。nvidia-381-devってのを入れてみた。ダメだ。サンプルが動かないし、コンパイルし直したら-lnvidia-encodeが見えないのが再発。どうしたらええねんw。


《再後記》
どうやらGeforce GT 1030が悪かった模様。NVENCは使えないみたいだし、他の機能についても制限されているらしい。NVENCを使いたい人は買っちゃダメです。GTX1050以上を買いましょう。

コメント(0) 
共通テーマ:パソコン・インターネット

let's encryptから証明書の有効期限が切れるよと言われて [Linux]

Linuxで定期的に実行するcronで/etcに
cron.daily/ cron.hourly/ cron.monthly/ cron.weekly/
とあって中に入れておくと、定期的に実行してくれますが、なんか間隔が広いなぁと思ってしまうのですが私だけでしょうか。サーバが上がってないと一回ぐらいスキップされるのは普通だと思うので、dailyだと丸二日間、weeklyだと丸二週間、monthlyだと丸二ヶ月動かない状態になってしまうでしょう。

そもそも一週間に二度ぐらいみたいなざっくりした設定は出来ないし、それを設定しようとするとcrontabか何かできっちり設定しないと実行されないと思われます。でも、そういうの面倒なんだよね。なので週二くらいでいいのに、dailyにとりあえず放り込んでおくとかしている。あまり頻繁にやるべきじゃないかもしれないけど、失敗した時に時間が開き過ぎるとアラートとか来てしまうことに関しては面倒だし、やるつもりだったのに指摘されるのは嫌な感じだ。

crontabは設定が直感的じゃないんだよね。分けわかんないことないんだけど、羅列感がかなりある。

などという話になったのは、HTTPS用の証明書を新しくするスクリプトが動いていなかったらしく、メールがLet's encryptのとこから来ていたからです。今までcron.weekly/に入れていたんだけど、面倒なのでcron.daily/に入れました。さすがに一日に一回はやり過ぎかなとは思ったけれども、有効期間が短いLet's encryptの証明書を考えると一日おきにでもした方が煩わしいメールが来なくていいかなと思ったり。証明書のアップデートををかけられる時期と、証明書が切れる時期はどのくらいなんだろうかと細かく考えたことはなかった。新しく変えられる時期からどのくらいの期間を経てメールを出しているのかよく分からんし、何も言わずに期限が切れるよりかましだとは思うけれども、どうにも急かされるのが嫌な感じ。


あ~tmuxってシェルなんだ…。動作的にはbashのものなんだけどな。というか、基本的に純粋なshellはbash以外のものは使ったことがないかも。ないことないけどcshかtcshとかちょっと癖があった気がした。シェルスクリプトは奥が深いし便利なのだけれど、どうにも詳しくやる気にならないのはなぜだろう。



コメント(0) 
共通テーマ:パソコン・インターネット

sitemap.xmlの簡単なスクレイピング [Linux]

Bash on WindowsでCreators Updateを入れずに16.04にしようと、do-release-upgradeをしたけど途中で落ちたw。というか、落とすなら初めから入れておくなよと思ってしまうのだけれど…。そんなわけでCreators Updateが本採用されるまでは新しいLTSなAPTを使えませんね。

wget -rでやたら時間がかかるので、Sitemap.xmlを加工して効率的にやりたいなと思ったわけで。こんな事が通じるのはレアケースなんだけど、Sitemap.xmlに出てくるURLを加工して独立したページを取得した方が速いのかなと。というかwgetでも辿り着けるんだけど、随分と時間がかかってしまっていたので、途中で止めました。だってスリープとかしていたにしても2日間ずっと落としていたのにまだ終わらなかったんですよ。まぁwgetは一つのスレッドでしか動いていないと思うので、ダウンロードも単一ファイルしか落とせないだろうし、ある程度の遅さは自動的に走らせてほっとくことによって楽する方向で。

そんなわけでスクレイピングを行いたいと思います。XMLのスクレイピングならちょっと前にやったGolangのgoqueryとかでいいじゃねぇかと言われればそうです。別に他のものに手を出す必要はないのですが、awkを使ってみたい気持ちは前々からあって、結果的にできていなかった状態だったのでした。そんなわけで、テキスト加工ならAWKでしょという事に相成りました。

でも、正直awkがどういう加工に特化しているのか全然知らなかったりします。ましてやスクレイピングに使えるかどうかというのがよく分かっていない。awkでスクレイピングを探していたら結局xmllintというツールを別に使う事になりそうだとわかりました。でもBash on Windowsには入っていなかった。

$xmllint
プログラム 'xmllint' はまだインストールされていません。 次のように入力することでインストールできます:
sudo apt-get install libxml2-utils

入れないとダメかぁ。あんまり使わないツールとか入れたくないんだよなぁ。本物のUnuntu Serverには入っていたのでそっちでやることにする。xpathの書き方はよく分からないけど、階層順に//の後に/でタグを並べればいいらしい。XMLの階層はHTMLほどめちゃくちゃじゃないから

たぶん下のようなコマンドで
xmllint --xpath "//urlset/url/loc" Sitemap.xml

<loc>http://www.ほげほげ.com/a.html</loc>
みたいなのがずらずらと取れる。ただエラーもたくさん吐き出されていた。でも、ファイルにリダイレクトしてあげたので気にしない。データを取れたんだけど、区切り文字を入れていないのでたくさん取れても単独で取れない。面倒なのでエディタの機能で</loc><loc>を改行で置換した。

後の加工も同じような置換作業でコマンドを加工した。本当はLinuxのコマンドで加工したところだけど、考えるのが面倒なので挿入するコマンドのパラメーターに注力した。やっぱAWKとかsedとか本気でかじっとくかなぁ。まだまだ知らないことは多い。面倒くさくてやっていないことも多い。

コメント(0) 
共通テーマ:パソコン・インターネット

Ubuntu16.04デスクトップDVDが立ち上がらなくなった。 [Linux]

14.04LTSから16.04LTSへのアップグレードが見事に失敗し、DebianでUbuntu16.04のISOを取って来て焼いた。そこからブートしたのだが、なぜか途中で電源が落ちる。意味がわからない。ずっと立ち上がったままとかならまだしも、諦めて電源切るなよw。

何が悪いのかなぁと思って、CPUが16bitじゃないよな、いくら古いとはいえと危惧したが、問題なくx86_64の表示があった。そのOSが動いているから問題ない。DVDの焼け具合が悪いのかなと思い、Macでブートしたら問題なくデスクトップ画面まで行った。何だよそれ。今までXPやらDebianやらUbuntuやらを散々入れて来たマシンで動かないとか意味わからないんだが。

何が悪いのかわからないので、他のISOディスクでブートしてみる。他の昔焼いたCDとかDVDとかでは問題なくブートしている。何だろう。Ubuntu16.04.2のディスクがおかしいのか? どちらにしても相性は良くないようである。というか最近デスクトップのUbuntuはずっと入れていないので、状況がよくわからない。そういやいつ頃か64bitに変わってやっと当然の対応がされるとか思っていたのは覚えている。でも、その時もインストールしなかった気がする。

たくさんあるHDDを取ったり、マザーボードとは別に付けてあるイーサネットカードを外してみたりして動くかなぁと思っていたのですが、結果は変わらず。ただ単にDesktop用のDVDの素養が悪いだけじゃないかと思いだしてきた。ハードウェアが悪いとか古いとかいう問題じゃない気がするよ。ほんとこういうデグレードは頭にくるなぁ。GUIっぽい画面になっているからどこで止まっているかも見当がつかないし。

そういや日本語Remixという邪道なものがあった気がするなぁ。それでブートできれば問題ないのだが、いちいち落として来るの面倒だなぁ。正直、前入れた時に変なメッセージがブートの度に出て来てウザかったから、二度と使うものかと思ったのですが、デスクトップ用途なら日本語入力とかすんなりできた方がいいし、入れてみるのも悪いことじゃないのかもしれない。でも、同じようにブートしない確率高いなぁ。だって基本的なところはみんなおんなじでしょ。ブートしてからが勝負なディストロだろうから、ブートする前はやっぱりダメなんじゃないかな。

結局日本語版を落とした。DebianでもTorrentデフォルトで使えるんだね。Transmissionっていうアプリがあってちょっと驚き。なんかDVD-RWこんなに焼くのも久しぶり。以前はLinuxを物理サーバに入れるために、CD-Rとかはブートディスク用によく焼いてましたが、仮想環境が整ってきたためにISOファイルをそのまま使って終わりということがほとんどでした。今となってはISOファイル自体も使わず、コンテナを使ったりしていて時代の流れを感じさせます。

それにしてもDVD-RWは2倍速しか出ないのって遅いなぁ。RW系のメディアって焼くの遅いんだよなぁ。CD-RWとか高速規格が出てすごく嬉しかった思い出がある。何回もかけるだけじゃなくて、耐久性も色素よりかはいいらしいのは良いことだ。と書いているうちに終わると思っていたが、まだ終わらない。時間が過ぎてディスプレイの電源も落ちる始末。Torrentでネットワークから落としてくるよりか遅いんじゃない? というか、ネットワークも無駄に動画とか扱うようになって余裕が出てきたというか、世界のどこかの途中で引っかかるということが少なくなってきた。

さて焼けたら日本語RemixDVDでブートしてみる。あぁそうだ、DVDにはファイナライズという処理が必要だったんだったっけ。あぁ感じが同じだからまたすっこけそうだなぁ。なんか前より長いことDVDが動いている気がする。を!大丈夫そう。デスクトップ画面まで行った。音まで出たw。やっぱ同じ16.04でもデグレしてるんだな。友好的なコミュニティーなら英語で報告しに行くけど、Ubuntuは使わせてもらってるだけなんで無視。というか自分たちで気付け馬鹿者。Debianからかすめ取っているのを最大限に感謝する意向を示さない限りはそういう献身的な行為はしない。使えるから使ってやっている。大体の人間はそんなもんだろう。

さて、たくさんあるパーティションの中から選んで、インストールした。日本語のローカライズはそこそこきちんとしている。アホな外国人が翻訳機をかけたような日本語ではない。さてUbuntuのデスクトップはどう変わっているのだろう。正直そんなに期待していないが、とりあえずFirefoxが使えれば問題ない。DebianもIceなんとかじゃなくて、Firefoxになっていたし権利関係というかライセンス関係の問題はクリアしているのね。FirefoxだけどFirefoxにあらずってのはどうにも使いにくいし、バージョンとしても無駄な手間がかかっているぶん古くなってしまう傾向にあったしねぇ。とりあえず、Chromeなんてネトゲーにしか使ってないですよ。あんな寄せ集めのブラウザなんてできれば使いたくないし、Googleにはすでに極度に依存しすぎている気がするし、これ以上べったりは嫌だ。

サードパーティのソフトをインストールを付けたので途中でハングした。インストールの時に選ぶのをやめたらインストールが最後まで終了した。問題なくインストールできたみたいだけど、放っておいて画面が消えた後にレジュームしなくなっていた。元々そんなことがあった気もしたが、マウス動かしても、キーボード叩いても、電源ボタン押しても、画面が戻らず消えたまんま。なんでかよく分からんけど、そういう状態になっている。やっぱりUbuntuはサーバとして使うのが一番だな。Desktopは気を遣うところがたくさんありすぎて、OSS的なサポートでは限界があるのではないだろうか。しかも、どういうところで動くかハードがバリエーションありすぎるし、それをサポートするベンダも多いわけではないだろう。GPUなどはプロプライエタリなドライバとかでGPL的には問題になっていたと思う。

入れたはいいが使わないかもなぁ。デスクトップの使い勝手が上がってUbuntuは名を上げたけど、正直ある時から進歩を止めてしまったような気がする。そして我が道を行って散々叩かれたUnityとかあったけど、次のLTS18.04ではGNOMEに戻るらしい。

http://archlinux-blogger.blogspot.jp/2017/04/ubuntuunitygnome.html

何でもいいから使いやすくて今後も発展できるような状態になってほしいものである。ともあれ、LinuxはコマンドラインなOSとしては一部GUI商用OSよりも安定しているぐらいだけど、GUIを加えるとその安定感が逆転する。やっぱり資本がかかっているかどうかは、集約的な作業が必要かどうかという面にかかっている。散開的な開発モデルでは何ともならない部分もあろうかと思う。基本的にGUIなOSは何が何でもGUIで解決できるようにしないといけないという縛りが強いので、できなければCUIで的な逃げは作りにくいからユーザーフレンドリーにならざるを得ない。というか、昔のようにオタクだけが触っていた時代に戻ることは許されないし、そもそもGUIのパソコンだって既に使いにくい人間も多くなってきているのだ。

そういう意味からLinuxはAndroid並みにラッピングしてあげないと使い物にならないのかもしれない。使いこなすのにベンダー試験が必要なくらいではダメなのは当然の話だ。昔はコンピュータとプログラミングが近い関係にあったのだけれど、圧倒的にアプリを使うだけの人間が増えた今、デスクトップOSというのはLinuxとしてはどうなのかと思ってしまう。Chrome OSも事実上は失敗したと言えるだろうし、実際Androidに吸収されるみたいな話を読んだ気がした。そういう意味ではパソコンをOSSでやる意味というのは、スマホが主戦場になった今、それほど重要じゃない気もする。スマホにサービスを与えているのも、GUIが必要じゃないサーバが大半なのだろうし、実際コンテナでGUI環境も確保しようという話にはなってはいないと思う。

タダのデスクトップなOSとしては面倒が多すぎるので、今まで普及することはなかったし、これからもないだろう。タブレットOSが端末として発展することはあるのだろうが、それはLinuxがカーネルですよというだけで、ユーザーランドが云々という話でもディストロがどうとかいう話でもない。こう見るとGUIなOSが割と大変な思いをして作られていることが感じられる。正直、ハイスペックなプログラマがGUIに苦心し続けるという事は考えずらい話でもある。そんな手先の事を考えるくらいだったら、自分のEmacs環境を充実させるという人の方が玄人の方には多いでしょうしね。

しかし、最近Emacsを使っている人というのをとんと見かけなくなった。そういう仕事場ではないのは確かなのだが、それにしても使っている人ってそんなに多いのかなぁと勘ぐってしまう。やっぱりカスタマイズをかけてなんぼの商品ってのは、個人的に先鋭化され過ぎてしまって、周りに広がりを見せないというのが問題なのだろう。それに他の環境行ったら一気にできなくなることが多くなってしまうし、どこにでも入っているviを使おうという気になるのが普通なのかなと思う。だからviかemacsかという宗教戦争があったのは過去の話で、結局emacs使える人はつぶしが利くようにviもある程度使えるんでしょ、という事になっちゃってると思う。どっちがいいとかそういう話もできなくはないだろうけど、そもそもプロダクトとして比べるものなのかどうかという時点から怪しい。だってスクリーンエディタという切り分けでしか合っていないわけでしょ。

ただ黙々とEmacsを使える環境にいられる事自体が恵まれているのかもしれないなと思う。大体、常駐先企業に入るとおいそれと自分の環境を持ち込める状態にあるところは少ないんだろうし。vi以前にWinSCPみたいなツールを使って、Windowsのエディタを使っているよという人の方が多いんだろうね。最初に仕事に入った時も秀丸エディタが活躍していたし、今でもWindowsやMacのエディタで編集している人も多いんだろうと思われる。viにしてもEmacsにしても、操作が直感的ではないし、習得するのに幾分時間を取る。GUIなエディタだったら酔っぱらっていても操作できそうなものだ。UNIX的なエディタでは酔っぱらって作業はできないw。

何にしてもつぶしが利く方法で不都合なく操作できればいいんじゃないというのが結論なのだろう。だから何使っても迷惑をかけないレベルで作業できていれば誰も文句を言う必要はない。ただ、無駄な縛りを効かせられる人間や環境はどこにでもあるもので、その場所によって常識は変わってくる。自分が良くできると思っている人間ほど、自分の持っている常識は間違いないと思っているが、そんなものは不確かなもので庇護の下にしか存在しえないものだと自覚した方がいい。ふんぞり返っている人間ほど、できない時オロオロして環境のせいにしがちだし。

まぁGUIだろうとCUIだろうと、面白いものが作れればいいなと思うわけで。それをタイピングで生み出すことのできるプログラマという職業を面白く思う。一時期、GUIでみんなプログラミングできるみたいな妄想をしていたことがあったが、そこまで作り上げるのに誰がコーディングするのという話になってくる。ある程度は作ってやらないといけないし、個別的な話になると手で書いちゃった方が速い場合だって多いだろう。


どうでもいいが今入れたUbuntu16.04LTSは18.04LTSまでの命だろうな。すぐには代えないだろうけど、GNOMEに戻るんならそっちの方がいいだろうし。CanonicalもスマホのOSを新規に開拓すればよかったのかもしれない。無駄にパソコンから移行させようとしたから失敗したに違いない。まぁ僕としてはAPTのリポジトリをきちんと維持運営してくれれば問題ない。Bash on Windowsもあることだし。

コメント(0) 
共通テーマ:パソコン・インターネット

Ubuntu14.04LTSから16.04LTSにアップグレードで少し泣いた。 [Linux]

デスクトップ環境でLTSからLTSへのアップグレードをしたのだけれど、案の定問題が発生。そう上手くはいかないのが世の常。というか、大した理由もないのでクリーンインストールすればいいのだが、なんとなく試してみたくなった。

do-release-upgradeすればいいのね〜ふんふん〜とやっていたら途中でエラーが出て止まる。あ〜事前にapt update&&apt upgradeするの忘れてた〜。再起動してみるとデスクトップが起動しなくなっていた。んも〜面倒臭いなぁ。というかただ単にデスクトップ環境があった方がいいなと思っていただけなのに〜。そこは以前GPGPUをやろうとしてかなり環境をいじくった後なので、まともにアップグレードできる環境じゃないことは重々承知だったんだけど、はじめのお作法を忘れては何にもならない。

ん〜かなり待っているのだけれどうんともすんとも言わず、最後にはHDDへのアクセスも途切れてしまった。これはクリーンインストールが妥当かなぁ。クリーンインストールするにもISOをDVDに焼かないとダメだろう。それにしてもWindowsXPが死蔵されているマシンって、どうでもいいけど使えない感じ満々である。でも、何か必要かもしれないと思って置いておいたパソコン感がひしひしと伝わってくる。XPの他にもいつのバージョンだかわからないDebianも入っている。どうしようかな。使えないで放っておくのもなんだしなぁ。

Debianもそうなんだけど、Ubuntu14.04を取って置く意味は全然ない。もうGPGPUはやめてしまったし、GPU自体も他のパソコンへ移動させてしまった。しかし、Desktop Ubuntuはしばらく入れてないなぁ。Unityやめたんだったっけ。GNOMEがいいよ、普通がいいんだよ。まぁ面倒が一番少なくて汎用性があるのが一番なんだけどね。jessieって何だ? DebianはToy Storyのキャラクター名をコードネームにしているんだよね。あ〜カウガールのあの子ね。現行のディストリビューションってのはどうなっているんだろう。一応入っているものでもメンテされているみたいなんだけど、それもできたら新しくしちゃいたい。何気に現行のバージョンであった。LTSだと2020年まで行けるらしい。Ubuntuとかとそんなに変わらないじゃないか。

Debianもapt update && apt upgradeしたら、GUI画面から入れなくなってしまった。何だろね〜。ハードディスクは動いたまんまなので何事かやっているんだろうけど、何しているんだかはCUIよりもわからない。だって何の断りもないんだもん。こういうところは商用のOSとは違うところで、無口で無駄にユーザーを不安にさせるんだよなぁ。まぁ商用でもタイムアウトもせずにずっと立ち往生の時もあるけれども。一時間くらい放っておきます。というか、DebianもUbuntuの生みの親とはいえ、色々とユルいところは否めないな。

UbuntuがDebianの融通の利かないところをいいとこ取りして成功したわけだけど、はじめはDebianのことに触れていなくてむかついた。Debian側でもむかついている人はいたみたいだけれども、実際DebianのGPLなどの縛りは使いにくかったし、妙なところに力を入れるからそういうリソースの力点的な意味でも正直使いやすいとはいえなかった。そのところを解決したのはUbuntuは上手かったし、Debianに敬意を表していないところ以外は特に問題なかった。

その後はデスクトップの政策が迷走してしまい、モバイルのほうに出て行こうとして完全に失敗した。まだFirefox OSの方がましだったかもしれない。結局iOSとAndroidの二強になってしまっているわけだが、Androidも改めて低スペック版を出してきて磐石な感じだ。Androidのアキレス腱になっているのは、マルウェア対策と偽Javaのライセンスとメモリ使用量だろう。第三のモバイルOSが叫ばれたわけだが、結局みんなポシャっちゃった感じはある。何だかんだでLinuxを使わなくてはいけないのは、Androidと一緒でARMで動くOSってのも後はWindows10ぐらいしかないのかもしれない。

OSSのOSはCUIがメインなこともあって、それほどGUIのスマホに向いているとは言えないのではないかと思う。要するにGUIラップするのが面倒なのである。やっぱりそこいらの開発はお金もスキルも集約的な体制を持っていないとどうにもならないんじゃなかろうか。ある程度の高いGUIを実装できるレベルの高い人間と、それを実証するための多くのテスト人員を揃えなければならないというところではなかろうか。それを実現できるリソースがAppleとGoogleにはあったということだろう。まぁGoogleはほぼパクリなわけだが、今のスマホはAppleとMSの功績によるところが大きい。

何でMSと言われるかもしれないが、昔からスマホを使っている人にとっては、案外MSがハンドヘルド機の古参であることはよく知っているだろう。それこそPalmとかのPDAの時代からやっているので、そこそこ実践を積み重ねてきていることは確かだろう。AppleのiPhoneがいきなり出てきたと思われがちだが、感圧式のタッチパネルから考えるとスマホの一番最初ではないはずだ。静電式のタッチパネルを全面に採用して、指で操るスタイルはほぼ完全にAppleが発明したも同じようなものだろうが、それらをみんなパクッたのでエポックメイキングだと感じられがちだけども、その他の機能は既存のものをブラッシュアップしたものも多い。

何にしてもARMはわが世の春だなと思わざるを得ない。スマホのほとんどがARMのライセンスがかかったSoCを使っているのだから、ソフトバンクは滅びることはあってもARMはしぶとく生き残っていくであろう。ARMが設計図を売るスタンスだから、どの会社も何がしかの形で作ったり使ったりしているわけで、低消費電力がここまで重く響くとは誰も思っていなかっただろう。だってPowerPCだって電力性能比は高かっただろうし、MIPSだってあったわけだ。一人勝ちになる理由は自分では物を作らないというファブレスにあるのだろうが、それにしたって設計だけで何とかできると思った人はすごいなと思うわけで。

クラウドにしたって逆の立場ではあるものの似たようなもので、ハードウェアとソフトウェアを管理してくれて、安易にユーザーが使えるようにしている点においては分業という文脈としては間違っていないだろう。ファブレスのファブ部分だって設計をせずに製造を請け負うだけの会社だってあるわけで、世の中は垂直統合じゃなくてサービスの切り分けなんだと感じている。良かれ悪しかれ全部自分でやる時代は終わっていて、それに付随するサービスをハードとかに一緒に売るとかじゃなくて、サービスそのものを売るようになってきているんだろう。切り分けとパッケージングということだろうか。目的のための手段を売らずに、楽な方法で目的に直結させる。まぁ切り分ける場所によって住み分けができてくるってことで、それをユーザー側が選べるようになってきているということなんだろう。

そういうわけでコンピューターは最終的には、スマホとか今流行りの音声認識のインターフェイスに変わってしまい、パソコンなんて仕事をするときぐらいにしか使わなくなるんだろうなと思っている。少なくともサーバレスな世界は来てしまっているのだから、少なくとも家にサーバを持つなんて趣味的にしか存在し得なくなるだろう。と言いつつ、サーバを立てて運用していたりして。今はNASやハードディスクレコーダを動かしておいて、外から視聴するとかあるみたいだが、そういう特殊な使い方以外は家に高性能で高機能なコンピュータは必要なくなるんだろうなぁ。

コメント(0) 
共通テーマ:パソコン・インターネット

すでにバイナリが用意されているものの.debファイルの作成。で立往生 [Linux]

AppleのSwiftではUbuntuバイナリが用意されているのですが、システムのディレクトリにインストールされず、解凍してそこにパスを張るだけの仕様になっています。それはそれで問題ないのですが、なんか気持ち悪いので/usr/local/あたりぐらいには入れておきたいと思いました。出来れば.debファイルが作れればいいと思ったのですが、そこそこ時間がかかってしまいました。やることはそんなに難しくはないのですが、いちからやろうとすると結構手間で、checkinstallを使わずにやろうとしたらつまりました。

まぁ普通にMakefileがあって./configure&&make&&make installできるものだったら良かったのですが、元からコンパイルしてあるものだったので多少はまりました。どっちにしてもMakefileがまともに書けていないと動かない代物だったので、久しぶりにMakefileをかじりました。いや~書き方が独自でシェルスクリプトより面倒な感じ。出来ることが直感的じゃないんだよなぁ。前に複雑なMakefileの質問をしたところ、何でこんなものも分からないんだみたいな事を書かれたのですが、事前にかかれたものを簡単に改造できるレベルじゃないですよ。


ともあれ、オレオレdebファイルはでっち上げることが出来たので、はまった点を書いておきます。まず、makefileで
install ./usr/bin/*
みたいにアスタリスクで処理できません。インストールは出来るけど、アンインストールでファイルを覚えておいてくれないのは、Makefileの中身と同じなんですね。そこまで気にしてくれるシステムではないと。なので複数ファイルをインストールするのは一つ一つだとしんどいわけで。

だけど、面倒だけど一つ一つ実行バイナリをinstallで置いていくしかないのかもしれない。

あとcheckinstallのインタラクティブ部分で、いくつか設定が変えられるんですが、大体はそのままで動きます。ただ下のように

*****************************************
**** Debian package creation selected ***
*****************************************

This package will be built according to these values:

0 -  Maintainer: [ hoge@swift ]
1 -  Summary: [ Package created with checkinstall 1.6.2 ]
2 -  Name:    [ swift-3.1.1-release ]
3 -  Version: [ ubuntu ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ amd64 ]
8 -  Source location: [ swift-3.1.1-release-ubuntu ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ swift-3.1.1-release ]
12 - Conflicts: [  ]
13 - Replaces: [  ]

Versionに数字を入れないといけないのにUbuntuとか勝手に入ってるので、そのまま通そうとするとエラーが出ます。私は適当に1を入れました。バージョン管理するつもりもないので。ただSwiftはGPLじゃないと思うので変えた方がいいかなと思ったけど、オレオレ.debファイルなのでどうでもいいかもしれない。配布するときになったら考えますわ。

あとswift-3.1.1-release-ubuntuというところは、ディレクトリから取っていて大文字だとあかんと言われていたので、元のディレクトリのswift-3.1.1-RELEASE-ubuntu16.04をlowerな感じに変えてみました。そういえばバージョンはディレクトリの最後のハイフンより後から取っていた気がした。まぁバージョンは数を何かしら入れておけばいいみたい。

あとMakefileでmake uninstallできるようにしないといけないのか、インストールしたファイルを見ていてくれてdpkg -rすれば消えるんだろうかといろいろ気になってはいた。面倒なのでmake uninstallをrmコマンドをしこしこ書いたのだけれど、dpkgを使う限りは必要ないみたい。まぁあっても問題ない。

それと/usr/local/bin/にインストールしているのだけれど、dpkg -rをするとbinディレクトリが消えてしまう。特にmake uninstallで消えるようには書いていないのだけれども、checkinstallを使ってdebファイルを作って-rオプションで消そうとするとディレクトリごと消えてしまう。他のファイルがあれば消えないのかもしれないが、それしか入れない場合は後で面倒なことになりかねない。実際、再度インストールするときに、binディレクトリがあるものとして動くのでエラーが出てしまう。

checkinstallが作るテンポラリのファイルを出力しようと思ったけど、正直良く分からず。出来たdebファイルの解凍を試みてみた。

ar -x swift-3.1.1-release-ubuntu_16.04-1_amd64.deb

みたいにすると中身が出てくる。
control.tar.gz data.tar.xz debian-binary

control.tar.gzにインストールの細かい設定は入っているのだが、ディレクトリの設定とかはなく、ディレクトリの設定に関してはdata.tar.xzに相対的に絶対パスが置かれている状態(わかりにくいな~)で、それを参照してインストールしているみたい。tarの展開を具体的に書くと

./
./usr/
./usr/local/
./usr/local/bin/
./usr/local/bin/swift-build-tool
./usr/local/bin/lldb-server-4.0.0
./usr/local/bin/repl_swift
./usr/local/bin/swift-demangle
./usr/local/bin/swift

みたいに出てくるわけです。それを元にアンインストールしているから、他のファイルと一緒に/usr/local/binディレクトリが消えていたみたいです。その下の/usr/local/は他にディレクトリを含んでいるため消されることはないようで、binにその他のインストールされたバイナリがなかったら削除されてしまうということらしい。

システムから提供されたディレクトリを消すというのはよろしくないので、どうにかして消さない状況に持っていきたいところ。dpkgが悪いのか、checkinstallの仕様が悪いのかわからないんだけど、debパッケージを地道に作らないといけないっぽいな。

コメント(0) 
共通テーマ:パソコン・インターネット

Ubuntu16.04とかでLXCコンテナ内でtmuxを使う方法。 [Linux]

how to use tmux in LXC Container.
って書いとくと外人さんも来るかな?

やろうとした人はわかると思うけど、LXCコンテナ内でtmuxは使えなかったりした。回避方法はあったみたいだけど、根本的に解決できた。17.04になれば解決するんだが、いかんせんLTSじゃなかったりする。

https://www.ubuntuupdates.org/package/core/zesty/main/base/tmux

ここのdebファイルを使う。64bitだよね普通は。ってUbuntuの正式リポジトリじゃねぇかw。

wget http://security.ubuntu.com/ubuntu/pool/main/t/tmux/tmux_2.3-4ubuntu1_amd64.deb
sudo dpkg -i tmux_2.3-4ubuntu1_amd64.deb

ですぐに使えるようになる。別に無理やり17.04に上げる必要はない。まぁそのうちLTSに導入されるだろうから、すぐ使いたい人以外は気にしないw。今のLTSにバックポートはされるのかどうかは知らない。まぁそのまま使えるので、該当バージョンのaptで設定されれば入るというわけで。

なんか色が違うような気がしなくもないが気にしない。

コメント(0) 
共通テーマ:パソコン・インターネット