Linuxの最近のブログ記事

以前から個人的にLDAPを導入しているのですが、意外と忘れがちなので備忘をかねてメモります。

昔のメモなので今と挙動が違うかもしれませんがご了承ください。OSはCentOS 5です。

まずはOpen LDAPのインストールと設定をします。

関連パッケージのインストール

$ yum -y install openldap openldap-servers openldap-clients openldap-devel


ディレクトリマネージャのパスワードを生成する

$ /usr/sbin/slappasswd -h {SSHA}
New password:
Re-enter new password:

slapd.confの設定

/etc/openldap/slapd.conf
...snip...

access to attrs=userPassword
 by self write
 by anonymous auth
 by * none
access to *
 by self write
 by * read

...snip...

suffix      "dc=example,dc=com"
rootdn      "cn=Manager,dc=example,dc=com"

...snip...

rootpw さっき作ったパスワード

...snip...

ldapd.confの設定

/etc/openldap/ldap.conf
...snip...

URI ldap://127.0.0.1/

...snip...

slapdの起動と自動起動設定

$ /etc/init.d/ldap start
$ /sbin/chkconfig ldap on

既存アカウントの移行をします

移行ツールの設定

/usr/share/openldap/migration/migrate_common.ph
-- snip --
# Default base
$DEFAULT_BASE = "dc=example,dc=com";
-- snip --

base, passwd, groupをエクスポート

$ /usr/share/openldap/migration/migrate_base.pl > base.ldif
$ /usr/share/openldap/migration/migrate_group.pl /etc/group > group.ldif
$ /usr/share/openldap/migration/migrate_passwd.pl /etc/passwd > passwd.ldif

適当に整形してLDAPサーバに挿入

$ ldapadd -h localhost -x -D "cn=Manager,dc=example,dc=com" -W -f base.ldif
$ ldapadd -h localhost -x -D "cn=Manager,dc=example,dc=com" -W -f passwd.ldif
$ ldapadd -h localhost -x -D "cn=Manager,dc=example,dc=com" -W -f group.ldif

確認

$ ldapsearch -x -D "cn=Manager,dc=example,dc=com" -W -b "dc=example,dc=com" "uid=hide"
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> with scope subtree
# filter: uid=hide
# requesting: ALL
#

# hide, People, example.com
dn: uid=hide,ou=People,dc=example,dc=com
uid: hide
cn: hide
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
--snip--

PAM認証先をLDAPに向けます

関連パッケージのインストール

$ yum -y install nss_ldap nscd

nscd(ネームサービス)の起動と自動起動の設定

$ /etc/init.d/nscd start
$ /sbin/chkconfig nscd on

認証をLDAPに向ける

$ /usr/sbin/authconfig-tui

            │  ユーザー情報         認証                          │
            │  [*] キャッシュ情報   [*] MD5 パスワードを使用      │
            │  [ ] Hesiod を使用    [*] シャドウパスワードを使用  │
            │  [*] LDAP を使用      [*] LDAP 認証を使用           │
            │  [ ] NIS を使用       [ ] Kerberos 5 を使用         │
            │  [ ] Winbind を使用   [ ] SMB 認証を使用            │
            │                       [ ] Winbind 認証を使用        │
            │                       [ ] ローカル認証は十分です    │
            │                                                     │

...次へ...

            │                                                     │
            │            [ ] TLS を使用                           │
            │  サーバー: ldap://127.0.0.1/_______________________ │
            │ ベース DN: dc=example,dc=com______________________ │
            │                                                     │

...OK...

LDAPサーバが落ちていてもローカルで認証できるようにする

/etc/ldap.conf
--snip--
#bind_policy hard
bind_policy soft
--snip--

最初のログインで自動的にホームディレクトリをスケルトンから作るようにする

/etc/pam.d/system-auth-ac
--snip--
session     required      pam_mkhomedir.so skel=/etc/skel umask=0022

ちなみに、システム認証をLDAPに依存する以上、slapdが落ちたら一般アカウントでのログインが出来なくなります。また、通常rootアカウントでのsshのアクセスは認められていないので、コンソールからログインしてslapdを立ち上げる必要があります。

次にWebDAV経由でのSubversionの認証をLDAPに向けます

mod_authz_ldapのインストール

$ yum install mod_authz_ldap

mod_dav_svnの設定

認証はLDAPでdevグループにのみ閲覧・変更権限を与える

/etc/httpd/conf.d/subversion.conf
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

LDAPTrustedGlobalCert CA_DER /etc/pki/tls/certs/ca-bundle.crt
LDAPVerifyServerCert Off

  DAV svn
  SVNParentPath /var/repos

  AuthType Basic
  AuthName "subversion authentication"
  AuthBasicProvider ldap
  AuthLDAPGroupAttributeIsDN off
  AuthLDAPGroupAttribute memberUid
  AuthLDAPURL ldaps://localhost/dc=example,dc=com?uid?sub?(ObjectClass=*)

  Require ldap-group cn=dev,ou=Group,dc=example,dc=com

Auth*の部分は普通のhtaccessとして使えます。

次にTracの設定です。

LdapPluginのインストール

 
$ svn export http://trac-hacks.org/svn/ldapplugin/0.10/ ldapplugin
$ cd ldapplugin
$ python setup.py install

trac.iniの設定

/var/trac/conf/trac.ini
... snip ...
[components]
trac.ticket.report.* = disable
ldapplugin.* = enabled

[ldap]
enable = true
host = 127.0.0.1
port = 389
basedn = dc=example,dc=com
user_rdn = ou=People
uidattr = uid
group_rdn = ou=Group
groupmemberisdn = false
groupname = posixGroup
groupmember = memberUid
manage_groups = true
store_bind = true
bind_user = cn=Manager,dc=example,dc=com
bind_passwd = リポジトリマネージャのパスワード
... snip ...

mod_pythonの設定

/etc/httpd/conf.d/trac.conf
###
### Sample Trac configuration taken from http://trac.edgewall.org/wiki/TracModPython
###

### The recommended Trac web interface requires mod_python


### Create your Trac environments as subdirectories of /var/trac
### They will appear in a listing on your website at /trac/, and be available
### at /trac/PROJECTNAME/

  SetHandler mod_python
  PythonInterpreter main_interpreter
  PythonHandler trac.web.modpython_frontend
  PythonOption TracEnvParentDir /var/trac
  PythonOption TracUriRoot /trac


### Use htpasswd to add Trac accounts to the AuthUserFile
LDAPTrustedGlobalCert CA_DER /etc/pki/tls/certs/ca-bundle.crt
LDAPVerifyServerCert Off

   AuthType Basic
   AuthName "trac"
   AuthBasicProvider ldap
   AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?sub?(ObjectClass=*)
   AuthLDAPGroupAttribute memberUid
   AuthLDAPGroupAttributeIsDN off
   Require ldap-filter objectCLass=posixAccount




再起動

/etc/init.d/httpd restart

LDAPスキーマの追加

/etc/openldap/schema/trac.schemaを追加

/etc/openldap/schema/trac.schema
# 1.3.6.1.4.1.15527 is reserved. Do not hijack it
# Please see http://www.iana.org/cgi-bin/enterprise.pl

# Attribute type definitions
attributetype ( 1.3.6.1.4.1.15527.143
                NAME 'tracperm'
                DESC 'Trac Permission'
                EQUALITY caseIgnoreMatch
                SUBSTR caseIgnoreSubstringsMatch
                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32} )

# Class definitions
objectclass ( 1.3.6.1.4.1.15527.8
              NAME 'tracUser'
              DESC 'Regular user with Trac permission'
              SUP top
              AUXILIARY
              MUST ( uid $ cn $ userpassword )
              MAY  ( tracperm $ sn $ description ) )
objectclass ( 1.3.6.1.4.1.15527.9
              NAME 'tracGroup'
              DESC 'Trac permission for groupofnames'
              SUP top
              AUXILIARY
              MAY  ( tracperm ) )

/etc/openldap/slapd.confを編集

/etc/openldap/slapd.conf
...snip...
include     /etc/openldap/schema/trac.schema
...snip...

slapdの再起動

$ /etc/init.d/ldap restart

tracの権限を与えるGroupのObjectClassにtracGroupを追加する

権限を与える

tracのホストで
$ trac-admin /var/trac/dev permission add @dev TRAC_ADMIN

これでLDAPのdevグループに参加しているユーザーでTracにログインすると管理画面からLDAPのグループやユーザーに対して権限をマッピングすることができるようになります。

個人的にはアプリケーション間でさえOpenIDだーなんだーとSSO化されてるのだから社内ツールなんかは全てLDAPで統合してしまえばいいと思います。

emobileのD11LCというUSBモデムを使っています。8.04ではusbserialというドライバがモジュールだったのが9.04からカーネルに組み込まれたため、設定を変える必要があったのと毎回探すの面倒なのでメモっておきます。

usb_modeswitchのインストール
D11LCはそのままつなぐとUSBストレージとしてみえるのでモード切り替えを行うためusb_modeswitchをインストールします。コンパイルにはlibusbが必要なのでこれもインストールしておきます。

sudo apt-get install libusb-dev
wget http://www.draisberghof.de/usb_modeswitch/usb_modeswitch-0.9.7.tar.bz2
tar jzvf usb_modeswitch-0.9.7.tar.bz2
cd usb_modeswitch-0.9.7
make
sudo make install

usb_modeswitchの設定
/etc/usb_modeswitchから以下の部分の;を外して有効化します。

/etc/usb_modeswitch
--snip--
########################################################
# Alcatel OT-X020 (aka MBD-100HU, aka Nuton 3.5G), works with Emobile D11LC
#
# Contributor: Aleksandar Samardzic

DefaultVendor=  0x1c9e
DefaultProduct= 0x1001

TargetVendor=   0x1c9e
TargetProduct=  0x6061

MessageEndpoint=0x05
MessageContent="55534243123456780000000000000606f50402527000000000000000000000"
--snip--

udevルールの作成
毎回usb_modeswitchを起動するのは面倒なのでUSBにモデムが差されたら自動的に起動するようにudevルールを作成します。

/etc/udev/rules.d/00_modem_d11lc.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="1c9e", ATTR{idProduct}=="1001", RUN+="/usr/sbin/usb_modeswitch -Q"

カーネルパラメータの設定
8.04ではmodproveでusbserialモジュールの設定を変更していましたが、9.04ではカーネルに組み込まれたのでカーネルパラメータとしてusbserial.vendor=0x1c9e usbserial.product=0x6061を渡します。

/boot/grub/menu.lst (kernelの行は見た目の都合上折り返してますが一行です)
--snip--
title       Ubuntu 9.04, kernel 2.6.28-11-generic
uuid        43c8028b-a7d0-453a-bea0-ee259aaa246fe
kernel      /boot/vmlinuz-2.6.28-11-generic root=UUID=43c8028b-a7d0-453a-bea0-ee259aaa246f 
ro quiet splash usbserial.vendor=0x1c9e usbserial.product=0x6061
initrd      /boot/initrd.img-2.6.28-11-generic
quiet
--snip--

GNOME-PPPのインストールと設定

sudo apt-get install gnome-ppp

gnome-pppはroot権限で実行する必要があるので、パネルのメニューの編集から[インターネット]-[GNOME PPP]を選択[プロパティ]をクリックして[コマンド]をsudo gnome-pppに変更します。

さらに、sudoでパスワードを毎回聞かれるのはたまらないのでvisudoで
--snip--
%admin ALL=NOPASSWD: /usr/bin/gnome-ppp

を追加します。

GNOME-PPPの設定は
Username: em
Password: em
Remember password: on
Phone number: *99***1#

Setup:
    Modem:
        Device: /dev/ttyUSB0
        Type: Analog Modem
        Speed: 460800
        Phone Line: Tone
        Volume: Off
        Options:
    Desktop Integration:
        On connection:
            Minimize: on
            Dock in notification area: on
        Connection:
            Auto reconnect: off
            Abort connecting if line is busy: off
            Abort connecting if no dialtone: on
            Check carrier line: on
            Check default route: on
            Ignore terminal strings (stupid mode): on
            Send custom reply: off
な感じです。

で、再起動して、モデムを差してGNOME-PPPを起動してConnectでオッケーなはずです。

参考:

RIMG0319.JPG

Inspiron Mini 12はチップセットがPoulsboのため、8.10ではドライバ周りがリリースされずに苦い思いをしてきたわけですが、ここにきてUbuntu Mobile Teamが結構がんばってくれたみたいで、9.04リリース時には間に合わなかったものの比較的早くに9.04用のドライバ群がリリースされたので9.04にシフトしてみました。

今回は普通にUbuntu 9.04デスクトップ版をインストールしました。この時点で画面解像度以外で特に問題もなくインストールできました。

あとはLaunchpadのPPA for Ubuntu Mobile Teamにあるとおり

deb http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu jaunty main

をリポジトリソースに追加してやって、パッケージマネージャからxserver-xorg-video-psbをインストールして再起動すればOKです。

9.04にしてまだ時間が経ってないのでなんともいえないですが、起動は確かに速くなった気がします。ウィンドウの描画もキビキビした感があるような気がするけど、ベンチ取ってるわけではないので気のせいかも知れません。

ちなみに主にこんな感じのものがインストールされます

  • xserver-xorg-video-psb - X.Org X server -- Interl Poulsbo (2D)
  • psb-modules Kernel module built for -generic or -lpia kernel
  • libdrpm-poulsbo1 - Userspace interface to kernel DRM services -- runtime

また

  • libgl1-mesa - The OpenGL utility library (GLU)
  • libgl1-mesa-dri - A free implementation of the OpenGL API -- DRI modules
  • libgl1-mesa-glx - A free implementation of the OpenGL API -- GLX runtime

とか入ってるので3Dアクセラレーションも効くのかな、などと思いつつも必要ないので効力の程はわかりません。

追記: dmesgしたら
[drm:psb_xhw_add] *ERROR* No Xpsb 3D extension available.
とか出てたので効いてないっぽいですね。というか、3Dアクセラレーションとビデオ再生アクセラレーションはプロプライエタリなファームウェアが必要なのでちょっと期待できないですね。


さらに追記:
http://launchpad.net/~ubuntu-mobile/+archive/ppa/+sourcepub/605405/+listing-archive-extra
http://launchpad.net/~ubuntu-mobile/+archive/ppa/+sourcepub/605406/+listing-archive-extra
8.10ではfirmwareや3DのXドライバが出てて3Dサポートもされてるので期待できそうです。

というわけで、Ubuntuをインストールして使ってるわけですが、これが一筋縄では行かなかったので経緯をメモ。Vaio Type Pも同じ問題を抱えているので参考になるかも。

まず、Mini 12のUbuntuモデルでインストールされるUbuntuは通常のパッケージとは異なりDell独自のパッケージになっています(Belmontと呼ばれてる)。 このパッケージは一部プロプライエタリなものを含んでいるため公開されていません。

そこでオープンなパッケージの選択ですが最新版である8.10(Intrepid)は、Mini 12のGMA500を載せたPoulsboのXドライバであるxserver-xorg-video-psbがX.Org 7.3までしか対応していないのとDRMドライバがkernel 2.6.24以降のカーネルで存在しないため、VESAドライバでしか動かせず解像度が1024X768までの制限になります。 一方の8.04(Hardy)はxserver-xorg-video-psbが用意されていますが、デスクトップ版や日本語RemixだとkernelオプションをつけないとHDDが見つからなかったりこれまた面倒です。 そこで今回はUbuntu Netbook Remixのインストールイメージを使うことにしました。

ここからISOイメージを入手してインストールDVDを作るか、imgファイルからUSBインストーラを作ってインストールします。 UNRのインストーラはパーティションの指定などができないため、まるっとHDD全部をフォーマットしてどすんとインストールする豪快さです。Windowsとのデュアルブートを考える場合はインストール後にパーティションを変更してgrubなどのブートローダーをインストール・設定する必要があります。インストール直後からディスプレイ解像度以外は無線LANもサスペンドからの復帰(たまに失敗するけど)もサウンドもディスプレイの輝度調整も問題なく動きます。 インストール後にはデスクトップモードを変更してUbuntu Netbook Launcherからクラシックモードに変更して、Maximusを無効にしました。

次にxserver-xorg-video-psbのインストールですがUNRのリポジトリのバージョンは少し古いのでppaのリポジトリを/etc/apt/source.listに追加します。

deb http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu hardy main
deb-src http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu hardy main

これでxserver-xorg-video-psbをインストールすればlibdrm2なども最新のものと置き換わり、Xを上げなおしたら解像度が1280X800になりました。ただ個人的な体感だとFirefoxのスクロールがもたつくくらい重い気がします。これが、Mini 12のハード的な仕様なのか、ドライバの不出来なのかは判断しかねています。 さらに、このドライバは今のところ2Dのアクセラレーションのみで3Dと動画再生支援はサポートされないためCompiz3Dデスクトップは動作しないし、動画再生時のCPU負荷軽減などは見込めません。Dell版Ubuntuはこの辺のサポートがされているようです。

おまけですが、Mini 12は1.8インチHDDを使っていて、これのディスクの回転開始時か停止時かわからないのですがカッコンカッコンと結構耳障りな音がするので/etc/rc.localに

hdparm -B 254 /dev/sda

としてパワーマネージメントを無効にしると精神的にも快適です。

かなり古いVAIOノート(type t VGN-T90PS)にFedoraを入れていたのですが、この度Ubuntuに切り替えました。
Fedoraで困っていたのは

  • サスペンドから復帰するときにディスプレイの輝度が0になってしまうことが多々あった
  • タッチパッドのタップがどうしてもアクティブにできなかった
  • 何かのタイミングで音が出なくなることがあった

とくにサスペンドからの復帰失敗は致命的だったわけです。

で、この前ハードディスクの換装をしたのを機会に最近はやりのUbuntuをつっこんでみたら、あら不思議。
上の問題全部が解決してしまいました。しかもデフォルトで。

使い始めて1ヶ月くらいですが、何の問題もなく使えてます。
強いて言えばタップの感度が良すぎるので変更したいんだけどまだ調べてないことくらいですかね。

その昔Slackwareで日本語環境を整えることに苦労するところから始まって、Xの設定がうまくいかず挫折したりしたころから思うといい時代になったものです。
素晴らしい。

今朝おもむろにyum updateをかけたら猛烈な量の更新がかかったのであせりました。
RHEL5.1のリリースに伴いCentOS 5.1がリリースされたんですね。
すでに国内のミラーにも配布されているようです。

CentOS Wiki - CentOS 5.1 リリースノート

ここ一週間CSSと戦い続けているわけですが、どうもCSSは苦手です。当社比で普通の人の3倍時間がかかってる気がします。

特に勢いでCSSを書いているとソースがグッチャグチャになって収集がつかなくなってしまうので、整形ツールを探したらありました。

CSSTidy

そのまんまです。

C++のソースを持ってきて

$ unzip csstidy-source-1.2.zip -d csstidy
$ cd csstidy
$ chmod a+x compile.sh
$ ./compile.sh

でコンパイル。

出来上がったcsstidyを好きなディレクトリに入れておきます。
基本的な使い方は

$ csstidy 入力ファイル [オプション] [出力ファイル]

なのですが入力ファイル名に"-"を指定すると標準入力を渡せるので.vimrcに

map ,ct <Esc>:%! ~/bin/csstidy - --silent=true<CR>

とか入れておくとvimから:,ctで呼び出せて吉。
emacsは・・・知りません。
ちなみに--silent=trueをつけておかないと統計情報が出力されるのでつけておきましょう。

他にも色々オプションがあるのですが、--template=highestをつけるとめいっぱい最適化して、ファイルサイズを最小にしてくれます。

なかなか便利なCSSTidy。お勧めです。

CentOS 5を入れていて気がついたのですが、CentOS 5のkernel-2.6.18-8.1.1.el5では(多分インストール時の2.6.18-8.el5でも)あらかじめタイマー割り込みのCONFIG_HZの値が100になっているので、カーネルの更新のたびに再コンパイルが必要なくなっていました。

include/asm-i386/param.h
- snip -
#ifndef HZ
#define HZ 100
#endif
- snip -
ただカーネルオプションの指定は必要みたいです。
- snip -
title CentOS (2.6.18-8.1.1.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-8.1.1.el5 ro root=/dev/VolGroup00/LogVol00 clock=pit nosmp noapic nolapic
        initrd /initrd-2.6.18-8.1.1.el5.img
- snip -

今のところntpの補正範囲から大きくずれることはないです。

詳しくはこの辺。
Clock in a Linux Guest Runs More Slowly or Quickly Than Real Time (VMware)

Fedoraのlegacy supportに不安を覚えていたのでCentOS 5のリリースを受けて移行します。

2007041701.jpg

当たり前だけどパッケージはほとんどFedoraと変わらんです。
余裕があったらGFSなんか試してみたいなと。

最近screen使っていたせいで気づかなかったけどWindowsのターミナルにUTF-8 TeraTerm Pro with TTSSH2を使ってFedoraに接続してカラー表示をさせるには.bash_profileか.bashrcに

export TERM=xterm

の一文を入れておくと吉。
デフォルトでscreenではTERM環境変数はscreenなんですね。

hide-k.net#blog: Fedora Core 5 でmt-daapdを動かしてみる
FC6でこのサイトを参考にmt-daapdのコンパイルしたのですが、エラーが出てしまって(libid3tag-develはインストールされているはずなのに、libid3tagが見つからない旨のエラーです。。。)
下記サイトのRPMからインストールできました。
http://www.enlartenment.com/packages/fedora/5/i386/repodata/repoview/mt-daapd-0-0.2.4-1.fc5.mf.html

ということなので、せっかくFC6をインストールしたということもあるので本家からSRPMを持ってきてconfigオプションを直してFC6でrebuildしてみました。

RPM: mt-daapd-0.2.4-2.hk.i386.rpm
SRPM: mt-daapd-0.2.4-2.hk.src.rpm

必要なパッケージは
  • avahi-compat-howl
  • libid3tag
  • gdbm
です インストール
rpm -ivh mt-daapd-0.2.4-2.hk.i386.rpm
WindowsのMP3が置いてある共有フォルダのmount
mkdir /mnt/mp3
mount -t cifs //[hostname]/[directory] /mnt/mp3 -o username=[user],password=[passwd],iocharset=utf8

設定は/etc/mt-daapd.confでできますがデフォルトでもとりあえず動きます。

起動
/etc/init.d/avahi-daemon start
/etc/init.d/mt-daapd start

iTunesを立ち上げて[共有]にサーバーがいたらOK。

2006111501.jpg

見づらいかもしれませんが日本語タイトルもOKっぽいです。

スラッシュドット ジャパン | Fedora Core 6 リリース
Anonymous Coward曰く、"何度かリリース遅延があったが、とうとう24日、日本時間の23時に Fedora Core 6が正式リリースされた。主な変更点は、

* DejaVuフォントの採用
* Compiz採用
* パフォーマンスの向上
* Anacondaインストーラの改善

というわけでFedora Core 6がようやくリリースされました。

fc6_01.jpg

個人的にはDejaVuフォントだとかCompizとかGUI使ってないのであまり関係なさげだけど、vmwareに放り込んでおきました。

家のサーバーとか会社のサーバーでも酷いのだとFC3とか稼動してるので様子見てアップデートしなきゃです。

というわけで、FC5をVMwareにつっこんで色々テストしているわけですが

僻地のプログラマkmt-tの日記
駄目だ、インストールできねぇ。Fedora5みたいなディストリつかうんじゃなかった。無難にDebianにしておけば...。yumが使えないととたんにパワーダウン。ヨワヨワ。誰かインストールができたら方法教えてください。

という記事を見かけました。

この記事を参考にされたということですが、このころはFC3を対象にしているので、FC5だとmDNSResponderがavahiに置き換わってしまったためインストールに失敗します。

で、mt-daapdのソースはSource Forgeのではなく本家のsnapshotを使うことにします。

nightlies - mt-daapd project site

現時点で最新のmt-daapd-svn-909.tar.gzを使いました。

必要なRPMパッケージは
  • avahi-devel
  • libid3tag-devel
  • sqlite-devel
です。どれもyumで取ってこれるはずです。(libid3tagはextrasに含まれてます) で、さっきのソースをダウンロードして
$ tar -xzvf mt-daapd-svn-909.tar.gz
$ cd mt-daapd-svn-909
$ ./configure --enable-sqlite3 --enable-howl --with-howl-includes=/usr/include/avahi-compat-howl
$ make
$ make install
$ cp contrib/mt-daapd /etc/init.d/
$ chmod 755 /etc/init.d/mt-daapd
$ cp contrib/mt-daapd.conf /etc/

/etc/mt-daapd.confで一箇所だけ注意すべきなのは

/etc/mt-daapd.conf
...
db_type = sqlite3
...

です。

後は

$ /etc/init.d/avahi-daemon start
$ /etc/init.d/mt-daapd start

で動くと思われます。

多少変更が必要ですがcontribの下にSPECがあるのでRPMパッケージを作ってもいいかもしれませんね。

Fedora Core 5がリリースされたので早速VMWareでインストールしてみました。

fc5_0.jpg

FC5のベースシステムは以下です。gcc-4.1ってのがかなり挑戦的です。
- gcc-4.1
- glibc-2.4
- kernel-2.6.15

僕はサーバー用途にしか使わないのであまり関係ないのですがデスクトップ環境では以下のバージョンが入っているようです。
- GNOME 2.14
- OpenOffice 2.0.2
- KDE 3.5.1

まだインストールしただけですが、インストーラーで大きく変わった点といえば、パッケージの選択でBase SystemからbluetoothやPCMCIA関連などのパッケージをインストールからはずすことができるようになったことと、ファイヤーウォールの設定などが最初のブートの時にあがるCUIでするようになったことくらいですかね。

ちなみにここで設定しそこなったら/usr/sbin/setupで再設定できるようです。

というわけで、引越しで早朝から運動したせいで猛烈に眠いわけですが、やれるうちにやっておこうということで障害対応。

経緯:
とあるサーバーがBIOSすら上がらなくなったので、ホストの移行をしようとしました。データは別ディスクに積んでるので問題ないのですが、色々とある設定を一からやるのは面倒くさいのでHDDを引っこ抜いて他のホストにつないでmountしてぶっこ抜けばいいやと軽い気持ちで望んだわけです。

ありゃ?:
で、IDEのHDDをUSB化するケーブルで他のホストにつないでmountしようとしたのですが、/dev/sdb1 /dev/sdb2と見えるもののbootパーティションはmountできるもののrootパーティションがmountできません。

ちなみに使ったケーブルは

ata-usb.jpg

こんな感じに使える優れもの。

偶然にも引越しの最中に社長さんから

「こんなん出てきたんだけどいる?」

と聞かれて

「いらね。」

と、そっけなく答えていたのですが、その直後に

「ごめんなさい。やっぱ、いります。」

という羽目になりました。あの時の社長さんの優越感に歪んだ口元はとっても屈辱的でした。

はまった:
最初に思ったのが、パーティションテーブルが壊れてるんかいなということで、googleさんに聞いてみたらgpartなるツールを使えば復元できそうなことを書いてあったのでインストールしてみました。

ちなみにFedora Core 4の場合は素ではコンパイルが通らないのでsrc/gpart.hのincludeのとこを

#include "errmsgs.h"
#include <errno.h>
#include "l64seek.h"

とする必要があります。で、make, make install。

で、おもむろに

# gpart /dev/sdb

としたところ散々待たされた挙句返ってくるはずのブロック情報などが全て0というつれないお返事。(この辺から意地になってきます。)

LVMじゃん:
で、週末に家でやればいいやとばかりにHDDを持って帰って自宅でgpartで色々やってみたのですが、結果は惨敗。

そろそろあきらめかけて、週明けの設定地獄を想像しながら寝る準備をしてたのですが、はたと気づくわけですよ。

LVMじゃん。

そうです。このディスクはFedoraのインストーラーのデフォルトのまんまLVMでフォーマットしてたんです。これじゃ~ダメなわけです。

結果:
FedoraのレスキューCDからブートしてUSBで接続した後にkudzu-probをかけて認識させ(これはいらんかも)

# lvm vgscan

としたところ

  Reading all physical volumes.  This may take a while...
  Found volume group "VolGroup00" using metadata type lvm2

という暖かいお言葉が・・・
念のため/dev/VolGroup00以下を見てみたら無事LogVol100(ルートパーティション)とLogVol101(多分swap)が見えたので

# lvm vgchange -a y

でLVMをアクティベイトしてから

# mkdir /mnt/usb
# mount /dev/VolGroup00/LogVol100 /mnt/usb

で無事、mountできました。

というわけで、後は新しいホストにぶる下げてぶっこ抜けばいいかなってことで一件落着でした。

プロフィール

このアーカイブについて

このページには、過去に書かれたブログ記事のうちLinuxカテゴリに属しているものが含まれています。

前のカテゴリはJavaです。

次のカテゴリはMovable Typeです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。