GCC 4.6.2が出たので手動インストール方法メモ(Linux)

先週にRCが出て,昨日4.6.2が出ました.
さすがにNightlyを常用するようなアレじゃないので,公式リリース待ってました.
で,ディストロの標準パッケージではたいてい落とせないと思うので,手動インストールを.

ということで,Linuxな人がgccを初めてイチからインストールするときの手順を簡単にまとめます.

Continue reading

ハードリンクはgitでは…

ファイルAをgitリポジトリに置いて,AのハードリンクBも同じリポジトリに置きます.
んで,Aを変更したら?

ハードリンクって何…と知ってたらそのまんま予想通りなかんじ.
そのまんまです.はい.なにも不思議なこともなければ面白いこともありません.

% git init
Initialized empty Git repository in /○○○○○/.git/
% echo "hogehogehogehoge" > hello.txt                        #一つ目のファイルを作ってコミットします
% git add hello.txt
% git commit -m "hello.txt"
[master (root-commit) acee5b5] hello.txt
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 hello.txt
% ln hello.txt hello2.txt                                    #ハードリンクを作ります
% git status                                                 #新しいファイルが追加されたことに
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       hello2.txt
nothing added to commit but untracked files present (use "git add" to track)
% git add hello2.txt                                         #ハードリンクもコミットします
% git commit -m "hello2.txt"
[master bd15fe1] hello2.txt
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 hello2.txt
% echo "fugafuga" >> hello.txt                               #一つ目のファイルをちょっと変更します
% git status                                                 #変更は検出されたでしょうか
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   hello.txt
#       modified:   hello2.txt                               #もちろん二つ目のほうのファイルも変更されたことになります
#
no changes added to commit (use "git add" and/or "git commit -a")

くそおもしろくない記事でごめんなさい.
そもそもgitだからどうのっていう話ですらない.これはひどい.

boost::serializationでほげほげうまうま

オブジェクトをまるごとファイルに書きだしたりネットワークに送ったりしたいとき内容を直列化し再構築することやその仕組みをシリアライズと呼び,boostではserializationライブラリによって実現できます.
どのような形のデータ列に落としこむか?という話で,boost::serializationはテキスト,XML,バイナリの3種類がサポートされています.

Continue reading

GitoriousをUbuntu 11.04 Serverにインストール

GitHubクローンの代表格なGitホスティングサービスGitorious,今では例えばQtもホスティングされています.
このシステムをまるごと自分のWWWサーバに入れて,ユーザ数やプロジェクト・リポジトリ数,非公開設定まで無制限な,WEBベースのリポジトリ管理システムを構築することができます.

タイミング悪いですね

もともとMarcurialホスティングサービスなBitbucketがGitに対応して,無料アカウントでもユーザ数5人まで,公開/非公開・数・容量共に無制限のGitリポジトリを置けるというとんでもないサービスが始まりました.
何と言うことでしょう.やっぱ外に置くのは不安じゃんって人もいるでしょうけど,それにしても今日の記事は無駄になるのでしょうか.

ビルドサーバとしてfook書いてCIと連携したりできるシステムを構築するところまですれば,差も出るのかもしれません.
そこまでするならRedmineでも入れましょう.

都合の悪い話はおいといて話を進めることにしましょう><。。

Continue reading

VirtualBoxでWEB開発するときのネットワーク設定

したいこと.

  • ゲストでWWWサーバを稼働
  • ホストからそのサーバにHTTPアクセス
  • ゲストへはsshで入って作業

このために

  • ゲストは外に行けるように
  • ホストはゲストに入れるように
  • ゲストは外から見えないように

公式マニュアルだとNATにしてport forwardingにするといいよとのことですが,それだと外から見えちゃうし,設定が(・A・)マンドクセ

解決策.
NATをプライマリNICにして,ホストオンリーアダプタのNICを追加で設定すると,できます.
ゲストOSからはそれぞれeth0とeth1が見えます.
ホストからHTTPやsshでeth1にあたる端末に接続するとゲストに入れます.

ただゲストが例えばCentOSだと問題ないらしいのですが,Ubuntuとかだと,非プライマリなNICの接続設定は手動でする必要がある模様.
以下ゲストがUbuntuのときの設定です.

/etc/network/interfaces

の設定ファイルへ,

auto eth1
iface eth1 inet dhcp

と追記してネットワークを再起動するとおっけーです.
でもDHCPはアレなので,固定IPにしてしまうのもイイと思います.

auto eth1
iface eth1 inet static
address 192.168.56.254
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255

んで,終わったらroot権限で

/etc/init.d/networking restart

これでおーけーです. ifconfigしてちゃんと設定出来てること,ホストからもつなげることを確認してください.

ついでにホストのhostsも設定しておくともっと(゚Д゚)ウマー