前回はPlamo Linux 5.
それでは、
無くなったパッケージ
今回のバージョンアップはメンテナンスリリースという位置付けだったので、
前回紹介したように、
それらをざっと調べたところ、
更新された後継パッケージが存在する場合、
設定ファイルの問題
パッケージ管理ツールを利用すれば、
もちろん、
一方、
平成25年11月12日(火)
・etc-5.0 を更新。
- polkituser のホームディレクトリを /home/polkituser に設定。
- libvirt-qemu ユーザ、libvirt、cgred グループを追加。
(plamo/00_base/etc-5.0-noarch-P19.txz)
# TODO: PYTHONPATH 環境変数の見直し。
このような場合、
前回、
アップデート用スクリプト
上述の問題は、
そこで、
具体的には、
このスクリプトでどのような処理をしているかは、
1 #!/bin/sh
2
3 chk=`whoami | grep root`
4 if [ "$chk.x" = ".x" ]; then
5 echo "This command should be used by root or use sudo"
6 exit
7 fi
パッケージを更新するにはルート権限が必要となるので、
15 # これらのパッケージは設定ファイルのみの修正なので、updatepkgでパッケージを
16 # 入れ替えるのではなく、必要な修正のみを適用する
17 #
18 # aaa_base-5.0-noarch-P2.txz sysvinit-2.88dsf-i586-P10.txz
19 # etc-5.0-noarch-P21.txz network_configs-0.1-noarch-P3.txz
20 # hdsetup-5.2-i586-P1.txz shadow-4.1.4.2-x86-P13.txz
21
22 # for aaa_base-5.0_64-noarch-P2.txz
23 echo "updating for aaa_base-5.0-noarch-P2.txz"
24
25 if [ ! -d /run ]; then
26 mkdir /run
27 fi
28 chmod 0755 /run
29
このあたりからインストール済みの設定ファイル等の修正が始まります。まず最初に取りあげたのはPlamo Linuxのディレクトリ構成などを提供するaaa_
30 # for etc-5.0-noarch-P21.txz
31 # update /etc/group
32 echo "updating for etc-5.0_64-noarch-P29.txz"
33 echo "update /etc/group"
34
35 chk=`grep libvirt /etc/group`
36 if [ "$chk.x" == ".x" ]; then
37 groupadd -g 47 libvirt
38 fi
39
40 chk=`grep cgred /etc/group`
41 if [ "$chk.x" == ".x" ]; then
42 groupadd -g 48 cgred
43 fi
44
45 # update /etc/passwd
46 echo "update /etc/passwd"
47
48 sed -i -e 's|polkituser:x:21:21:PolicyKit daemon:/dev/null:/bin/true|polkituser:x:21:21:PolicyKit daemon:/home/polkituser:/bin/true|' /etc/passwd
49
50 chk=`grep libvirt-qemu /etc/passwd`
51 if [ "$chk.x" == ".x" ]; then
52 useradd -u50 -g36 -d /var/lib/libvirt -s /bin/false libvirt
53 fi
54
次はetcパッケージの変更点の反映です。etcパッケージは/etcディレクトリに展開される各種設定ファイルを提供しており、
合わせて、
55 echo "update /etc/template/Source/.xinitrc"
56 cat << "EOF" | patch -p0
57 --- /etc/template/Source/.xinitrc 2011-12-19 17:53:28.000000000 +0900
58 +++ /etc/template/Source/.xinitrc 2013-11-22 08:56:00.000000000 +0900
59 @@ -14,7 +14,7 @@
60 #WM="twm"
61 WM="xfce"
62 #WM="kde"
63 -#WM="gnome"
64 +#WM="mate"
65
66 unset TERM
...
この部分ではetcパッケージが提供するユーザ用各種設定ファイルのテンプレートを、
実のところ、
125 # hdsetup-5.2
126 echo "update /usr/lib/setup/Plamo-5.2"
127
128 if [ -f /usr/lib/setup/Plamo-5.1 ]; then
129 mv /usr/lib/setup/Plamo-5.{1,2}
130 fi
131
hdsetupパッケージはパッケージ管理ツールとPlamo Linuxのバージョンを示すファイルを提供しています。Plamo-5.
132 # shadow
133 echo "updating for shadow-4.1.4.2-i586-P13.txz"
134
135 cat <<"EOF" | patch -p0
136 --- /usr/sbin/adduser 2011-12-12 09:00:00.000000000 +0900
137 +++ /usr/sbin/adduser 2013-11-23 09:00:00.000000000 +0900
138 @@ -11,7 +11,7 @@
139 # Time-stamp: <2011-12-07 00:22:20 kojima>
140
141 DEFAULT_GROUP=users
142 -DEFAULT_AGID=audio,dialout,video,cdrom,pulse,pulse-access,mlocate
...
shadowパッケージは/usr/
231 # sysvinit
232 echo "updating for sysvinit-2.88dsf-i586-P10.txz"
233
234 cat <<"EOF" | patch -p0
235 diff -upr w1/etc/rc.d/rc.M w2/etc/rc.d/rc.M
236 --- /etc/rc.d/rc.M 2013-04-06 12:38:03.000000000 +0900
237 +++ /etc/rc.d/rc.M 2013-12-21 14:38:37.000000000 +0900
238 @@ -70,10 +70,13 @@ if [ -d /proc/asound ] ; then
239 if look_mod snd-seq-oss ; then
240 modprobe snd-seq-oss
241 fi
242 - if [ -x /usr/sbin/alsactl -a -f /etc/asound.state ] ; then
243 - alsactl restore
244 - else
...
sysvinitパッケージは、
503 # おまけ ;-P
504 # /var/log/initscripts.log/sysvinit
505 #
506 vers=`ls /usr/lib/setup/Plamo* | tail -n1 | cut -d"/" -f5`
507 echo "%s %r ($vers) %v" > /etc/motd.in
508
これは
510 # 以下のパッケージはバイナリも変更されているのでパッケージを更新する
511 #
512 # btrfs_progs-3.12-i586-P1.txz kmod-13-i586-P3.txz nvi-1.79-i586-P4.txz
513 # bzip2-1.0.6-i586-P3.txz less-382-i586-P2.txz openssh-6.4p1-i586-P1.txz
514 # dhcp-4.2.5_P1-i586-P2.txz libtirpc-0.2.3-i586-P2.txz openssl-1.0.1e-i586-P2.txz
515 # glibc-2.16.0-i586-P6.txz linux_firmware-201311-noarch-P1.txz sudo-1.8.8-i586-P1.txz
516 # iproute2-3.12.0-i586-P1.txz lsb_release-1.4-noarch-P1.txz
517
518 for i in *txz ; do
519 updatepkg -f $i
520 done
521
522 # lzo は 04_xapps から移動してきたが、バージョン等は変ってないのでイジらない。
パッケージの更新だけでは修正することが難しい処理が終われば後は簡単です。00_
ここで取りあげた00_
たとえば02_
1 #!/bin/sh
2
3 chk=`whoami | grep root`
4 if [ "$chk.x" = ".x" ]; then
5 echo "This command should be used by root or use sudo"
6 exit
7 fi
8
9 # jpegパッケージ(jpeg-8d-{x86_64,i586}-P1.txz)は libjpeg_turbo で replace された
10
11 removepkg jpeg
12
13 # 他のパッケージはそのまま更新すればよさそう
14
15 for i in *.txz ; do
16 updatepkg -f $i
17 done
32ビット用、
実のところ、
本来、
このあたりのバランスをどうとるかは悩ましい問題ではあるものの、