yumetodoの旅とプログラミングとかの記録

旅や登山の記録やプログラミング関連の話とかフリーソフト紹介とか

【その1】sshで東京理科大学のLinux 環境を利用する方法

追記:2019年、事態は動いた

yumetodo.hateblo.jp

はじめに

東京理科大学のIT環境がいろいろクソな件は

東京理科大学の無線LANセキュリティ 傾向と対策 — 173210's Blog

これまでさんざん言及されてきた。

ここで、

平成29年度の Linux 環境について

を見てみよう。なになに?「CentOS 5」から更新した?せやな、で何になったんだい?CentOS 7?

理科大CentOS 6です」 私「F**king!」

理科大にはLinux 環境がある

まあそんなかんじでツッコミどころ満載ではあるが、一応Linux環境が存在する。

ここで、学内からのみアクセスできる
リモートからの Linux 環境の利用方法
にVcXsrvを利用してアクセスする方法が載っている。

ん?Xがリモートで動くならSSHできるんじゃね?

SSHする

まず大前提当たり前だがVPSをつかうなり、理科大Wifiに接続するなりして学内ネットワークに入る必要がある。

あたりをみて設定してほしい。当然東京理科大学の学生である必要がある。

それからsshするために今回はmsys2を利用した。WindowsC++erをしてるなら当然持っているはずだ。

次にSSHする先のアドレスを調べる。がじつはtelnetサーバーと共用である。

平成29年度の教育環境について

を見ると

キャンパス telnet/sshサーバ
葛飾キャンパス tusedt000.ed.tus.ac.jp
神楽坂キャンパス tusedt000.ed.tus.ac.jp
野田キャンパス nodat000.ed.tus.ac.jp
tusedt000.ed.tus.ac.jp
長万部キャンパス oshat000.ed.tus.ac.jp
諏訪東京理科大学 suwat000.ed.tus.ac.jp

追記: 平成30年度の教育環境についてによれば、野田キャンパス独自のサーバーは消え、諏訪東京理科大学は公立化してシステムが切断され、結果独自のサーバードメインは試される大地、長万部のみとなったようだ。

ではsshする。

student_id= #任意の学籍番号
server_url= #上記表参照
ssh ${student_id}@${server_url}

するとパスワードを聞かれる。学内システム共通のパスワードを入力しよう。

めでたくSSHに成功した。

$ git --version
git version 1.7.1
$ gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-17)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ clang --version
clang version 3.4.2 (tags/RELEASE_34/dot2-final)
Target: x86_64-redhat-linux-gnu
Thread model: posix
$ nano --version
 GNU nano version 2.0.9 (compiled 07:18:28, Nov 12 2010)
 (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
 Free Software Foundation, Inc.
 Email: nano@nano-editor.org    Web: http://www.nano-editor.org/
 Compiled options: --enable-color --enable-extra --enable-multibuffer --enable-nanorc --enable-utf8

とかして悲しもう。

ChemBioOfficeがActiveXとかいう太古の技術に依存している件

化学をやっている人間なら名前くらいは聞いたことがあるだろう、ChemBioOfficeのお話だ。

東京理科大学では学生に無償で使えるように契約してくれているのでもちろん私も自分のPCに入れて使っている。

で、これが1年更新だ。ライセンスが切れたついでにChemBioOffice15からChemBioOffice16に乗り換えた。

install Window

ここでインストーラーのこの画像を見てほしい。

ん?ActiveX for IE??

ActiveXといえば開発元であるMicrosoftがすでに放棄した技術だ。地方税電子申告サイトeLTaxのサイトがJavaからActiveXに移ったことで袋叩きにされていた。

toyokeizai.net

ついでにいうとお隣韓国でも大問題になっている

japanese.joins.com

私はC++erではあるが、決してWebに無知というわけではない(仮にもみらいけんのWebページを未だに作り続けている)。当然このようなdeprecatedな技術にはNOを突きつけるべきだ。

ところがだ。これを見てくれ。

ChemDraw Rquire AciveX

The ChemDraw Control Panel requires a supported version of the ChemDraw ActiveX Control.

Registry key not found:
CLSID\{B8350810-35B3-46F8-AA9B-FC649FFF06DF}\ImprocServer32

いやいや、まてよ、何でんなもんに依存していやがるんだ?.NET全盛のこの時代、んなもん使わんでもできることくらい知っているぞ?

しかし現実問題としてChemDraw - Live link機能が使えないとお話にならない。

やむを得ずChemDraw ActiveX for IEChem3D ActiveX for IEをインストールした。

ちなみにcop16.0.1.exeからは特定コンポーネントだけインストールと言うのができないゴミなので、7-zipとかで解凍して、./Windows/PerkinElmer/ChemOffice/PerkinElmer_ChemOffice_Professional_2016.msiを実行するべし。

書きかけ:TsuboneSystemを試しにWindows10環境のlocalで動かしてみよう

node.jsとnpmの導入

更新の激しいnode.jsの導入をまさか公式のインストーラでやる輩はこの世に存在すまい。当然バージョン管理ソフトを使うべきだ。 Windowsだとnvmは利用できない(後述のmsys2上でもnvmのインストールはできるがそこからnode.jsをインストールできない)。というわけで

qiita.com

nodistを使う。まあnvm for Windowsでもいいのだが。

コマンドプロンプト

nodist dist

とすると、提供されているバージョンを一覧で表示できる。

nodist + latest

とすれば最新版が手に入る。執筆時点ではnode.jsは7.9.0が最新だった。あとは

nodist use latest

とすれば最新のnode.jsが利用できる。注意点として、どういうわけかpowershellで動かすとうまくいかない

そのままの勢いでnpmを最新にする。

npm update -g npm

これでよい。

MSYS2

  1. 7-Zipを落とす
    https://sevenzip.osdn.jp/
    より64bit版もしくは32bit版を
    既に入っている人も、2015/11/19に随分久しぶりに最新版が出たのでバージョンを上げるといいです
  2. 7zipをインストール
    ダブルクリックして実行すればいいです。
  3. msys2を落とす
    http://sourceforge.net/projects/msys2/files/Base/
    よりお使いのアーキテクチャ(おそらくはx86_64)をクリックしmsys2-base-[アーキテクチャ]-[日付].tar.xz を。exeの方は1回も使ったこと無いのでわかりません。
  4. 7-zipで解凍
  5. msys2_shell.cmdをダブルクリック、Close Windowと言われたらばってんを押して閉じる
  6. 再びmsys2_shell.cmdをダブルクリック、pacman -Syuuと打ち実行、また閉じる
  7. 再びmsys2_shell.cmdをダブルクリック、pacman -S mingw-w64-i686-clang mingw-w64-x86_64-clangとと打ち実行、また閉じる
  8. pacman -S base-devel mingw-w64-i686-openssl mingw-w64-x86_64-openssl mingw-w64-i686-go mingw-w64-x86_64-go gnupgする

そうしたら~/.bashrc

export GOROOT=${MINGW_PREFIX}/lib/go
export GOPATH=$HOME/.go

を追記します。GOPATHはまあどこでもいいんですが。

Tsubone System3を取ってくる

mingw64_shell.batを立ち上げ(なかったらmsys2_shell.cmd -mingw64)

$ go get -d github.com/kagucho/tsubonesystem3/
$ cd $GOPATH/src/github.com/kagucho/tsubonesystem3

する。この時、$GOPATH/src/github.com/kagucho/tsubonesystem3Windowsから見たパスを調べておく。

MariaDB

Download

まずはインストーラーを取ってくる必要がある。

今回はMariaDB 10.1.22 Stableを利用する。

Downloads - MariaDB

Downloads - MariaDB

からmariadb-10.1.22-winx64.msiをDownloadする。

GnuPG署名検証

Checksumをクリックして、GnuPGの署名をコピーし、mariadb-10.1.22-winx64.msiと同じ場所にmariadb-10.1.22-winx64.msi.sigとかしてテキストファイルを作り貼り付ける。

次にMariaDBのGPG公開鍵を取ってくる。

https://mariadb.com/kb/ja/yum/#mariadb-署名鍵を手動で取り込むmariadb.com

にURLだけ載っているので、MSYS2を立ち上げ、

$ wget https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
$ gpg --quiet --with-fingerprint RPM-GPG-KEY-MariaDB

とする。

pub  1024D/1BB943DB 2010-02-02 MariaDB Package Signing Key <package-signing-key@mariadb.org>
 フィンガー・プリント = 1993 69E5 404B D5FC 7D2F  E43B CBCB 082A 1BB9 43DB
sub  4096g/672557E6 2010-02-02

このフィンガープリントが

https://mariadb.com/kb/ja/gpg/

と一致していることを確認する。

そうしたら

$ gpg --import  RPM-GPG-KEY-MariaDB

として鍵を取り込み、

$ gpg -u <自分の公開鍵のid> --sign-key package-signing-key@mariadb.org

で署名する。自分の公開鍵のidは

$ gpg -k

すると

pub   4096R/FE05ED49 2017-03-23 [有効期限: 2019-03-23]
uid                  yumetodo <yume-wikijp@live.jp>
sub   4096R/830A7319 2017-03-23 [有効期限: 2019-03-23]

のように出て来るがこの場合FE05ED49がそれだ。ない場合は

http://qiita.com/moutend/items/5c22d6e57a74845578f6qiita.com

この辺を見て作る。

さて、これで署名検証する準備ができた。Downlaodしたインストーラーのある場所に行く

$ cd <where you downlaod installer>
$ gpg --verify mariadb-10.1.22-winx64.msi.sig mariadb-10.1.22-winx64.msi
gpg: 2017年03月14日 05時37分47秒 JSTにDSA鍵ID 1BB943DBで施された署名
gpg: 信用データベースの検査
gpg: 最小の「ある程度の信用」3、最小の「全面的信用」1、PGP信用モデル
gpg: 深さ: 0  有効性:   2  署名:   1  信用: 0-, 0q, 0n, 0m, 0f, 2u
gpg: 深さ: 1  有効性:   1  署名:   0  信用: 1-, 0q, 0n, 0m, 0f, 0u
gpg: 次回の信用データベース検査は、2019-03-23です
gpg: "MariaDB Package Signing Key <package-signing-key@mariadb.org>"からの正しい署名

検証終了だ。

Install

基本的には

mariadb.com

を見てインストールするべきだ。

インストールパスを変更したい場合はここでやる。

MariaDBの管理コンソールのrootユーサーのパスワードを設定する。好きなものを入れればいい

あとUse UTF8 as default server's character setは軽くググッた感じONにしたほうがいい気がする(あとで変えられそうだったのでまあ大した問題じゃないはず)

Port番号が3306とMySQLのWell Known Portになっているのは、MariaDBMySQLのforkだからだろうか。

DBの作成とデプロイ

まずはMariaDBのコンソールを立ち上げる。

私はWindows10のスタートメニューに耐えきれずにClassic Shellを入れているがまあMariaDBで検索すれば見つかるだろう。

CREATE DATABASE tsubonesystem;

する。;を忘れずに。

今度はCommand Prompt (MariaDB 10.1 (x64))を立ち上げて、$GOPATH/src/github.com/kagucho/tsubonesystem3Windowsから見たパスに移動する

"D:\Program Files\MariaDB 10.1\bin\mysql" -uroot -p tsubonesystem < test.sql

とするとデプロイできる。

msys2でnode.jsを使えるようにする

これが難儀した。まずmsys2のパッケージ管理システムであるpacmanで取ってこれるところにmingw-w64-x86_64-nodejsがある。これを利用すればいいと思うかもしれないが、まずnode.jsのバージョンがまだ6.x系だった。しかしそれが問題なのではない。ここでnpmを使おうとしてmingw-w64-x86_64-npmを入れようとしたら、そんなものはないという。

github.com

次にmsys2ならnvm使えるのでは?と思ったが、冒頭に書いたようにそうも行かない。

したがって、Windowsに普通にInstallしたnode.jsを利用することにした。

まずコマンドプロンプト

where node

とする。これでどこにnode.jsがインストールされているかわかる。私の場合は

C:\Program Files (x86)\Nodist\bin\node.exe

と表示されたのでC:\Program Files (x86)\Nodist\binにある。

次にmsys2のPATHにここを追加する。~/.bashrc

export PATH="/c/Program Files (x86)/Nodist/bin":$PATH

を追記してさらに、

$ cat "$NODIST_PREFIX/bin/nodist_bash_profile_content.sh" >> ~/.bashrc
$ source ~/.bashrc

としてnodistを呼べるようにしつつ反映する。

注意点として、まれにnpm -g系のコマンドが上手くいかないことがあるので、globalをいじるのはmsys2のbashからではなくコマンドプロンプトからやるほうが無難である。

build

msys2のshellで

$ cd $GOPATH/src/github.com/kagucho/tsubonesystem3
$ make prepare
$ make

する。

それから

どうすればいいんだ?ブラウザで検証したいんだが・・・