2019/08/18(日)debianをbusterにupgradeしたらzabbixが動かなくなった

2019/08/18 13:02 PC(Linux)
debianを10(buster)にアップグレードしたところ、zabbixアクセス時に、
「DB type "MYSQL" is not supported by current setup.」
と出て、アクセスできなかった問題。

PostgreSQLを使えと書いてあるように見えるが、いわゆるエラーメッセージ誤り。
Apacheに読ませるPHPのバージョン違いが原因らしい。

Error - DB type "MYSQL" is not supported by current setup. - ZABBIX Forums

debian busterのPHPは7.3だったので読み替えて、自分はこれ↓で復旧。

相変わらずsudoは省略してあります。

# cd /etc/apache2/mods-enabled/
# mv php7.0.conf php7.0.conf.disabled
# mv php7.0.load php7.0.load.disabled
# ln -s ../mods-available/php7.3.conf php7.3.conf
# ln -s ../mods-available/php7.3.load php7.3.load
# /usr/sbin/apache2ctl restart

おっと、PHPが上がるたびにこれやり直すのかな?

2018/12/08(土)Windowsエクスプローラで文字化けしないFTPサーバ

2018/12/08 23:55 PC(Linux)
■前提
クライアント: Windows10
サーバ: Linux

当初vsftpdでFTPサーバを運用していたが、Windowsからアップロードした際に日本語ファイル名が文字化けしたと連絡が来た。自分でも確認してみたが、確かにWindowsのエクスプローラからアップロードすると文字化けする。

文字化けの挙動が不可解。全文字化けではなさそう。
でもダメ文字ではなく、特定の文字位置が化けているような…

今回時間がなかったので細かい調査は実施せず、とりあえず解消方法だけ模索した。

原因として一番怪しいのは、Windowsの下記仕様変更だ。

Winows10でのFTPコマンド実行時の振る舞いについて

FTP接続の頭で、
OPTS UTF8 ON
する。その事自体は問題ない。
のだが、この後の「Windows側でファイル名をUTF-8にエンコード」のときにバグって化けてるとしか思えない。
つまり、OPTSが通ってしまうとUTF-8転送になってバグルートに落ちるので、OPTSを拒否させた上でSJISで転送してもらわないといけない。

vsftpdだとOPTSを無視することはできるが、クライアントとサーバで文字コードを変換させる設定が見つからなかった。

変換無しで考えた場合……
サーバ側UTF-8ファイル名だとWindowsからだと文字化けしていそう。
サーバ側SJISファイル名だと多分UTF-8解釈させると思うので、ちゃんとしたFTPクライアントから文字化けしていそう。

仕方ないので、vsftpdからproftpdに切り替えた。
proftpdにはエンコーディングをサーバ・クライアントで変換する設定がある。
proftpd.confに下記設定で、とりあえずWindowsエクスプローラからのFTPで文字化けがなくなった。
UseEncoding UTF-8 CP932 strict
LangDefault en_US
LangDefault en_US入れないとメッセージが文字化け。
クライアントがFFFTP、WinSCPあたりでも問題なさそう。とりあえずこれで。

[参考]
IEからProFTPdにアクセスするとファイル名が文字化けする - ブログ - ワルブリックス株式会社

あと恒例の文字化けファイルをLinux上でいじる方法。
Linuxでファイルが文字化けした際の対処法 | OXY NOTES

バッドノウハウ的なので追求しない。

2015/06/28(日)jessieで起動しない

2015/06/28 19:14 PC(Linux)
jessieにアップグレードした際に起動周りで色々問題が起きたのでメモ。

一部解決、かなり未解決。

段階的に修正していくしかなさそう。

grub起動時、コンソールにFile not foundが3回出力される

→解決
#grub-install /dev/sda
#update-grub 
で改善した(他に色々作業していたので、別の処置で改善した可能性も)

systemdで起動しない

→解決

jessieではgrubにsystemdとsysvinitが両方登録される。
wheezy時代には起動していたカーネルのsystemd版は起動しない。sysvinit版だと起動する。

jessieからinit周りがsystemdに切り替わるため、init.dでカスタマイズしたサービスが動かないとは聞いていたが起動しないとは想定外。

原因はfstabにあった。
どうやら、systemdではfstabの記述を厳密に解釈するらしい。usb外付けで繋いでいたドライブ(今は繋いでいない)のoptionsが
defaults
になっていた。
user,noauto
に修正して改善。

3.16.0-4-686-paeで起動しない

未解決解決

wheezyで入っていた3.2.0-4-686-paeは起動するのだが、3.16.0-4-686-paeで起動しない。
gave up waiting for root device 

alert /dev/disk/by-uuid/~~ does not exist
が出る。
busyboxのシェルであれこれ試してみると、
・/dev/disk/by-uuid/が無い
・そもそも/dev/sda1が無い
・cat /proc/modules は空

全くドライバが読めていないっぽい。

起動するカーネル(3.2.0-4-686-pae)のinitrdは12MB
起動しないカーネル(3.16.0-4-686-pae)のinitrdは4MB

lsinitramfsでのぞくと、3.16の方は/lib/modules/3.16.0-4-686-pae/kernel配下がまるごと無い

update-initramfs -uで症状変わらず
起動オプションrootdelay=90等で症状変わらず
depmod -a 3.16.0-4-686-paeでも症状変わらず
ここで今回の調査は断念。

initramfs-toolsのバグだか考慮漏れだかに当たっているような気がしている。

自分でカーネル作り直せば確実なのは分かっているが、そもそも管理コストを下げるためにカーネルもdebian標準にしたいというのが方針なので、しばらく標準でのinitrd正常化方策を探すことにする。といってもかなり色々試してはいるので、調べ方変えるか時間に解決してもらうかじゃないとちょっと無理そう。
[2015/07/28 追記]
時間が取れたので、ひたすら人力で調べてみた。

まずupdate-initramfs内で呼び出しているmkinitramfsを直に叩いてみるが、やはりmodulesが抜ける。
#mkinitramfs -o /boot/initrd.img-3.16.0-4-686-pae.new 3.16.0-4-686-pae
mkinitramfsをたどっていくと、/usr/share/initramfs-tools/hook-functions内のmanual_add_modulesでmodprobeの結果を元にループを回している箇所がある。ここが3.2では動いているのに3.16では動いていない。はて。

スクリプト内で使用しているコマンドをログインシェルで叩いてみるが、いずれのバージョンも問題がない。
#modprobe --all --set-version=3.2.0-4-686-pae --ignore-install --quiet --show-depends eql
insmod /lib/modules/3.2.0-4-686-pae/kernel/drivers/net/eql.ko

#modprobe --all --set-version=3.16.0-4-686-pae --ignore-install --quiet --show-depends eql
insmod /lib/modules/3.16.0-4-686-pae/kernel/drivers/net/eql.ko
とすると、mkinitfamfs内の環境変数が原因か。

で、調べたところ、
#export PATH=/usr/bin:/sbin:/bin
で動きが変わることが分かった。げーっ。実行ファイルゴースト問題だー。

結局のところ、modprobeもdepmodも/sbinと/usr/local/sbinの両方にありログインシェルでは/usr/local/sbinを見ていた。
/usr/local/sbinの方のタイムスタンプは2004年、うぉう。

あとは推測だが、aptでカーネルイメージを入れた際に/usr/local/sbinの古いdepmodを呼んでしまうようだ。古いdepmodは、/lib/modules/<< version >>/modules.dep.binを生成しない。同じく/usr/local/sbinの古いmodprobeはこれで動くのだが、新しい/sbinのmodprobeは
#/sbin/modprobe --all --set-version=3.16.0-4-686-pae --ignore-install --show-depends eql

modprobe: ERROR: ../libkmod/libkmod.c:557 kmod_search_moddep() could not open moddep file '/lib/modules/3.16.0-4-686-pae/modules.dep.bin'
となってしまう(quiet無しだとエラーが出る。ありだと何も出ない)。

3.2は何かのタイミングで新しいmodprobeを発火するタイミングがあった模様で、modules.dep.binがいた。そんな状態で良く動いてたな。

ということで、depmodもmodprobeも新しい方を使ってやればよい。
#/sbin/depmod -v 3.16.0-4-686-pae
これで
/lib/modules/3.16.0-4-686-pae/modules.dep.bin
ができた。

あとはこれでinitrdを作ってやる。
#update-initramfs -u -k 3.16.0-4-686-pae
丸々と太った健康そうな16MBのinitrdができた。

うーん、やっぱりwoodyのアップグレード&アップグレードじゃ限界あるなあ。

grub上でメニューいじったときにunaligned pointer 0x8が出る

→未解決

grub起動時にオプションをeで変えると、
unaligned pointer 0x8
が出る。

GRUBのバグかなあ。

デフォルト起動カーネル切り替え

ということで、しばらくwheezy時代のsysvinitカーネルを使用する。systemdにするためには洗い出しが必要なので3.16が動くようになってからにしたい。

/etc/default/grub
GRUB_DEFAULT="Debian GNU/Linux, with Linux 3.2.0-4-686-pae (sysvinit)"
最初上記形式で書いたが、update-grubしたらwarningが出たので、
/etc/default/grub
GRUB_DEFAULT="gnulinux-advanced-~~>gnulinux-3.2.0-4-686-pae-init-sysvinit-~~"
に変更して、update-grub。

これでとりあえず再起動しても特に操作せずに起動するようになった。
うーん、サーバつぶした方がいいんだろうか。
こういうドハマリは維持意欲を削ぐ。

このサーバはwoodyからの10年選手なので64bit化も含め再インストール時期ではあるのだが……

2014/10/19(日)サーバ交換

2014/10/19 25:26 PC(Linux)
サーバが故障したので交換したという話。

故障したのはpanasonic CF-T8EC6AAS。

このシリーズはどうもファンが弱いらしい。中古で買ったものなので耐久性がどうとか言いづらいのだが、うちのは使用しはじめてから1年程度でファンが強烈な異音を発するようになってしまった。ネットにもファン故障の報告多数。

その前に使っていたnx6110は6年稼働していたので、ちょっとがっかり。

nx6110の故障箇所についてはメモって無くておぼろげなのだが、ファンか熱暴走を疑う症状だったように思う。

さて、とりあえず入れ替えなければいけないので秋葉原でノートPCを調達してきた。
今回はPC-VY14A/C-7のOS無しが比較的安く手に入ったのでそれで。

本当はHP 2510pか2530pが欲しかったのだが、予算オーバー気味なのと選べるほど弾がなかったので断念。この2機種1.8インチ HDDのモデルもあって、商品名だけではなかなか判別が付かない。HDDはある程度入れ替えできた方がいいので2.5インチモデルが欲しい。現物見ないで買うと失敗しそうだったので秋葉原に出向いてみたのだが残念だ。

入れ替えは、以下のような手順で実施。
[1]
CF-T8のHDDを取り外し、VY14AにUSBで接続してMiniTool Partition Wizardでディスクコピー。

このコピー、120GBにもかかわらず10時間程度かかった。USB接続が遅かったのか、MiniTool側の遅さなのか判断付かないが、VY14Aも開腹してHDDを取り出した上でドライブコピーした方が良かったかもしれない。

[2]
CF-T8を起動してみたら何となく想像してたけどMBR破損("j"とだけ表示されて止まる)。debianのインストールディスクをrescue modeで起動して/dev/sbaにgrubをインストール。

[3]
これで完了かと思ったらネットワークがつながらない。ifconfigしてもeth0が無い。
dmesg見てると、こんなのがある。
udev: renamed network interface eth0 to eth1
これが原因か。

NICのデバイス名(eth0とか)が変わったら? - Practice of Programming
ネットワ-クの基本設定などを確認(Linux版)

を参考に、/etc/udev/rules.d/70-persistent-net.rulesの旧NIC MACアドレスとehe0の紐付けをコメントアウトして再起動したところeth0が復帰した。

修正前の場合でもeth1は居て欲しい気がするのだが、interface周りを調べる時間がない。今回はこれで終わりにする。

作業中に気づいたが、このNICはBroadcom製だった。intelが良かったのだが、致し方なし。

VY14Aについては今のところ大きな不満はないが、HDD(Fujitsu MHZ2120BH)が結構鳴くので安定稼働してきたら結局入れ替えすることになるかも…

2014/06/30(月)debian X周りのメモ

2014/06/30 16:36 PC(Linux)
久々にX立ち上げようとしたら動かなくなっていた。
ちょっと作業したのでそのメモ。

[ディスプレイデバイスずれ]
PC替えたときに、ディスプレイデバイスの指定を修正していなかった。
# lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)

xorg.confを編集。
> diff /etc/X11/xorg.conf.20140630 /etc/X11/xorg.conf
73c73
<       BusID           "PCI:0:1:0"
---
>       BusID           "PCI:0:2:0"
[GNOME周り]
wheezyでデフォルトX環境が変わったせいか、startx後に"Failed to load session "gnome""が出る。

とりあえず、gnome-session-fallbackを入れればいいと言うので、

# aptitude install gnome-session-fallback

で、とりあえず起動するようにはなった。

その他、sshのX11 forward関係のオプションいじって、Xming+putty経由でX画面出るようにした。

いつも通り、sudo関係は適宜読み換えで。

2013/07/17(水)apt周りあれこれ(続き)

2013/07/17 11:50 PC(Linux)
aptitude upgradeは通るようになったけど、警告がバンバン出る。どうやらapt周りの警告基準が変わった模様。
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。24687 行目付近、パッケージ 'am-utils':
 `amd' を参照する `Replaces' フィールド: バージョンにエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。24690 行目付近、パッケージ 'am-utils':
 `amd' を参照する `Conflicts' フィールド: バージョンにエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。58611 行目付近、パッケージ 'root-tail':
 `rt' を参照する `Conflicts' フィールド: バージョンにエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。73297 行目付近、パッケージ 'wmnetselect':
 `mozilla' を参照する `Suggests' フィールド: バージョンにエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。77093 行目付近、パッケージ 'e3':
 バージョン文字列 'e3-2.30-1' にエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。84479 行目付近、パッケージ 'tac-plus':
 バージョン文字列 'F4.0.4.alpha-9.1' にエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。139337 行目付近、パッケージ 'epic4-script-thirdeye':
 `epic4' を参照する `Depends' フィールド: バージョンにエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。165107 行目付近、パッケージ 'cnews':
 バージョン文字列 'cr.g7-31' にエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。208613 行目付近、パッケージ 'request-tracker1':
 `rt' を参照する `Conflicts' フィールド: バージョンにエラー: バージョン番号が数字から始まっていません
dpkg: 警告: ファイル '/var/lib/dpkg/available' を解析。221822 行目付近、パッケージ 'epic4':
 `epic4-help' を参照する `Conflicts' フィールド: バージョンにエラー: バージョン番号が数字から始まっていません
(データベースを読み込んでいます ...
はい、available絡みですね。古いリポジトリ情報が残ってるんでしょう。
# dpkg --clear-avail
これで解消。
dpkg: 警告: ファイル '/var/lib/dpkg/status' を解析。1703 行目付近、パッケージ 'doc-debian-ja':
 architecture が見つかりません
こっちはなんだろ。apt-show-versionsで見てみる。
# apt-show-versions -a doc-debian-ja
doc-debian-ja 2.2.2.2 install ok installed
No stable version
No stable-updates version
No testing version
No unstable version
doc-debian-ja 2.2.2.2 installed: No available version in archive
うーん、現バージョンなしdocということで消す。
#dpkg -r doc-debian-ja
dpkgの警告はこれで解消。

で、insserv: warning: script 'hogehoge' missing LSB tags and overrides
がたくさん出るけどこれはどうしようもない気がするので保留。起動スクリプトに決まった書き方が出来たんだろうけどうーん全部直すのはことだぞ。

あと、qmailの依存関係を暇なときに解消することにする。

こっから愚痴だけど、debianは保守的なのが売りなのにubuntuからのフィードバックで更新が加速してしまった。wheezy前後でかなりパッケージシステムに改訂が入った模様。

整備されていくのはよいことだが、変わったものが短期間でまた変わらないか危惧はしている。警告基準が変わるのも厄介。update-rc.dもinsservになってしまったし、うーんこれで綺麗になっているなら良いのだが継続的に変わるようだといやだな。

まあ情報仕入れてない私が悪いのだ。元々は勉強用だった自宅鯖。その役割は十分に果たしたし、便利に使ってはいるが今の自分には管理コストが高過ぎる気がする。自宅鯖はどこかで諦めなければいけないかも知れない。とりあえず今回の一連の作業でaptがあまりに遅かったため、サーバハードのアップグレードは考え中。

サービス絞ってwinサーバにしちゃうってのはアリでしょうねえ……

[2013/11/13追記]
qmail周りの依存関係を整理して入れ直した。

ごたごたしていて細かいメモを紛失した。
ほぼ以下の通り。
debian/wheezy で qmail を入れる - T-Saitohの仕事日記

現状メールサーバは送信だけ出来ればいいやの世界になってきたので、Postfixへの切り替えを考え中。

2013/07/16(火)apt周りあれこれ

2013/07/16 27:07 PC(Linux)
#aptitude upgrade
しようとしたら、依存関係が色々ぶつかって通らなくなってた問題。
(いつも通り、先頭sudoは適宜読み換えて下さい)

wheezyにしたときにちゃんと整備してなかったのが今になって出てきたっぽい。

とりあえず、
#aptitude upgrade --full-resolver
して、お勧めの方法でやってしまう。
 slang1:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
 gnome-users-guide-es:none : 依存: scrollkeeper:none[仮想パッケージです]
 libpcap0:none : 依存: libc6:none (>= 2.2.3-7)[仮想パッケージです]
 libperl5.6:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
 ide-smart:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
 libguile9 : 依存: libreadline4 (>= 4.3-1)[仮想パッケージです]
 perl-5.6:none : 依存: perl:none (>= 5.6.0-20)[仮想パッケージです]
 libident:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
 nas-lib:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
 libcap1:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
 webrick:none : 依存: libruby:none (>= 1.6.5)[仮想パッケージです]
 libpisock4:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
 libg++27 : 依存: libc5 (>= 5.4.7-6)[仮想パッケージです]
 mc-common:none : 依存: perl:none[仮想パッケージです]
 python2.1 : 依存: libreadline4 (>= 4.3-1)[仮想パッケージです]
 slang1a-utf8:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
 libdns5:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
 aalib1 : 依存: slang1 (> 1.4.9dbs-4)[仮想パッケージです]
 kjc:none : 依存: java-common:none[仮想パッケージです]
 watanabe-vfont:none : 依存: vflib2:none (>= 2.25.1-4.1)[仮想パッケージです] または
                             vflib3:none (>= 3.6.8-1.1)[仮想パッケージです]
 ipchains:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
                 依存: debconf:none[仮想パッケージです]
 gnome-users-guide:none : 依存: scrollkeeper:none[仮想パッケージです]
 libdb2:none : 先行依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
 libdb2-util:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
 libisc4:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
 libjasper-1.701-1:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
                          依存: libjpeg62:none[仮想パッケージです]
 libdb4.0:none : 依存: libc6:none (>= 2.3.2-1)[仮想パッケージです]
 libjcode-perl:none : 依存: perl5:none[仮想パッケージです]
 ipmasqadm:none : 依存: libc6:none (>= 2.2.2-2)[仮想パッケージです]
 libupnpsdk1:none : 依存: e2fsprogs:none (>= 1.27-2)[仮想パッケージです]
                    依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
                    依存: libuuid1:none[仮想パッケージです]
 libmm11:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
 libmm13:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
 perl-5.6-base:none : 依存: perl-base:none (>= 5.6.0-20)[仮想パッケージです]
 linuxigd:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
                 依存: libstdc++2.10-glibc2.2:none (>= 1:2.95.4-0.010810)[仮想パッケージです]
 libnkf-ruby:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
                    依存: libruby:none (>= 1.6.7-3woody5)[仮想パッケージです]
 libnewt0:none : 依存: libc6:none (>= 2.2.4-4)[仮想パッケージです]
 libreadline4:none : 依存: libc6:none (>= 2.3.2.ds1-4)[仮想パッケージです]
                     依存: libncurses5:none (>= 5.4-1)[仮想パッケージです]
 ldso:none : 依存: libc6:none (>= 2.1.94)[仮想パッケージです]
以下のアクションでこれらの依存関係の問題は解決されます:

      以下のパッケージを削除する:
1)      aalib1
2)      gnome-users-guide:none
3)      gnome-users-guide-es:none
4)      ide-smart:none
5)      ipchains:none
6)      ipmasqadm:none
7)      kjc:none
8)      ldso:none
9)      libc5:none
10)     libcap1:none
11)     libdb2:none
12)     libdb2-util:none
13)     libdb4.0:none
14)     libdns5:none
15)     libg++27
16)     libguile9
17)     libident:none
18)     libisc4:none
19)     libjasper-1.701-1:none
20)     libjcode-perl:none
21)     libmm11:none
22)     libmm13:none
23)     libnewt0:none
24)     libnkf-ruby:none
25)     libpcap0:none
26)     libperl5.6:none
27)     libpisock4:none
28)     libreadline4:none
29)     libupnpsdk1:none
30)     linuxigd:none
31)     mc-common:none
32)     nas-lib:none
33)     perl-5.6:none
34)     perl-5.6-base:none
35)     python2.1
36)     slang1:none
37)     slang1a-utf8:none
38)     watanabe-vfont:none
39)     webrick:none



この解決方法を受け入れますか? [Y/n/q/?]
受け入れた。うーん、noneはパッケージ消失だと思うのだがlibc6絡みで消えてる奴はなんなのだ。

で、linuxigd(upnpdを提供してるパッケージ)だけ消えてくれない。
Stopping linuxigd: upnpd invoke-rc.d: initscript linuxigd, action "stop" failed.
Starting linuxigd: upnpd/usr/bin/upnpd: error while loading shared libraries: libupnp.so.1: cannot open shared object file: No such file or directory invoke-rc.d: initscript linuxigd, action "start" failed.
dpkg: クリーンアップ中にエラーが発生しました:
 サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 127 を返しました
処理中にエラーが発生しました:
 linuxigd
とりあえずupnpdは今使ってなかったと思うので、何とかして消す。

インストール・アンインストールのプリ・ポストプロセス周りで問題が出ている模様。

/var/lib/dpkg/info/にここらのスクリプトが集まっているので中身を見る。
$cat /var/lib/dpkg/info/linuxigd.prerm

#!/bin/sh
set -e
# Automatically added by dh_installinit
if [ -x "/etc/init.d/linuxigd" ]; then
        if [ -x /usr/sbin/invoke-rc.d ] ; then
                invoke-rc.d linuxigd stop
        else
                /etc/init.d/linuxigd stop
        fi
fi
# End automatically added section
こいつは止めてるだけだな。

で、結論から言うととりあえず手動で止めて、このスクリプト消してしまうのが手っ取り早いと思う。
#mv /var/lib/dpkg/info/linuxigd.prerm /var/lib/dpkg/info/linuxigd.prerm.orig
プリ部分はこれでOK。ポスト部分はメモってなかったが同様の方法で問題なかったと思う。

これで晴れて、
#dpkg -r linuxigd
が通った。

乱暴だが、そもそもパッケージの作りがおかしいので仕方ない。

2013/05/08(水)libccid VerUpに伴うB-CASカード周りの設定変更

2013/05/08 24:56 PC(Linux)
自宅サーバ(debian)をsqueeze -> wheezyにしたらちょいちょい動かなくなったものがあったので、それ関連の記事。

今回はpcscd, bcs-perl 周りの話。

wheezyにして以降、pcsc_scanしてもカードが出てこない。

原因は、libccidのバージョンが変わった所為でカードリーダを認識しなくなったからのようだ。

[参考]
Linux/テレビ関連/libccid - PukiWiki Plus!

とりあえず、libccid_Info.plistにエントリを追加してpcscdを再起動すれば良い。
$diff /etc/libccid_Info.plist /etc/libccid_Info.plist.orig
328d327
<               <string>0x04E6</string>
554d552
<               <string>0x511A</string>
780d777
<               <string>SCM SCR 3310 NTTCom</string>

#/etc/init.d/pcscd restart
bcs-perl側の名前が"SCM SCR 3310 NTTCom"なのでそのまま入れてやる。

pcsc_scanしてカードの検出、bcs-perl listしてカードの認識が出来てることを確認すること。pcsc_scanがだめならpcsc側のリストをチェック、bcs-perl listがダメならbcs-perl.pl内のカード名($selected_reader)が怪しい。

パッケージ作り直す、unstableにするという方法もあるがうーん、依存の整理とか考えたくない……

[2013/10/11 追記]
後日、カードリーダを指し直したらまたbcs-perl listで取れる名前が変わってしまった。うーん、カードリーダ同じ型番でも取れるものが違うのか、ドライバ周りで細かく変わるものなのか……

bcs-perlを弄って修正。

[参考]
ぼんぼんブログ - ぼんぼん工房

2011/12/01(木)awstatsの更新がおかしい

2011/12/01 22:13 PC(Linux)
メールをよみがえらせてみたら、こんなメッセージが山ほど来ていた。
Create/Update database for config "/etc/awstats/awstats.conf" by AWStats version 6.95 (build 1.943)
From data in log file "/var/log/apache/access.log"...
Error: Couldn't open server log file "/var/log/apache/access.log" : Permission denied
Setup ('/etc/awstats/awstats.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).
うへえ、awstatsの更新が死んでる。……あれでもおかしい、awstats自体はちゃんと最新のデータを取ってきてる。しかしメールは続々来る。なんだこれはと調べてみたら、/etc/cron.dと/etc/cron.hourlyにそれぞれawstatsのスクリプトがあった…… orz。

片方が成功、片方が失敗して正常な更新とエラーメール(受け取れてなかった)を延々続けていたのか。なんだそれ!

awstatsは確か当初ソースから入れたので残っていたのかもしれない。パッケージに切り替えたときに旧cron設定を消し忘れたのだろう。

ということで、
$ dpkg -L awstats
で調べつつ、
cron.hourlyの古いスクリプトを消し、パッケージから入っていると思われるcron.d側を残した。

この状態でまだエラーメールが来るので、/etc/cron.d/awstats中のユーザ指定をaccess.logのユーザに書き換え。

更新成功し、エラーメールもなくなった。

2011/12/01(木)メールがローカルに配信されない

2011/12/01 14:01 PC(Linux)
しばらくほったらかしにしてたメールを久々に触ってみようと思ったら、何かとんでもないことになっていた。
# qmail-qstat
messages in queue: 54682
messages in queue but not yet preprocessed: 54680
最初はすわ不正中継爆弾? とか思ったのだが、
# cat /var/log/mail.log
1218742:Dec  1 10:19:04 debian qmail: 1322702344.535144 warning: unable to create local/8/1656100
...
おおう、これはローカルへの配信ができずに延々ループしてるっぽい。そしてmail.logのサイズがどんどんふくらんでいる。そこで、/var/spool/qmail/local/をのぞいてみたら、

空っぽ!

え、分割ディレクトリはどこへ行ったの?

分割ディレクトリを自動的に作る機能はなさそう…… しかし、分割ディレクトリがないのが原因っぽい。

ということで、分割ディレクトリを標準の23作成する。
# mkdir 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
して、chmod,chown,chgrpしたところ…… 動き出した。
ログをチェックして、warningが消えたことを確認

えー、なんだこれ。手で消した記憶はないので、update時に何かが消してしまったのかqmailの仕様が変わったのか。

うーん原因までは追えなかった。

一応解決。
OK キャンセル 確認 その他