2021/07/17(土)debianのexim3で外部メール送信できるようにする
2021/07/17 20:56
現状exim4が動いているのだが、外部にメール送信ができない。
zabbixとかは独自にSMTPサーバが登録できるのでごまかしていたが、
ここ来て流石にサーバ内からメールを投げたいケースが出てきた。
ということで、外部にメール送信できるようにする
基本的に下記の手順通りでよし。
Exim4/外部SMTPサーバー経由でメールを送信したい(Debian) - Void of Knowledge
mailコマンドで送信できることを確認。
echo "test" | mail -s "test title" -r from@example.com to@example.com今度時間あるときに転送周りとcronメールも整理しよう。
2021/07/17(土)WebサーバをHTTPSに対応させる
2021/07/17 19:42
最近はLet's Encryptの証明書発行もかなり簡単にやれるというので、当サイトもついに対応することにした。
基本的には下記のやり方通り。
Debian9 + Apache に"Let's Encrypt"をセットアップしてみた!! : プログラミング Tips
ただし、certbotコマンドについてはサブドメインがあるので、
#certbot certonly --webroot -w /var/www/html -d dt8.jp www.dt8.jpとした。
また、SSLCipherSuiteの設定は息が長くなるよう、
mod_sslで使用するSSLCipherSuiteの設定を詰めてみる '20 - Qiita
に従った。
ローカルからのアクセスでhttps://~が表示されることを確認。
問題なさそうなので、ファイアウォール設定を変更しIPv4 ポート443の外部アクセスを開けた。
/etc/iptables/rules.v4
を編集して、
#netfilter-persistent reloadサーバ入れ替えた際に、かなり雑に作業をしてしまったのでiptablesの管理方法をちゃんと定義できてない。
年末までになんとかしよう。
SSL Server Testで、一応A判定が出ていることを確認。
https://www.ssllabs.com/ssltest/analyze.html?d=www.dt8.jp
さらに証明書更新したら、自動的にサーバを再起動してメールを送る設定にする。
/etc/letsencrypt/renewal-hooks/
に適当なシェルを作成し、
#!/bin/bash /usr/sbin/apache2ctl restart /bin/echo "証明書を更新し、Webサーバを再起動しました。" | /usr/bin/mail -s "証明書更新・Webサーバ再起動通知" -r mailaddress@example.com mailaddress@example.comとか書く。
クリティカルなサービスがないので完全自動で良いし、restartで安全に。
当たり前だが、落とせないサービスならこんな事やってはいけない。
念の為動作テストする。
#certbot renew --force-renewal証明書の期限更新~Webサーバの再起動~メール送信の一連の処理が行われることを確認。
更新制限があるので、何度もテストすのはNG。
あとは、サイト内にhttp://~から書いているところがあるかもしれないので、気づいたら直す。
そもそもリニューアルを予定しているのでちまちまやってく。
半年以上安定したら、mod_rewriteでhttp→httpsに振るようにしたい。
[2021/10/14追記]
上の手順で十分だと思っていたら、3ヶ月後の証明書更新が見事に失敗していた。
/var/log/letsencrypt/letsencrypt.logに出力されたエラー内容は、下記。
certbot.errors.MissingCommandlineFlag: Missing command line flag or config entry for this setting: Select the webroot for dt8.jp: Choices: ['Enter a new webroot', '/var/www/html'] (You can set this with the --webroot-path flag) 2021-10-13 17:06:46,513:ERROR:certbot.renewal:All renewal attempts failed. The following certs could not be renewed: 2021-10-13 17:06:46,514:ERROR:certbot.renewal: /etc/letsencrypt/live/dt8.jp/fullchain.pem (failure)dt8.jpのエントリがないと言われる。
あれ、そうなのか… force-renewalが成功したのはなんでだろう。
/etc/letsencrypt/renewal/dt8.jp.conf
の、
[[webroot_map]]
に、
www.dt8.jp と同じ内容で、dt8.jpの行を追加。
#certbot renew --dry-runしたら通るようになったので次のcronを待って、証明書が更新されることを確認した。
2019/08/18(日)debianをbusterにupgradeしたらzabbixが動かなくなった
2019/08/18 13:02
「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
クライアント: 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_USLangDefault en_US入れないとメッセージが文字化け。
クライアントがFFFTP、WinSCPあたりでも問題なさそう。とりあえずこれで。
[参考]
IEからProFTPdにアクセスするとファイル名が文字化けする - ブログ - ワルブリックス株式会社
あと恒例の文字化けファイルをLinux上でいじる方法。
Linuxでファイルが文字化けした際の対処法 | OXY NOTES
バッドノウハウ的なので追求しない。
2015/06/28(日)jessieで起動しない
2015/06/28 19:14
一部解決、かなり未解決。
段階的に修正していくしかなさそう。
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 追記]initramfs-toolsのバグだか考慮漏れだかに当たっているような気がしている。
自分でカーネル作り直せば確実なのは分かっているが、そもそも管理コストを下げるためにカーネルもdebian標準にしたいというのが方針なので、しばらく標準でのinitrd正常化方策を探すことにする。といってもかなり色々試してはいるので、調べ方変えるか時間に解決してもらうかじゃないとちょっと無理そう。
時間が取れたので、ひたすら人力で調べてみた。
まずupdate-initramfs内で呼び出しているmkinitramfsを直に叩いてみるが、やはりmodulesが抜ける。
#mkinitramfs -o /boot/initrd.img-3.16.0-4-686-pae.new 3.16.0-4-686-paemkinitramfsをたどっていくと、/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
故障したのは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替えたときに、ディスプレイデバイスの指定を修正していなかった。
# 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
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-jadpkgの警告はこれで解消。
で、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
#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
今回は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 restartbcs-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を弄って修正。
[参考]
ぼんぼんブログ - ぼんぼん工房