std::atomicが使えないとか言ってくる。正確には「'atomic' in namespace 'std' does not name a type」。
調べてみるとC++11からの規格らしい。でも./configureしたらちゃんとCXXに-std=c++11って付いてる。
さらに調べてみると↓これを発見。
OS付属コンパイラが古すぎて困った人へ | HPCシステムズ Tech Blog
# yum install scl-utils centos-release-scl
# yum install devtoolset-8
$ source scl_source enable devtoolset-8
ビンゴ。devtools入れたら通った。
ちなみにこれ入れる前のg++は4.8.5 20150623とかいう激古ボロボロ丸だった。
それでビルドできてたbitcoindとかxpchaindがおかしいのか...?
./configure CXXFLAGS='-O2 -D_FORTIFY_SOURCE=2 --param ggc-min-expand=1 --param ggc-min-heapsize=32768' --disable-gui-tests --disable-bench --without-gui --disable-wallet --with-boost-libdir=/usr/local/lib
CXXFLAGSの説明
- O2:最適化
- D_FORTIFY_SOURCE=2:メモリあふれ検出をON(最適化と同時に指定)
- ggc-min-expand、ggc-min-heapsize:メモリ使用量を減らす(VPSでコンパイルしているため)
オプションの説明
- disable-gui-tests:GUI(qt)テストをビルドしない
- disable-bench:ベンチマークをビルドしない
- without-gui:GUI(qt)をビルドしない
- disable-wallet:ウォレット機能を無効にする(Insightに必要なネットワークとフルブロックノードのみ使用する)
- with-boost-libdir=/usr/local/lib:OSのBoostだとバージョンが合わないのでカスタムビルドしたものを突っ込んであるディレクトリを指定
順番に入れていく。まだローカルでテストしてる段階なので、VPSに入れる時にはオプションとか変更するかも。
以下、特に断りがないかぎりバージョンは本記事公開時点の最新を選択。
CVMUプロジェクト自体、安定性より最新を重視してるので、さすがにdevelopment・canary・nightlyやβ版、RC版は使わないけど、正式リリースであれば出たばっかりのバージョンでもどんどん使っていくつもり。
※コマンドの先頭が「#」になってるものはroot権限が必要という意味で、実際はsudoでやってる場合もある。
一応、CVMUプロジェクト(※1)をゆっくり進めていこうということで、まずはサーバの仕様決め。
現時点で決まってる仕様は
- サーバ:さくらのVPS(プランはとりあえず白紙へ)
- OS:カスタム(CentOS 7 x64)
- Webサーバ:nginx
- Rails環境:Unicorn+rbenv+Ruby 2.2
今回はサーバのシェル(UI)をどうするか。
いろいろあって、当初の予定よりVPSのグレードを下げたい(512Mあたりで始めて、足りなかったら1Gに移行)ので、リソース的にはCUIにしたい。
でも、GUI管理コンソールなサーバも捨てがたいし、とりあえずGUIで入れて重かったらCUIに変更する方向で検討。
一時的にCUIを使うには、VirtualBox等だとCtrl+Alt+F2~F6。VPSで発行できるのかは不明。
恒久的にCUIを使うには、たしかランレベルを変更すればいいはず...ということで関係するコマンドやファイルを検索。
起動設定・ランレベルの設定
現在のレベルは/sbin/runlevel
で表示、変更は/etc/inittab
を編集。
ということで早速VirtualBox上で変更テスト。
第256回 新春特別企画・Android上でUbuntu…ではなくDebianを使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
なんとなく楽しそうで買ったはいいけど、ほとんど実用することなく、今や電源すら入れられずに転がってたソニタブPにDebianを入れてみた。
…あ、ちなみにroot取得済みが前提。
そっちの詳細は「Sony Tablet P」 ICSアップデート(rooted) 手順メモ - 約定期blog アーカイブ」を参照。
基本的に記事の通りにやったけど、adb Wireless経由でやったのでdpkg-reconfigureが操作不能になってしまう問題が発生。
仕方が無いのでタイムゾーンは「echo "Asia/Tokyo" > /etc/timezone」してから
「dpkg-reconfigure tzdata」して、ESCとか押しまくって抜けたらJSTになってるっぽかったのでそれで突破。
その後、「apt-get install ssh」でsshを入れて、CygwinからSSH接続したらdpkg-reconfigureが正常に動く用になったので、念のためもう一度タイムゾーン設定しなおして、後は手順通り。
OpenOfficeは多分使わないので省いた。
あと、最初から「LinuxサーバとしてWindowsから接続して使う」のが目的だったので、Android上でのRDP接続は試してない。
仕事でRuby研修受けてて、PC足りないから私だけ私物のを持って行ってるんだけど、今回は仮想環境にLinux入れてやるらしい。
で、使うディストリはCentOS 6.5なんだけど、せっかくVirtualBox入れたのでHariboteOSとかKnoppix LiveDVDとか使えるようにしたついでに久しぶりにGentoo入れてみた。
もちろん、CentOSのほうは手順通りしっかり入れたけど、Gentooのほうは遊びなので軽く…のつもりが予想外に苦戦。
Fail1: 2GBのパーティション切って入れようとしたらinode不足。
Fail2: inode増やして入れようとしたけどそもそも容量不足。
Fail3: 8GBのパーティション切って入れようとしたけど謎エラー。
どうも手順書(Gentoo Linux ドキュメント -- Gentoo Linux x86 ハンドブック)が微妙に古く、あるはずのファイルがなかったり、弄らなくていいのに下手に弄っておかしくなったりしてたらしい。