VPS を引っ越した
引っ越し先は DigitalOcean。最近よく DigitalOcean の良い評判を耳にしていて、希望の価格帯である $5 前後のプランもあったので移ることに決めた。
最小課金単位が 1 時間で、簡単にインスタンスを作成・破棄できるので、金額を気にせず気軽に遊べて便利。
今までの VPS は 日本ラッド の Osukini サーバー の LT プランを使っていた。
現行のサーバーには特に不満があるわけではないけど、強いて言えば回線が実測 1 MB/s くらいしか出てないこと、サーバーのサブネットが BBQ 規制リストに載ってしまっていてプロキシ扱いされることがあるのは気になっていた。
新しいサーバー名は、現在のサーバーの名前の macaron を 連想検索エンジン reflexa に入れて出てきたエクレアからとって、eclair.wktk.jp にした。
OS は Arch Linux にした。今まで通り Ubuntu でも良かったんだけど、Arch Linux を使ったことがないので試してみることにした。
セットアップでやったことを自分用にメモしておく。
# パッケージのアップデート pacman -Syu --ignore filesystem pacman -Su # とりあえず入れるパッケージ pacman -S git wget nginx whois dnsutils vim ntp ufw unbound zsh # ログイン用ユーザー useradd -m -g users -G wheel wktk visudo # %wheel の有効化 # /root/.ssh/authorized_keys をログイン用ユーザーに移動、所有者をユーザーにする # root ログインの無効化 ## これやって Web コンソールが使えなくならないか試してない usermod -L root # sshd の設定 ## Port, PermitRootLogin, PasswordAuthentication を編集 vim /etc/ssh/sshd_config systemctl reload sshd # DNS サーバーの設定 ## デフォルトで入ってた 4.2.2.1 はときどき調子が悪く、DigitalOcean 側で NS サーバーが用意されているわけでもなく、Google Public DNS を使うのも嫌だったため、ローカルにキャッシュサーバーを置くことにした。 wget ftp://FTP.INTERNIC.NET/domain/named.cache -O /etc/unbound/root.hints vim /etc/unbound/unbound.conf ## root-hint: "/etc/unbound/root.hints" を追加 systemctl enable unbound systemctl start unbound vim /etc/network.d/ethernet-static ## DNS を 127.0.0.1 に変更する ## 最初は /etc/resolv.conf.head に設定してたけど、再起動すると無視されるようになったのでこっちを書き換えた。 # タイムゾーンを Asia/Tokyo に timedatectl set-timezone Asia/Tokyo # locale の設定 vim /etc/locale.gen locale-gen locale > /etc/locale.conf vim /etc/locale.conf ## LC_COLLATE=en_US.utf8 # 時刻を聞きにいく NTP サーバーの設定 vim /etc/ntp.conf systemctl enable ntpd systemctl start ntpd # デフォルトの umask を変える vim /etc/profile # ufw の設定 ## SSH が締め出されないように気をつける ## ufw で充分なので iptables から移行した ufw limit (SSH のポート)/tcp ufw default deny ufw allow 25/tcp ufw allow 80/tcp ufw allow 443/tcp ufw allow 3000/tcp ## ... 他のポートも適宜 ufw enable systemctl enable ufw systemctl start ufw # nginx の設定 ## /etc/nginx 以下を適宜編集する systemctl enable nginx systemctl start nginx # スワップファイル ## "How to Add a Swap File on an Arch Linux Cloud Server | DigitalOcean" ## https://www.digitalocean.com/community/articles/how-to-add-a-swap-file-on-an-arch-linux-cloud-server fallocate -l 1024M /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile echo "/swapfile none swap defaults 0 0" >> /etc/fstab # Postfix ## /etc/postfix 以下を適宜編集 systemctl enable postfix systemctl start postfix # crond systemctl enable cronie systemctl start cronie # あとは rbenv 周りとか
ruby の管理を rbenv に移行した
自分用メモです
背景
Ubuntu に apt-get からの ruby 1.8, 1.9.3 とソースからインストールした ruby 2.0.0-p0 を入れてあった。
それぞれの ruby のバージョンの住み分けが面倒な感じになってしまった。
よって rbenv (と ruby-build) を system-wide にインストールして使うことにした。
ちなみに Ruby は 1.9 の時代から始めたので 1.8 と 1.9 では問題を経験してない。
apt-get で入れた ruby を削除、必要そうなパッケージをインストール
必要なパッケージ一覧は Debian 7.0, Ubuntu 13.04 に rbenv をインストールする #Debian #Ruby #rbenv #Ubuntu - Qiita [キータ] からコピペ。
apt-get remove ruby1.8 ruby1.9.1 ruby1.9.1-dev ruby1.9.1-examples ruby1.9.1-full ruby1.9.3 apt-get install build-essential bison libreadline6-dev curl git-core zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev autoconf libncurses5-dev apt-get autoremove
2 行目は既にインストールされてるものの方が多かった気がする。
ruby 2.0.0 を削除
ruby 2.0.0 のインストール時にソースを展開したディレクトリに移動して、
cd ~/ruby-2.0.0-p0 cat .installed.list | xargs rm -rf
で ruby 2.0.0 を削除。中身は ruby 2.0.0 関連のものだけだったので rm -rf にしちゃったけど、他にいい方法があるのかも。
rbenv を入れる
rbenv install and system wide install on Ubuntu 10.04 LTS. を参考にして、/usr/local/rbenv/ 下に rbenv 一式を入れた。
インストールしたバージョンは 1.9.3-p429 と 2.0.0-p195 で、後者を global にした。
rbenv install 1.9.3-p429 rbenv install 2.0.0-p195 rbenv global 2.0.0-p195 rbenv rehash
ruby -v ruby 2.0.0p195 (2013-05-14 revision 40734) [i686-linux]
これでとりあえず動くようになった。
あと、それぞれの ruby で
gem install rbenv-rehash
しておくと自動で rbenv rehash されるっぽい。
近況など (2013/04)
高 3 の単位を落とした (2012/10 - 2012/12 ごろ)
いろいろあって学校に行けなかった。
総合学習の 1 単位だけは夏休み期間中に自由な時間帯に授業を設定してもらって修得できた。
それ以外はすべての単位を落とした。
高卒認定を取得した (2012/12)
必修得単位を修得できなくなる可能性は早くからわかっていたので、24 年度第 2 回の高卒認定試験に出願してあった。
土曜授業のあとそのまま試験会場の東工大に向かって、1 科目だけ受けてきた。
高校の 1 年次で修得した単位で試験科目を免除 *1 できて、難易度は高くなかった。
高校を退学した (2013/03)
退学する、留年する、完全に単位制の高校に転校するなどの選択肢があったけど、退学することにした。
通い続けて卒業したいと思ってはいたので残念ではあった。
状況が多少複雑で退学を決めるまで長くかかってしまって、関係者には大分迷惑をかけた。
これから (2013/04)
高卒認定資格があるのでそのまま大学に進むこともできた。
でも 3 年次の勉強もまともにできないまま進学してしまうのが嫌だったので、1 年間の浪人の形で勉強しようと思ってる。
*1:ただし最低 1 科目は受験して合格する必要がある
Ruby で Pxem を動かせるライブラリを書いた
たしか 1 ヶ月くらい前に書いたんだけど忘れてた。
Ruby から Pxem を実行できる RPxem というライブラリを書いて公開した。
https://github.com/wktk/rpxem
https://rubygems.org/gems/rpxem
初 RubyGems です。
使い方
コマンドラインから `gem install rpxem` でインストールできる。
すると、下のように rpxem というコマンドが使えるようになる。
$ touch "Hello, world!.pxe" $ rpxem "Hello, world!.pxe" Hello, world!
C++ の本家インタプリタ、pxemi (pxem) と同じように使えるはず。
Ruby からも使える。
require "rpxem" RPxem.run("Hello, world!.pxe")
思ったことなど
- 実行結果を STDOUT でなく返り値としてとれるようにしてないのでやりたい。
- RPxem を書いてる間ずっと本家サイトのサーバーに接続できず、以前ダウンロードした pxemi のソースコードを見ながら書いた。そのため pxemi を移植したような感じになっている。
- 因みに、今は本家サイトのサーバーには接続できるようになったものの、バーチャルホスト設定が消失したためかサーバー事業者のページが表示されてしまい、サイトには相変わらずアクセス出来ない。
- 大きな数字を渡すと本家と動作が異なるかも。実際にやってみたら違ったけど、その辺りはよく知らないのでなんともいえない。