最近SNSって流行ってますよね。
ただ、SNSの技術面からいうと、従来のサービスのユーザの管理方法を工夫した、
すなわち、従来フラットあるいは木構造だったものをリレーショナルにしたという部分がミソなのであって、
掲示板やグループウェアのような機能上の特徴のことを言っているのではないと認識していますが、間違ってます?
なので、社内SNSの意義がいまいち理解できませんし、規模の大きすぎるサービスもどうかと思っています。
まあ、このさいそういうことは置いておいて、
オープンソースなSNSサーバ OpenPNE を入れて遊んでみることにしました。
OSには久しぶりに Gentoo Linux を利用してみます。
ちなみに単なるテストなので、必要最小限なインストールをしています。
また、IPアドレス等やHDDの構成等は各環境で動作するよう読み替えてください。
それから、以下の操作は各個人の責任において行ってください。
著者は何も保障しません。
まず、インストールCDの
イメージをダウンロードしCDに焼きます。
このCDでPCをブートし、ブートプロンプトで
gentoo-nofb
を入力します。
コマンドプロンプトが現れたら、
ネットワーク設定するため以下のコマンドを実行します。
ifconfig eth0 192.168.1.2 netmask 255.255.255.0 route add default gw 192.168.1.1 echo "nameserver 192.168.1.1" > /etc/resolv.conf
次にHDDをフォーマットします。
fdisk /dev/hda
を実行し、
n[enter]
p[enter]
1[enter]
[enter]
[enter]
w[enter]
と進んでいきます。
さらに以下を実行します。
mke2fs /dev/hda1
tune2fs -c 0 -i 0 /dev/hda1
mount /dev/hda1 /mnt/gentoo
また、時刻を date コマンドで正確に設定しておきます。
その後以下を実行します。
cd /mnt/gentoo
wget http://gentoo.osuosl.org/releases/x86/2007.0/stages/stage3-x86-2007.0.tar.bz2
tar jxfp stage3-x86-2007.0.tar.bz2
wget http://gentoo.osuosl.org/snapshots/portage-latest.tar.bz2
tar jxf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
mirrorselect -i -o >> /mnt/gentoo/etc/make.conf
cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
export PS1="(chroot) $PS1"
emerge --sync --quiet
ロケールの設定を行います。
ファイル"/etc/locale.gen"の内容を以下のようにします。
en_US ISO-8859-1
en_US.UTF-8 UTF-8
ja_JP.EUC-JP/EUC-JP
ja_JP.UTF-8/UTF-8
ja_JP/EUC-JP
なお、編集には nano を用います。
nano -w /etc/locale.gen
を実行してください。
そして以下を実行します。
locale-gen
cp /usr/share/zoneinfo/Japan /etc/localtime
いよいよカーネルの準備です。以下を実行します。
USE="-doc symlink" emerge gentoo-sources
emerge genkernel
zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6
genkernel all
設定ファイルを編集していきます。まず"/etc/fstab"です。
nano -w /etc/fstab
を実行し、/dev/BOOT,/dev/ROOT,/dev/SWAP で始まる行の先頭に '#' を加えコメントアウトし、
以下の2行を適当な位置に追加します。
/dev/hda1 / ext2 noatime 0 1
none /proc proc defaults 0 0
次に"/etc/conf.d/hostname"です。
nano -w /etc/conf.d/hostname
を実行し、
HOSTNAME="tux"
の tux の部分を好きな名前に変更します。
例えば sns にします。
次に"/etc/conf.d/domainname"です。
nano -w /etc/conf.d/domainname
を実行し、
DNSDOMAIN="homenetwork"
の homenetwork の部分を独自ドメインに変更します。
例えば mydomain.com にします。
次に"/etc/conf.d/net"です。
nano -w /etc/conf.d/net
を実行し、
config_eth0=( "192.168.1.2 netmask 255.255.255.0 brd 192.168.1.255")
routes_eth0=( "default gw 192.168.1.1" )
を追加します。さらに
rc-update add net.eth0 default
を実行します。
次に"/etc/hosts"です。
nano -w /etc/hosts
を実行し、
127.0.0.1 localhost
の行を
127.0.0.1 sns.mydomain.com sns localhost
に変更します。
次に"/etc/conf.d/keymaps"です。
nano -w /etc/conf.d/keymaps
を実行し、
KEYMAP="us"
の行を
KEYMAP="jp106"
に変更します。
次に"/etc/conf.d/clock"です。
nano -w /etc/conf.d/clock
を実行し、
CLOCK="UTC"
の行を
CLOCK="local"
に変更します。
ここでルートユーザのパスワードを設定しておきます。
以下を実行し、指示に従います。
passwd
それでは、起動のための準備を行いましょう。
以下を実行します。
emerge syslog-ng
rc-update add syslog-ng default
emerge vixie-cron
rc-update add vixie-cron default
emerge grub
ブートローダを設定します。
nano -w /boot/grub/grub.conf
を実行し、"/boot/grub/grub.conf"を以下の内容で新規作成します。
default 0
timeout 10
title=gentoo
root (hd0,0)
kernel /boot/kernel-genkernel-x86-2.6.20-gentoo-r8 root=/dev/ram0
init=/linuxrc ramdisk=8192 real_root=/dev/hda1 udev
initrd /boot/initramfs-genkernel-x86-2.6.20-gentoo-r8
さらに以下を実行します。
grep -v rootfs /proc/mounts > /etc/mtab
grub-install /dev/hda
exit
cd
umount /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
reboot
HDDからLinuxシステムが立ち上がったら、まず一般ユーザを作成します。
例えばユーザ名を"taro"とするなら以下を実行します。
useradd -m -G users,wheel -s /bin/bash taro
passwd taro
そして以下を実行します。
rc-update add sshd default
/etc/init.d/sshd start
この後はsshでリモートログインして操作することもできます。
さて最低限"vi"はほしいので以下を実行します。
emerge app-editors/vim
とりあえずこれで完了です。