つぶやく このページをDeliciousに追加 このページをはてなブックマークに追加 このページをlivedoor クリップに追加 このページをYahoo!ブックマークに追加

はじめに

  • ここは過去のgentoo-MLやjp-MLに出ていた話題を集めてあります
    • 皆さんのご意見に感謝してwebに逐次記入したいと思います。

emerge sync の rsync 先を日本のサーバ類を指定する。

デフォルトのrsync先は世界中のサーバからそのつど選択されるので 日本のサーバ(現在は4つ)に向けるとよいです。 /etc/make.confのSYNC行を

SYNC="rsync://rsync.jp.gentoo.org/gentoo-portage"

これで日本のサーバどれかに接続にいきます。

Xとディスクトップ環境

とりあえず、CD2枚目からpackageを入れておくことにする。(せっかくCD作ったし)

# mount /dev/cdrom /mnt/cdrom
# cp -a /mnt/cdrom/packages/* /usr/portage/packages/

ここまでやったら、今度はXのインストールとなるが、ものすごく時間がかかるので、3時間ぐらい放置しておけば良いと思われる。

# emerge xfree 

ここではハードウェアの状態はわかっているとして、話をすすめる。僕は面倒臭がりなんで、もうxf86cfg使って設定してしまうことにする。気に入らないなら/usr/X11R6/bin/xf86configを使えばよい。

# xf86cfg

さてうまく設定すればstartxでXが立ち上がっているはず。とりあえずこの状態までにしておくこと。でないと先には進めない。その後ディスクトップ環境構築に入る。僕はKDEを使いたいんでKDEで進むことにする。

# USE="bindist" emerge -k kde
# kdm

ここまででkdeの画面が見れていれば成功である。そして、あとは/etc/rc.confに設定を記述していく。

# vi /etc/rc.conf
DISPLAYMANAGER=kdm

最後に

# rc-update add xdm default
# reboot
  • ついでに・・・

試しにKDEをMacOSX風にしてみた。WinXP風にも。(完全に遊び)

rc.localみたいなの

/usr/local/rc.local/以下の設定ファイルとか/etc/rc.localとかに書き込むとか、そういうのはgentooはちょっと違うみたいで、/etc/conf.d/local.startというファイルに書き込むらしい。

僕はとりあえずsshdを初回起動に設定しておいた。

# rc-update add なにか default
というのも初期起動セットのコマンドらしい

自分が使いたいツール

emergeを使えば自分の欲しいツールはだいたい取得できる

emerge syncパッケージ情報の更新
emerge nameインストール
emerge -s name検索
emerge -p nameパッケージの状態を表示
emerge -v name-pと合わせて使う。パッケージが使うUSEフラグも表示
emerge -C nameアンインストール
emerge -k nameバイナリパッケージを使ってインストール
emerge -c name古いバージョンを削除
emerge -u nameパッケージの更新
emerge -B nameバイナリパッケージの作成のみ
emerge -b nameバイナリパッケージの作成をしつつインストール
emerge -e nameパッケージを依存パッケージも遡ってコンパイル

日本語環境

日本語環境ももちろん全て自前でそろえなければならない。

# emerge kinput2
# emerge canna
# emerge media-fonts/kochi-substitute (東風フォント)

kinput

$ vi .bashrc
    unset LC_ALL
    export LANG=ja_JP.eucJP
    export XMODIFIERS="@im=kinput2"
    kinput2 -canna -cs unix -xim & (cannaserverをunixにする)
    と書く
  • 詳しく無いんでよく知らないのだが、どうやら/etc/hosts.cannaで記述されているホスト名と同じで無ければならないようだ。

fonts

# vi /etc/fonts/fonts.conf
<dir>/usr/X11R6/lib/X11/fonts/trutype</dir>というのを追加

latex環境

なんだかんだ言っても必要なlatex。入れない訳にはいけない。あとエディタのEmacsもついで入れる。

# emerge emacs
# USE=cjk emerge ptex

そしてemacsでの日本語入力の仕方。

USE="canna" emerge tamago してから,~/.emacs に以下の記述を加える.
(setq canna-hostname "unix")
(setq default-input-method "japanese-egg-canna")

Securityホールを埋めたい

#emerge sync
#emerge --update system

CDから1つファイルがほしい

tar xjpvf stage1-ix86-1.2.tbz2 ./etc/make.globals

GRUBの注意点(FDDがない場合)

  • FDDがない環境でGRUBを実行すると、FDDを読みに行ってしまうために固まってしまう(別シェルから殺せば復旧できる)。FDDがない場合は--no-floppyをつければよい。
# grub --no-floppy

timezone(JST)の設定

  • timezoneの設定は/etc/localtimeでシンボリックリンクを張るのに加えて、/etc/rc.confの

Mozillaでjavaアプレット日本語入力

1. http://pc.2ch.net/test/read.cgi/linux/1047823838/77 をhoge.txt.uuencode とか保存
2. $ uudecode < hoge.txt.uuencode
3. font.properties.ja ができるので、それを  /opt/blackdown-jdk-1.4.1/jre/lib/ にコピー

$export JAVA_FONTS=/usr/X11R6/lib/X11/fonts/truetype:/opt/blackdown-jdk-1.4.1/jre/lib/fonts

5. MozillaでGo!

GentooJP-ebuilds

時間がずれてんだけど

  • /etc/rc.conf内のCLOCKをlocaltimeにして下記のbiossetをする
    • rm -rf /etc/adjtimeで削除# rc-update add clock boot

make.confの記述例

USE="nls cjk canna Imlib crypt cups encode libg++ nptl pdflib aalib mysql ssl esd  
gtk2 qt cdr X x86 oss avi gif gpm jpeg \
mmx mpeg ncurses oggvorbis opengl png python quicktime truetype zlib xmms xml2  
ungif java perl imlib mozilla kde -alsa \
kdelibs arts xfs tiff samba pic sse tcltk usb wmf mad"
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=i686 -O3 -pipe -ffast-math -falign-functions=4"
CXXFLAGS="${CFLAGS}"
ACCEPT_KEYWORDS="x86 ~x86"

SSHでアクセス制限

  • まずは
# vi /etc/pam.d/sshdのファイルに以下の行を追加します。
  • account    required /lib/security/pam_access.so
  • そして
# vi /etc/security/access.conf
  • のファイルにも以下の行を追加します。
-:ALL EXCEPT wheel hogehoge shutdown sync:ALL
  • これはwheel,hogehoge,shutdown,syncのユーザ以外はアクセスできませんという意味です。

fomts.dir(ebuild)

# Copyright 1999-2002 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# /space/gentoo/cvsroot/gentoo-x86/skel.ebuild,v 1.7 2002/05/18 17:25:12 agenkin  
Exp 
DESCRIPTION="Kochi Gothic and Mincho Japanese TrueType fonts"
HOMEPAGE="http://www.on.cs.keio.ac.jp/~yasu/jp_fonts.html"
LICENSE="kochi-fonts"
SLOT="0"
KEYWORDS="x86"
DEPEND=">=xfree-4.2.0-r9"
SRC_PATH="http://www.on.cs.keio.ac.jp/~yasu/linux/fonts"
SRC_URI="${SRC_PATH}/kochi-gothic-${PV}.tar.bz2
        ${SRC_PATH}/kochi-mincho-${PV}.tar.bz2"
src_unpack () {
unpack kochi-{gothic,mincho}-${PV}.tar.bz2
}
src_install () {
# install fonts
insinto /usr/X11R6/lib/X11/fonts/kochi
doins ${WORKDIR}/kochi-gothic/fonts/kochi-gothic.ttf
doins ${WORKDIR}/kochi-mincho/fonts/kochi-mincho.ttf
       doins ${WORKDIR}/kochi-mincho/examples/fonts.dir.xtt
       doins ${WORKDIR}/kochi-mincho/examples/fonts.scale.xtt
# install READMEs, licenses, etc. as required
dodir /usr/share/doc/${PF}
cp -a ${WORKDIR}/kochi-gothic/docs/* ${D}usr/share/doc/${PF}
cp -a ${WORKDIR}/kochi-mincho/docs/* ${D}usr/share/doc/${PF}
rebuild_fontfiles() {
einfo "Refreshing fonts.scale and fonts.dir..."
cd /usr/X11R6/lib/X11/fonts/truetype
# recreate fonts.scale
#ttmkfdir > fonts.scale \
# || die "Unable to create fonts.scale! Please emerge ttmkfdir and try again."
# recreate fonts.dir
mkfontdir -e /usr/X11R6/lib/X11/fonts/encodings
}
pkg_postinst() {      
rebuild_fontfiles
mv /usr/X11R6/lib/X11/fonts/kochi/fonts.dir.xtt  
/usr/X11R6/lib/X11/fonts/kochi/fonts.dir
mv /usr/X11R6/lib/X11/fonts/kochi/fonts.scale.xtt  
/usr/X11R6/lib/X11/fonts/kochi/fonts.scale
echo "***********************************************************"
echo "Please add /usr/X11R6/lib/X11/fonts/kochi to your font path"
echo "and load 'xtt' module"
echo "***********************************************************"
}
pkg_postrm() {
rebuild_fontfiles
}

ホームディレクトリを自動で生成

# cat /etc/pam.d/system-auth
  • session required /lib/security/pam_mkhomedir.so skel=/etc/skel umask=0022
    • pamのモジュールです
    • /etc/skelにデフォルト設定を入れておくと便利かも
    • adduser -m オプションでも可

suできる?

  • ユーザがsu - rootできるようにする。
    • useraddコマンドをユーザ名しかオプションをつけないで実行するとgidはデフォルトで users(gid=100) が設定される。 セキュリティ上、グループ wheel(gid=10) に所属するユーザしかできないようになっている。 以下で変更。
#usermod -G users,wheel [USERNAME]

USEふらぐ

  • http://www.gentoo.org/doc/ja/use-howto.xml
  • 便利なツールでufed
    #emerge app-admin/ufed
    #emerge app-admin/gentoolkit
  • etcatの使い方、man見ればいいか
    #etcat belongs /usr/bin/ls
    #etcat -d app-i18n/cannna(依存packageを探す)
    #etcat uses net-www/apache(パッケージの中に存在するUSE変数を表示)

Xの設定-gnome

# emerge gnome-base/libbonoboui
# emerge gnome
# etc-update

日本語環境

=============================================
~/.bashrc の内容
	
	export LANG=ja_JP.eucJP
	unset	LC_ALL
	export LC_CTYPE=ja_JP.eucJP
	export XMODIFIERS="@im=kinput2"
	export CANNAHOST=localhost
=============================================
=============================================
~/.xinitrc の内容 
	
	export LANG=ja_JP.eucJP
	unset	LC_ALL
	export LC_CTYPE=ja_JP.eucJP
	
	/usr/X11R6/bin/xrdb $HOME/.Xresources
	
	export XMODIFIERS="@im=kinput2"
	export CANNAHOST=localhost
	kinput2 -canna &
============================================
  • use cjkをつかって、IUSEに宣言していないebuildがありますので
#fgrep  cjk /var/db/pkg/*/*/*.ebuild
  • とすると、インストールされているebuildファイルのなかで、cjkという 文字列を含むものを全教えてくれるので、これをもとにemergeしていけば 良いと思います。
  • 最初からの手順
  • USE="cjk nls canna mule X x86 -gnome -gtk qt kde cupsなど" と設定して、emergeで、cannaやkinput2をインストールした後、
【/etc/conf.d/canna】
=============================================
CANNASERVER_OPTS="-syslog -u bin"
=============================================
【/usr/X11R6/lib/X11/app-defaults/Kinput2】
....最終行のコメントをはずしただけ
=============================================
*OverTheSpotConversion.UseOverrideShellForMode: True
=============================================

【/etc/fonts/fonts.conf】...以下を追加

=============================================
<dir>/usr/X11R6/lib/X11/fonts/truetype</dir>
=============================================
その後、
# fc-cache -fv
# rc-update add canna default
# reboot
また、追加した"root"以外のユーザでログインして、

【~/.bashrc】...2行だけ追加

=============================================
export XMODIFIERS="@im=kinput2"
export LANG=ja_JP.eucJP
=============================================

【~/.xinitrc】...以下を追加

=============================================
#!/bin/sh
kinput2 &
startkde
=============================================
# startx
で、KDEが起動して、Konsoleターミナル画面から、
Ctrl+Oキーで、日本語入力できています。

Portageを食べる

  • unstableが使いたい
    • ACCEPT_KEYWORDS='~i386" emerge -pv net-irc/xchat
  • USE変数の現在を調べる(環境変数)
    #emerge info
  • USE機能は素敵make.conf重要
    • 日本語環境ならcjk

emerge強化月間

  • アプリケーションの検索
    #emerge -s apache
    #emerge -S apache(コメントの検索対象)
  • アプリケーションのinstall とupdate
    #emerge apache
    #emerge -u apache(update)
    #emerge unmerge apache(uninstall)
  • 便利なオプション
    #emerge -pv apache

install後はこれも

  • Portageツリーを更新
    #emerge sync
    #emerge system(一括update)
    #emerge world
  • 確認のためのオプション(installもuninstallもしない)
    #emerge -p -u apache
    • なるべく日本のgentooミラーを使いましょう

install後にnetworkの設定

  • NICの確認
cat /proc/pci
less /proc/pci | grep  あなたのチップセット
  • networkの設定
    #nano -w /etc/conf.d/net
  • iface_eth0="192.168.1.2 broadcast 192.168.1.255 netmask 255.255.255.0"
  • gateway="eth0/192.168.1.1"
  • /etc/init.d/net.eth0 restart
    • /32のnetworkでの設定なので自分の環境に合わせる
      #rc-update add net.eth0 default

installしてもnicがない

  • 2chで質問あってよくtulipが認識されないようです、3comを買いましょうまずはnoppixなどでbootさせてlsmodしてみましょう
    #lsmod
    #dmesg | grep eth0 
  • でもよいです
    #ifconfig -a
  • でもよいです、得られる情報は全てメモすること、猿真似ではいけません
  • ここでtulipとある人はmodprobe tulipした後からはドキュメントどうりinstallできます
  • しかし/etc/modules.autoloadにtulipを記入するのを忘れないでください
  • 設定ファイル /etc/conf.modules または /etc/modules.conf に次の1行を書き足す.
    alias eth0 tulip
  • install後にこれを行った場合は
    #/etc/init/net.eth0 restart
  • してください、慣れませんがgentoo流儀です

BIOSとOSの時刻を同期させる

  • というわけでBIOSの時計をOSの時計に合わせるには

# /sbin/hwclock -w

ebuildの見本

  • emergeして、xet fp rehash /usr/X11R6/lib/X11/local/にFontPath?が通ってる必要があり たぶん、普通にXを入れてればOK.
# Copyright 1999-2002 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# /space/gentoo/cvsroot/gentoo-x86/skel.ebuild,v 1.7 2002/05/18 17:25:12 agenkin
Exp
DESCRIPTION="Monafonts"
HOMEPAGE="http://members.tripod.co.jp/s42335/mona/"
LICENSE="Distributable"
DEPEND=">=x11-base/xfree-4.2.0-r9"
SRC_PATH="http://members.tripod.co.jp/s42335/mona/dist/"
SRC_URI="${SRC_PATH}/monafonts-${PV}.tar.bz2.bin"
src_unpack () {
tar xjf ${DISTDIR}/${A}
}
src_compile () {
emake || die
}
src_install () {
make install DESTDIR=${D}
}

etc-updateって何?

etc-updateはGentoo LinuxのPortageに付属するコマンドです。 主として /etc にあるファイルの更新を行います。

emergeの動作

emergeコマンドによって、ユーザの希望するパッケージがシステムに インストールされるのですが、特にアップデートの場合、ユーザが手を入れた 設定ファイルなどが上書きされてしまっては困ります。 そこで、emergeは決められた場所にあるファイルを更新する場合、 上書きするのではなく別名をつけてインストールします。

例えば、baselayoutの新しいバージョンが出たとしましょう。新しいバージョンを emergeすると /etc/fstabが更新されることになりますが、このファイルにはユーザの 環境に合わせて変更が加えられえているはずです。それを上書きされてしまっては、 面倒です。

しかし実際には上書きされてしまうことはありません。Portageではこのようなファイルを 保護する仕組みがあります。この例では、/etc/fstabを更新する代わりに/etc/._cfg0000_fstab という ファイルが作成されます(数字の部分はetc-updateのサボり具合によって変わります;-))。

ところで、emergeはどのようにして特別扱いするファイルを決めているのでしょうか。 /etc/make.globalsを見てください。CONFIG_PROTECTという変数が定義されています。 この変数に定義されたディレクトリ(サブディレクトリを含む)にあるファイルは 保護の対象となり、emergeが書き換えることはありません。

etc-update の動作

emergeは /etc にあるファイルを上書きしないということはわかりましたが、ではそのまま 放置してもいいのでしょうか? 無論、放置すべきではありません。ユーザが自分の責任で 更新しなければなりません。

では、どうすればいいでしょうか? 実に簡単です。._cfgで始まるファイルを見つけ出し、 現在あるファイルと見比べて、適当にファイルを更新します。それがすんだら._cfgで 始まるファイルは削除してしまいましょう。先ほどのfstabの例なら、._cfg0000_fstabと/etc/fstab を見比べながら /etc/fstab を更新し、._cfg0000_fstabを削除するのです。

しかし、このようにして更新しなければならないファイルが増えてくると、手間も増大してきます。 差分を確認しながら更新するためのツールが欲しいという声に応えるように、etc-updateが 登場しました。

このツールを使うと、対話式に更新するファイルを選択し、差分を確認したり マージしたりという操作を行うことができます。これによって随分作業を簡略化できます。

しかし、注意してください。etc-updateは先に述べた作業を補助するツールに過ぎません。 設定ファイルを更新するのはあなたです!! 不安ならバックアップを取ってから作業する、 これ基本です。

どんな時に使うの?

emergeしたあと、このような表示が出ることがあります。

* IMPORTANT: 2 config files in /etc need updating.
* Type emerge --help config to learn how to update config files.

これを見て、emerge --help config を読んだ人はもうこのテキストを読む必要はありません ;-P

このメッセージは、/etc に更新が必要なファイルが2つある、ということを意味しています。 ._cfgで始まるファイルが /etc に2つあるということです。このような場合こそ etc-update の 出番です。

どうやって使うの?

root権限で etc-update コマンドを実行します。

# /usr/sbin/etc-update
1) /etc/fstab
/etc/._cfg0000_fstab
2) /etc/make.conf
/etc/._cfg0000_make.conf
Please select a file to edit by entering the corresponding number.
              (-1 to exit) (-3 to auto merge all remaining files)
                           (-5 to auto-merge AND not use 'mv -i'):
  • -1 etc-updateを終了
  • -3 全てのファイルを問い合わせしながら上書き
  • -5 全てのファイルを問い合わせなしで上書き ファイルの前についている番号(1もしくは2)を入力すると、そのファイルの 更新ができます。
--- /etc/fstab
+++ /etc/._cfg0000_fstab
(ここに差分が表示される)
End of differences between /etc/fstab and /etc/._cfg0000_fstab
1) Replace original with update
2) Delete update, keeping original as is
3) Interactively merge original with update
4) Show differences again
Please select from the menu above (-1 to ignore this update):
  • 1 ._cfgファイルで旧ファイルを上書きする
  • 2 ._cfgファイルを削除して、旧ファイルをそのまま残す
  • 3 対話式にマージする
  • 4 差分をもう一度表示する
  • -1 前のメニューに戻る

3の場合はどうなるでしょう。

Merging /etc/._cfg0000_fstab and /etc/fstab
foo                              <              ← 旧ファイルにあるが新ファイルにない行
%
                                 > bar          ← 新ファイルにあるが旧ファイルにない行
%
hoge                             | hogehoge     ← 行の内容が変更された
%
  • r 新しいファイルの内容を選択する
  • l 古いファイルの内容を選択する
  • q 作業を中止する

マージの場合、それぞれ違いがある部分で、どのように変更を加えるのかを答えなければなりません。 プロンプト(%)で ? を入力すれば簡単なヘルプがでます。 基本的には、rを入力して右(新)を取るか、lを入力して左(旧)を取るか、です。 これは最初は戸惑うこともあると思いますのでファイルのバックアップを取ってから いろいろ試してみるとよいと思います。

etc-update で vimdiff が使えるって本当?

/etc/etc-update.conf を見ると vimdiff をマージに使うなという注意書きがありますが、実はそんなことはなくて、

merge_command="vim +r%orig -d %merged %new"

と書けば vimdiff でマージすることができます。ただしこれで激しくテストしたわけではないので(いつも sdiff 使ってます)、この設定で問題が出た人は教えてください。

参考文献

etc-update(1), make.conf(5), 'emerge --help config'





PR


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-03-15 (月) 17:01:00 (172d)