SageMath 設定備忘録

SageMath のインストールと設定の備忘録です.統計パッケージの R を Web フロントエンドで使うのが目的.SageMath 自体の概要を知りたい場合は,こことかここが分かり易い.

インストールから Web フロントエンドの起動まで

PPA が利用でき,バイナリパッケージでのアップデートが可能なことから,Ubuntu 上に構築することにします.Ubuntu 16.04 LTS のインストールと設定はこちら

まずは,システムへの PPA の登録と SageMath と必要パッケージのインストール.

すると約 5G 分のファイルのインストールが始まります.分かってはいましたが,巨大ですねぇ….しばらく放っておきます.終ったら,

とコマンドラインでは起動しますし,notebook.setup() で ssl のキー等も作られるのですが,pyOpenSSL が無いと言われて起動できません.で,確かに

と python が読み込むライブラリのパスを調べ,実際にその中を見ても pyOpenSSL は無い.しかし,pip は /usr/lib/sagemath/local/bin/pip にある.だから,

とすればよいのかと思ったら,何だか怒られてしまいます.色々試した結果,以下の通り対処することで pip が使えるようになりました.しかし,これは良い対処方法では無い気がする.

これで pip で pyopenssl をインストールできますが,インスト―ル途中で,ffi と openssl のライブラリが無いと怒られるので,事前に libffi-dev と libssl-dev を入れます.で,やっと

と sage の admin のパスワードの設定を求められるので,設定すると,

SageMath 初期画面

SageMath 初期画面

で,やっと Web フロントエンドが使えるようになりました.

自動起動の設定

このままだと,サーバーを再起動するたびに ssh でログインして sage ⇒ notebook(***) と Web フロントエンドを立ち上げないといけませんが,面倒なので,フロントエンドが自動起動するように設定します.

まず,一般ユーザー権限でも https の標準的な port 番号である 443 が使えるよう python を設定します.

で,Web フロントエンド起動と停止用のスクリプトを用意し,起動と終了のテストを行います.

なんか libgmp >= 5 にして,再コンパイルしろと出ますが,そんな元気は無いし,ローカルでしか使わないので無視です.最後にサービスとして起動するよう設定し,実際に起動してみます.

この辺はなんかもう少しやりようがあると思うのですが,まあ動いているので良しとします.なお,旧 /etc/init.d/sagenb だと以下の通りの設定でした.

証明書の作成とインストール

Web フロントエンドの起動を行う前に notebook.setup() とすると certtool を用いて Web フロントエンドの SSL 化が行われます.しかし所謂オレオレ証明ですので,ブラウザが警告を出してきます.面倒なので,警告が出ないよう証明書をインストールし直します.と言っても,ローカル環境にあるものなので,やはりローカルの証明局で証明書の発行を行い,これを Web フロントエンドの証明書として組み込むわけです.

手順としては,まず,openssl で秘密鍵(private.pem)を発行します.

次に証明書書名要求(sagenb.csr)を作成します.

私の場合は Windows Server に立てている証明局で証明書を発行(署名)しました.その証明書をnotebook.setup() により作成された証明書と入れ替えます.

最後に再起動して終了です.

その他

SageMath がインストールする共有ライブラリへのパスが通っておらず,一部パッケージが起動できないことが分かったので,以下の通り対処しました.

最初は /usr/lib/sagemath/local/lib をライブラリのパスに入れて対処しようとしたのですがこれだと今度は他のプログラムのライブラリと conflict してしまってもっと困ったことになってしまいました.

う~ん…大変だなぁ…こんなことなら素直に SageMathCloud をお金を払って使った方が良かったかも知れない.

スポンサーリンク
large rectangle advertisement
スポンサーリンク
large rectangle advertisement