mssql-server on ubuntu@systemd-nsspawn on debian

mssql-server on linux 入れてみようと思ったら、さりげなくubuntuのみでdebian対応していない。
無理やり入れてみようと思ったけどいくつか依存関係が解決できなくてあきらめていた。

ふと思いついたのが仮想マシン上でやればできるんじゃないかと。

ついでに最近覚えたsystemd-nspawnでやってみることにした。

mkdir /var/lib/machines/mssql
cd /var/lib/machines/mssql
debootstrap –variant=minbase –arch=amd64 xenial mssql http://ftp.jaist.ac.jp/Linux/ubuntu/
chroot mssql
passwd # rootのパスワード変更
exit
systemd-nspawn –boot –machine mssql

でとりあえず立ち上がる(はず。いろいろ試しているので足りないものあるかも)

ネットワークはとりあえずhostと同じものを。できればブリッジしたいけどそれやるとホスト側のifaceがeth0からbr0になって色々めんどい。

あと、これを試しているのがxen上の仮想マシン上で更にsystemd-nspawnとかイミフなことしているので。

sources.listに以下を追加。

deb [arch=amd64] https://packages.microsoft.com/ubuntu/16.04/prod xenial main
deb [arch=amd64] https://packages.microsoft.com/ubuntu/16.04/mssql-server-2017 xenial main

これだけじゃダメで、libc++1とかなかったので、ubuntuのsource.listも main だけから main restricted universe multiverse に変更した。
main universeだけでもいいのかもしれない。
apt-key とか apt-transport-httpsとか必要だけど割愛。

apt-get install mssql-server mssql-tools

でいいはずだったのだが、sqlserverの初期化に失敗する。mssql-toolsのsqlcmdが起動できない。

terminate called after throwing an instance of ‘std::runtime_error’
what(): locale::facet::_S_create_c_locale name not valid

ここでずっと止まっていたのだが、straceとか頑張ってhackしたら、locale に en_US.UTF-8 がない為だったらしい。

追加したら動いた。MSSMSとかからも接続できた。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です