hacks/linux/Ubuntu

2011年02月01日

このエントリーをはてなブックマークに追加

RubyGems 1.3.5は既に古い

  • RubyGemsパッケージのBundlerなどはRubyGems-1.3.6以上で動作する。
  • Ubuntu-10.04にパッケージングされているrubygemsは1.3.5であり、都合が悪い。

そこで今回はUbuntu-10.04にrubygems-1.3.6以上をインストールする。

検証環境
  • Ubuntu 10.04.1 LTS Server
▼要件定義
  • RubyGems-1.3.6以上をインストール
  • Ubuntu maverickにはrubygems-1.3.7系が存在するので、maverickのrubygemsパッケージを利用出来るように設定
  • rubygemsを除いたパッケージは、lucidのパッケージを継続

作業前状態確認

pinの設定確認
$ apt-cache policy rubygems
rubygems:
  Installed: (none)
  Candidate: 1.3.5-1ubuntu2
  Version table:
     1.3.5-1ubuntu2 0
        990 http://jp.archive.ubuntu.com/ubuntu/ lucid/universe Packages

作業前のrubygemsパッケージのpin設定を確認。

事前準備

maverickのパッケージを扱う為の設定作業を行なう。

デフォルトリリースをlucidの物とする

※ファイルは新規作成

$ sudo vi /etc/apt/apt.conf.d/99default-release
APT::Default-Release "lucid";
pin設定:全パッケージ編

※ファイルは新規作成

$ sudo vi /etc/apt/preferences.d/00default
Package: *
Pin: release a=lucid
Pin-Priority: 1

特に指定がない限り、lucidが対象となる

pin設定:rubygems編

※ファイルは新規作成

$ sudo vi /etc/apt/preferences.d/99rubygems
Package: rubygems, rubygems1.8
Pin: release a=maverick
Pin-Priority: 1001

rubygems関連パッケージは、maverickのパッケージを対象とする

nuttyのapt-lineを追加

※ファイルは新規作成

$ sudo vi /etc/apt/sources.list.d/ubuntu-maverick.list
deb http://jp.archive.ubuntu.com/ubuntu/ maverick main restricted
deb http://jp.archive.ubuntu.com/ubuntu/ maverick multiverse
deb http://jp.archive.ubuntu.com/ubuntu/ maverick universe

設定反映

事前準備の設定を反映し、変化を確認する。

ローカルaptキャッシュを更新
$ sudo apt-get update
pinの設定確認
rubygems:
  Installed: (none)
  Candidate: 1.3.5-1ubuntu2
  Version table:
     1.3.7-2 0
        500 http://jp.archive.ubuntu.com/ubuntu/ maverick/universe Packages
     1.3.5-1ubuntu2 0
        990 http://jp.archive.ubuntu.com/ubuntu/ lucid/universe Packages

Virsion tableフィールドにmaverickのpuppetが追加されている事を確認。

作業内容

rubygems関連パッケージはmavericをインストールする。

インストール時には、「パッケージ名/maverick」を指定する。
省略した場合は、lucidのパッケージがインストールされる。

インストール
$ sudo apt-get install rubygems/maverick rubygems1.8/maverick
インストール状況を確認
$ dpkg -l |grep rubygems
ii  rubygems 1.3.7-2  package management framework for Ruby librar
ii  rubygems1.8 1.3.7-2 package management framework for Ruby librar
gemのバージョンを確認
$ gem -v
1.3.7



編集
@hansode at 11:50|PermalinkComments(0)TrackBack(0)

2011年01月07日

このエントリーをはてなブックマークに追加

ちょっとした検証環境を構築したい

早い話が、OpenStack環境構築手順を確認したくて取った手段。

物理ノード内の既存システムを保存しておきつつ、検証を行いたい場合には丁度良い。
物理ノードを使うメリットは、メモリ容量が多いこと。

▼検証環境

  • Ubuntu 10.04.1 LTS Desktop
  • Windows 7 Professional(32bits)

作業内容

手元のWindows 7マシンでUSBメモリにUbuntuをインストールする。
手順は、「Get Ubuntu Desktop Edition Download」の「Burn your CD or create a USB drive」に詳細が書かれている。

簡単にまとめると、

  • Universal USB Installerをダウンロード
  • Universal USB Installeを使用し、USBメモリにUbuntu Desktop Editionをインストール

凄く簡単にUSBメモリにUbuntu Desktopをインストール可能だ。
あらかじめISOイメージをダウンロードしておけば、USBメモリへのインストール作業は5分程度で完了する。

後は物理ノードにUSBメモリを挿し込み、USBメモリからブートさせれば良い。




編集
@hansode at 15:20|PermalinkComments(0)TrackBack(0)

2011年01月06日

このエントリーをはてなブックマークに追加

Bazzar用リポジトリを作る

▼要件定義

  • Bazzrをsftpで使用
    • ログインシェルは不要
  • 共通UNIXアカウント「bzr」を使用
  • 利用者は公開鍵を「bzr」に登録

▼検証環境

  • Ubuntu 10.04.1 LTS
  • OpenSSH 5.3p1-3ubuntu4
  • Bazzr 2.1.1-1

作業内容

リポジトリサーバ編

▼共通UNIXアカウント「bzr」を作成


$ sudo groupadd bzr
$ sudo useradd -g bzr -d /home/bzr -s /bin/false -m bzr

UNIXアカウント、UNIXグループ共に「bzr」とする。

▼chrooted sftp(chrooted ssh)環境設定


$ cd /etc/ssh
$ sudo cp -pi sshd_config sshd_config.0
$ sudo vi sshd_config

$ diff sshd_config.0 sshd_config
75c75,76
< Subsystem sftp /usr/lib/openssh/sftp-server
---
> #Subsystem sftp /usr/lib/openssh/sftp-server
> Subsystem sftp internal-sftp
77a79,82
>
> Match user bzr
> ChrootDirectory /home/chroot/bzr
> ForceCommand internal-sftp

$ sudo initctl restart ssh

▼chrooted sftp用ディレクトリを作成


$ sudo mkdir /home/chroot
$ sudo mkdir /home/chroot/bzr

▼bzrユーザーに公開鍵を登録


$ sudo su -m bzr
bzr$ cd /home/bzr
bar$ mkdir .ssh
bar$ chmod 700 .ssh
bar$ cd .ssh
bar$ cat <<EOS >> authorized_keys
...
(bzrユーザーの公開鍵をペースト)
...
EOS
bar$ chmod 600 authorized_keys

bar$ exit

▼bzrリポジトリを作成


$ cd /home/chroot/bzr
$ sudo mdkir repos
$ sudo chown bzr:bzr repos
$ sudo su -m bzr

bzr$ cd /home/chroot/bzr/repos
bzr$ bzr checkout lp:nova
[28075] 2011-01-06 07:23:58.313 INFO: Branched 521 revision(s).
Branched 521 revision(s).

bzr$ exit

ここではサンプルとして「nova」のブランチを作成している。

作業用サーバ編

▼必要に応じてsshクライアント設定


$ cd
$ vi .ssh/config
Host host
        Hostname bzr-host.example.com
        IdentityFile ~/.ssh/bzr.pem

ssh用設定はbzrコマンドで指定出来ないので.ssh/configで設定しておく。

▼sftp接続確認


$ sftp bzr@host
Connecting to host...
sftp> pwd
Remote working directory: /

sftp> ls -la
drwxr-xr-x    3 0        1002         4096 Jan  6 03:17 .
drwxr-xr-x    3 0        1002         4096 Jan  6 03:17 ..
drwxrwsr-x    3 1002     1002         4096 Jan  6 07:10 repos

sftp> ls -la repos/
drwxrwsr-x    3 1002     1002         4096 Jan  6 06:10 .
drwxr-xr-x    3 0        1002         4096 Jan  6 03:17 ..
drwxrwsr-x   13 1002     1002         4096 Jan  6 07:24 nova

sftp> quit

ログイン後、リモートワーキングディレクトリが「/」となっている。
「repos」ディレクトリ、及び「repos/nova/」を確認出来れば問題ない。

▼チェックアウト確認


$ bzr checkout sftp://bzr@host/repos/nova

作業環境にチェックアウト出来れば確認完了。


参考ページ




編集
@hansode at 16:35|PermalinkComments(0)TrackBack(0)

2011年01月05日

このエントリーをはてなブックマークに追加

きっかけはnova(OpenStack)環境構築

▼検証環境

  • Ubuntu 10.04.1 LTS Desktop
  • USBメモリ

nova.sh installを実行したら、エラーが発生
lvm2が依存するinitramfs-toolsのインストールに失敗していた。

▼説明の為、lvm2の部分だけ再現。


$ sudo apt-get -y install lvm2
.....
Setting up watershed (5) ...
update-initramfs: deferring update (trigger activated)
gzip: /initrd.img.gz: No such file or directory
cp: cannot stat `/vmlinuz': No such file or directory
dpkg: error processing watershed (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of lvm2:
 lvm2 depends on watershed (>= 2); however:
  Package watershed is not configured yet.
dpkg: error processing lvm2 (--configure):
 dependency problems - leaving unconfigured
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
No apport report written because the error message indicates its a followup error from a previous failure.
                          Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-2.6.32-24-generic
cp: cannot stat `/vmlinuz': No such file or directory
dpkg: error processing initramfs-tools (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 watershed
 lvm2
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

/vmlinuzが無いと言われている。

一見、/vmlinuzが存在しているようにみえているが、実態はシンボリックリンク先。
つまり、シンボリックリンク元が存在しない訳だ。


$ ls -la /vmlinuz
lrwxrwxrwx 1 root root 30 2010-08-16 10:07 /vmlinuz -> boot/vmlinuz-2.6.32-24-generic

解決策はシンボリックリンクを張り直す

update-initramfs: deferring update (trigger activated) / cp: cannot stat `/vmlinuz': No such file or directory』より


$ sudo ln -sf /cdrom/casper/vmlinuz /vmlinuz
$ ls -la /vmlinuz
lrwxrwxrwx 1 root root 21 2011-01-05 07:47 /vmlinuz -> /cdrom/casper/vmlinuz

この手順に従えばinitramfs-toolsのインストールは成功する。
そして、novaのインストールにも成功するようになる。

目出度し。




編集
@hansode at 16:10|PermalinkComments(0)TrackBack(0)