So-net無料ブログ作成
検索選択

xawtvのウィンドウサイズを変更すると画像が表示されなくなる [Debian]

[ソフトウェアのバージョン]
xawtv 3.103-3+b1
linux-image-3.16.0-4-686-pae 3.16.39-1+deb8u2

1. 発生事象


Debian 8 において、xawtv のウィンドウサイズを変更すると画像が表示されなくなる。

・xawtv を再起動すると回復する。
・Debian 7 (linux-image-3.2.0-4-686-pae 3.2.86-1)では発生しない。
・xawtv 3.102-3 (Debian 7 のパッケージ)に変更しても状況は変わらない。


2. 原因


kernel 3.16.x 上で発生する xawtv のバグである。
(詳細は、備考を参照。)


3. 対処方法


下記の手順を実施する。

(1) 更新するパッケージの入手


ubuntu 16.10 の下記のパッケージをダウンロードする。

fontconfig-config_2.11.94-0ubuntu2_all.deb
libfontconfig1_2.11.94-0ubuntu2_i386.deb
pia_3.103-4_i386.deb
scantv_3.103-4_i386.deb
xawtv-plugins_3.103-4_i386.deb
xawtv_3.103-4_i386.deb


(補足)
・Debian 8 用の更新パッケージはリリースされていない。
・Debian sid よりも ubuntu 16.10 の方が更新するパッケージの数が少ない。
https://pkgs.org/ 等から当該パッケージをダウンロードする。


(2) パッケージの更新

# dpkg -i *.deb


(補足)
更新内容は、下記の通りである。

・fontconfig-config
 2.11.0-6.3+deb8u1 => 2.11.94-0ubuntu2
・libfontconfig1
 2.11.0-6.3+deb8u1 => 2.11.94-0ubuntu2
・pia
 3.103-3+b1 => 3.103-4
・scantv
 3.103-3+b1 => 3.103-4
・xawtv-plugins
 3.103-3+b1 => 3.103-4
・xawtv
 3.103-3+b1 => 3.103-4

[備考]


PostgreSQL 9.4、PHP 5.6への更新後の不具合 [Debian]

Debian 8 において、PostgreSQL、PHP の更新後に不具合が発生するようになってしまった。
詳細は、以下の通りである。

[更新前]
postgresql-9.1 9.1.16-0+deb7u1
php5 5.4.45-0+deb7u4
postgresql-9.1-903.jdbc3.jar

[更新後]
postgresql-9.4 9.4.8-0+deb8u1
php5 5.6.23+dfsg-0+deb8u1
postgresql-9.4.1209.jdbc42.jar

1. 不具合-1


(1) 発生事象


JDBC において、日本語を含むテーブルへの操作でエラーが発生する。

・UTF8 以外の日本語を含む場合に、SQLException が発生する。
・同様の設定でも、PostgreSQL 9.1 ではエラーは発生しない。
・当該データベースの文字コードに関する設定は、下記の通りである。
 (Encoding: SQL_ASCII, Collate: C, Ctype: C)

(補足)
エラーログは、下記の通りである。
(/var/log/postgresql/postgresql-9.4-main.log)

ERROR:  invalid byte sequence for encoding "UTF8": 0xa5


(2) 対処方法


データベースの作成時に、エンコーディングを指定する。

(例) EUC_JP を使用する場合
% createdb -E EUC_JP -T template0 test

2. 不具合-2


(1) 発生事象


PHP において、HTTP ヘッダーでのエンコーディングの設定が効かない。
このため、文字化けするページがある。

・下記の設定が効かない。
 <meta http-equiv="Content-Type" content="text/html; charset=shift_jis">

(補足)
PHP 5.6 での仕様の変更のためである。


(2) 対処方法


PHP の default_charset の設定で対応する。

(a) /etc/php5/apache2/php.ini で設定する。

(例) EUC-JP を使用する場合
default_charset = EUC-JP


(b) ページ毎に変更する場合には、HTTP ヘッダーで設定する。


HTTP ヘッダーに下記のコードを追加する。

(例) Shift_JIS を使用する場合
<?php
  if (PHP_VERSION >= 5.6) {
    ini_set('default_charset', 'Shift_JIS');
  }
?>

3. 備考


PostgreSQL の更新により、ブート時に下記のようなワーニングが出力されなくなった。

postgres (1416): /proc/1416/oom_adj is deprecated, \
please use /proc/1416/oom_score_adj instead.


Debian 8のDNSの逆引きが遅いことへの対応 [Debian]

久しぶりに Debian 8 (Debian 7 からアップグレード) を使用していて、DNS の逆引きが遅くなっていることに気付いたので、元の状態になるように対応を行った。
詳細は、以下の通りである。

1. 発生事象


DNS の逆引きが遅い。

例えば、下記コマンドの実行において、結果が得られるまでの時間が長い。
また、-n オプションを追加すると、通常のレスポンスになる。

・iptables -L
・netstat -r


2. 原因


mDNS (Multicast DNS) のパケットが送信されるためである。

・systemd への移行ににより、停止していた当該サービスが自動起動されていた。


3. 対処方法


下記のいずれかの手順を実施する。

(1) mDNS のアンインストール

# dpkg --purge libnss-mdns


(2) /etc/nsswitch.conf の編集

# diff nsswitch.conf nsswitch.conf.org
11c11
< hosts:          files mdns4_minimal [NOTFOUND=return] dns
---
> hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4


(3) avahi-daemon の無効化

# systemctl stop avahi-daemon.socket
# systemctl disable avahi-daemon.socket

# systemctl stop avahi-daemon
# systemctl disable avahi-daemon


PostgreSQL 9.1起動時のPermission deniedへの対応 [Debian]

Debian 8 において、PostgreSQL 9.1 の起動ができなくなってしまった。

・パッケージのバージョン
 postgresql-9.1 9.1.16-0+deb7u1
 postgresql-common 165

・エラーメッセージ
 "/etc/ssl/certs/ssl-cert-snakeoil.pem": Permission denied

原因および対処方法の詳細は、以下の通りである。

1. 発生事象


下記のような状況となり、PostgreSQL の起動に失敗する。

[postgresql@9.1-main]
could not open file "/etc/ssl/certs/ssl-cert-snakeoil.pem": Permission denied
startup process (PID 5060) exited with exit code 1
aborting startup due to startup process failure

[systemd]
postgresql@9.1-main.service: control process exited, code=exited status=1
Failed to start PostgreSQL Cluster 9.1-main.
Unit postgresql@9.1-main.service entered failed state.

2. 原因


(1) PostgreSQL のバグと思われる。


アクセス可能かではなく、所有者なのかをチェックしているように思われる。
少なくとも、/etc/ssl/certs/ssl-cert-snakeoil.pem は参照可能である。

[シンボリック・リンクの状況]
# pwd
/var/lib/postgresql/9.1/main
# ls -l server.*
lrwxrwxrwx 1 root root 36 Jun  2 13:10 server.crt -> \
/etc/ssl/certs/ssl-cert-snakeoil.pem
lrwxrwxrwx 1 root root 38 Jun  2 13:10 server.key -> \
/etc/ssl/private/ssl-cert-snakeoil.key

[シンボリック・リンク先の状況]
# pwd
/etc/ssl
# ls -l
total 36
drwxr-xr-x 2 root root     20480 May 30 02:12 certs/
-rw-r--r-- 1 root root     10835 Mar 19  2013 openssl.cnf
drwx--x--- 2 root ssl-cert  4096 Feb 22  2009 private/
# ls -l certs/ssl-cert-snakeoil.pem
-rw-r--r-- 1 root root 644 Feb 22  2009 certs/ssl-cert-snakeoil.pem
# ls -l private/ssl-cert-snakeoil.key
-rw-r----- 1 root ssl-cert 887 Feb 22  2009 private/ssl-cert-snakeoil.key

[postgres ユーザーの所属グループの状況]
# grep postgres /etc/group
ssl-cert:x:104:postgres
postgres:x:122:

3. 対処方法


取り敢えず、下記の手順の実施により、状況が改善される。

(1) 当該ファイルの所有者を root から postgres に変更する。

# cd /etc/ssl
# chown postgres certs/ssl-cert-snakeoil.pem
# chown postgres private/ssl-cert-snakeoil.key

# ls -l certs/ssl-cert-snakeoil.pem
-rw-r--r-- 1 postgres root 644 Feb 22  2009 certs/ssl-cert-snakeoil.pem
# ls -l private/ssl-cert-snakeoil.key
-rw-r----- 1 postgres ssl-cert 887 Feb 22  2009 \
private/ssl-cert-snakeoil.key


(2) PostgreSQL の起動

# systemctl start postgresql@9.1-main.service
# systemctl status postgresql@9.1-main.service


(3) PostgreSQL が正常に起動できた後に root 所有に戻す。


PostgreSQL が正常に起動できた後は、root 所有に戻しても問題は発生しない。


4. 備考


(1) 参考資料


https://forums.kali.org/showthread.php?25638-Postgresql-won-t-start



debian 8のautofsの不具合への対応 [Debian]

Debian 8 の autofs での ntfs マウント時の不具合について、パッケージが更新されないため、別の方法での対応を行った。
詳細は、以下の通りである。

1. 発生事象


autofs での NTFS のマウント時にオプション指定ができない。
・NTFS のマウントには、ntfs-3g (1:2014.2.15AR.2-1+deb8u2) を使用している。
・fstype 以外のオプションを指定するとマウントポイントが認識されない。
・fstype 以外のオプションを指定しない場合には問題ない。
・mount コマンドでのオプション指定では問題なくマウントできる。

(補足)
http://dan-project.blog.so-net.ne.jp/2015-06-30


2. 原因


ntfs-3g において、-s オプションが未サポートとなっているためである。
・automount が ntfs-3g を -s オプション指定で実行する。
・-s オプションが指定されているため、ntfs-3g がエラーとなる。
・ntfs-3g がエラーとなるため、mount が実施されない。

(補足)
下記の手順により、確認できる。
・/etc/default/autofs の OPTIONS に -d を追加する。
・autofs を再起動する。
・autofs によるマウントを実行する。
・/var/log/syslog を参照する。


3. 対処方法


ntfs-3g に -s オプションを渡さないようにするため、下記の手順を実施する。


(1) 既存の ntfs-3g の保存

# cd /bin
# mv ntfs-3g ntfs-3g.org


(2) ntfs-3g の作成


/bin/ntfs-3g として、下記のシェルスクリプトを作成する。

#!/bin/sh
# patch for ntfs-3g(1:2014.2.15AR.2-1+deb8u2)
/bin/ntfs-3g.org `echo $* | sed 's/ -s//'`

4. 備考


(1) 参考情報


https://bugs.launchpad.net/ubuntu/+source/autofs/+bug/1448678


(2) ntfs-3g を Debian 7 のパッケージにバージョンダウンしても改善しない。


ntfs-3g_2012.1.15AR.5-2.1+deb7u2_i386.deb
(dpkg -i ntfs-3g_2012.1.15AR.5-2.1+deb7u2_i386.deb でインストール)

(補足)
Debian 7 では問題は発生しない。



debian 8のautofsの不具合 [Debian]

Debian 8 の autofs での NTFS のマウントにおいて、下記の不具合が発生する。

# パッケージのバージョン
・autofs 5.0.8-2
・ntfs-3g 1:2014.2.15AR.2-1+deb8u2

1. 発生事象


autofs での NTFS のマウント時にオプション指定ができない。

・NTFS のマウントには、ntfs-3g を使用している。
・fstype 以外のオプションを指定するとマウントポイントが認識されない。
・fstype 以外のオプションを指定しない場合には問題ない。
・mount コマンドでのオプション指定では問題なくマウントできる。

【異常ケース】
# cat /etc/auto.misc
...
win_1 -fstype=ntfs,ro :/dev/sda1
...
# cd /misc/win_1
bash: cd: /misc/win_1: No such file or directory
【正常ケース-1】
# cat /etc/auto.misc
...
win_1 -fstype=ntfs :/dev/sda1
...
# cd /misc/win_1
# pwd
# /misc/win_1
【正常ケース-2】
# mkdir /tmp/aaa
# mount -t ntfs -o ro /dev/sda1 /tmp/aaa
# mount | grep /tmp/aaa
/dev/sda1 on /tmp/aaa type fuseblk (ro,...)


(補足)
・ext3 ファイルシステムの場合には、オプション指定ができる。
 (,ro を追加して確認)


2. 対処方法


現時点では不明である。

取り敢えずは、/etc/fstab に当該エントリを追加し、通常の mount で対応する。


3. 備考


autofs を Debian 7 のパッケージ(autofs 5.0.7-3) にバージョンダウンしても改善しない。
・autofs_5.0.7-3_i386.deb
・ntfs-3g_2012.1.15AR.5-2.1+deb7u2_i386.deb



Debian 8へのアップグレード後の追加設定 [Debian]

先日 Debian 8 へのアップグレードを実施したが、その後、以下の追加設定を行った。

1. getty プロンプトの出力タイミングの補正


getty のプロンプトがブートメッセージの途中で出力される。
・プロンプトの表示後、さらに 1 行のメッセージが出力される。
 (PostgreSQL のワーニングメッセージが表示される。)
・動作上の実害はない。

これを補正するため、/etc/rc.local の最後に下記の設定を追加する。

# delay display of login prompt
sleep 6

2. ブートログ(/var/log/boot) の作成


(1) /etc/init.d/bootlogd の有効化

# cd /lib/systemd/system
# mv bootlogd.service bootlogd.service.org
# mv stop-bootlogd-single.service stop-bootlogd-single.service.org
# mv stop-bootlogd.service stop-bootlogd.service.org


(2) /var/log/boot のローテーション


/usr/sbin/halt.local に下記の設定を追加する。

# rotate /var/log/boot
if [ -f /var/log/boot ] && [ -s /var/log/boot ]; then
    chown :adm /var/log/boot
    savelog -q -p -c 5 /var/log/boot
fi

3. GNOME の edge-tiling 機能の無効化


ウィンドウが画面端でサイズ変更されてしまう機能を無効化する。
(縦方向は画面サイズ、横方向は画面サイズの 1/2 に拡大される。)
設定方法は、下記の通りである。

(1) dconf-editor の起動


[アプリケーション] -> [システムツール] -> [dconf エディター]


(2) 設定画面の選択


org -> gnome -> metacity


(3) edge-tiling の無効化


edge-tiling をチェックを外す。


4. GNOME のタイトルバーへの最大化/最小化ボタンの追加


(1) dconf-editor の起動


[アプリケーション] -> [システムツール] -> [dconf エディター]


(2) 設定画面の選択


org -> gnome -> desktop -> wm -> preferences


(3) button-layout 変更

(変更前)
appmenu:close
(変更後)
appmenu:minimize,maximize,close

5. X のカーソルの色変更(黒地から白地への変更)


X のカーソルが黒地になっており、これを白地に変更する。
下記のいずれかの手順を実施する。

(1) ~/.icons/default/index.theme の作成

% cd
% mkdir .icons/default
% ln -s /usr/share/icons/DMZ-White/cursor.theme index.theme


(2) /etc/alternatives/x-cursor-theme のリンク先の変更

% update-alternatives --display x-cursor-theme
(/usr/share/icons/Adwaita/cursor.theme が選択されている。)

% su
# update-alternatives --config x-cursor-theme
(/usr/share/icons/DMZ-White/cursor.theme を選択する。)

[追記]


Debian 8でPAGERにjlessを指定するとsystemctlがエラーを発生する [Debian]

Debian 8 で 環境変数 PAGER に jless を指定すると、systemctl がエラーを発生する。

1. 発生事象


systemctl コマンドのオプション指定がエラーとなる。

(例)
# systemctl --help
Value is required after -K

2. 原因


systemctl では jless/less のオプションとして "FRSXMK" が使用されるが、Debian の jless の -K オプションとは仕様が異なるためである。

・jless の場合、-K オプションには引数が必要である。
 (less の場合は、必要ない。)


3. 対処方法


・jless を使用する場合
 使用する jless の オプションを環境変数 SYSTEMD_LESS に指定する。

・jless を使用しない場合
 環境変数 SYSTEMD_PAGER に使用するページャーを指定する。
 (環境変数 SYSTEMD_PAGER が未定義の場合には、環境変数 PAGER が使用される。)



Debian 7のgnome-session-fallbackの起動に失敗する [Debian]

1. 発生事象


Debian 7 において、gnome-session-fallback の起動に失敗することがある。

(補足)
・1 回の再実行で改善することもあれば、再実行(5 回程度)では改善しないこともある。
・gnome-session でも同様である。
・fvwm を併用しているが、fvwm は問題なく起動できる。


2. 原因


xscreensaver を使用していたことが原因と思われる。

(補足)
・xscreensaver の使用を止めたところ、上記事象が発生しなくなった。
・gnome-session-fallback 3.4.2.1-4
・xscreensaver 5.15-3


3. 対処方法


xscreensaver の使用を止め、gnome-screensaver に戻す。



Debian 8へのアップグレード [Debian]

今後の Debian 8への完全移行のため、Debian 7 からの移行テストを行った。
以下は、その結果をまとめたものである。

1. アップグレード


アップグレード自体は、標準的な方法で、特に問題なく終了した。
・設定ファイルの更新確認では、現在の設定を使用する方を選択

(標準的なアップグレード手順)
・/etc/apt/sources.list の編集
・apt-get upgrade
・apt-get dist-upgrade


2. アップグレード後の設定変更


(1) gnome-session fallback mode の起動コマンドの変更


GNOME のコマンド体系が変更されたため、~/.xinitrc や ~/.xsession を使用している場合には、起動コマンドの変更を行う。

(変更前)
exec gnome-session-fallback
(変更後)
exec gnome-session --session=gnome-flashback


(2) SCIM から uim への変更 (Fvwm のため)


SCIM を起動すると、Fvwm のルートウィンドウでのマウスクリックが効かなくなる。
このため、SCIM から uim への変更を行う。

手順は、[実施手順] の項に記載。

(補足)
Debian 7 では SCIM を Debin 6.0 のパッケージ(scim_1.4.9-6)にバージョンダウンすることで対応していたが、Debian 8 では左記パッケージのインストールができなかった。


(3) Emacs 24 用の設定の追加


仕様が変更されたため、Emacs 23 と同様に機能するように下記の設定を追加する。
・モードラインの色指定
・マウス選択と C-y でのコピー・ペースト
・改行挿入時の自動インデントの無効化

手順は、[実施手順] の項に記載。


(4) Apache 関連の設定変更


【Apache の設定】
設定項目の仕様変更があり、Apache 2.2 の設定のままでは起動できない。
(LockFile の設定でエラーとなった。)
このため、設定を Apache 2.4 用に変更する。

【PHP の設定】
PHP 5.6.7 にアップデートされたため、文字化けするようになった。
(default_charset の仕様変更のため、Shift_JIS のページが文字化けする。)
このため、default_charset を明示的に指定するように変更する。


(5) カーネルのバージョンアップ


アップグレード前と同じカーネルを使用していると、automount のマウント解除(タイムアウト、USR1 シグナル)ができないことがある。
このため、カーネルのバージョンアップを行う。

(autofs のバージョン)
autofs 5.0.8-2
(変更前のバージョン)
linux-image-3.2.0-4-686-pae 3.2.68-1+deb7u1
(変更後のバージョン)
linux-image-3.16.0-4-686-pae 3.16.7-ckt9-3~deb8u1


(6) systemd 関連の設定


アップグレード前の環境と同等にする(tmpfs の使用は除く)ため、下記の設定を行う。
・Ctrl + Alt + Del の無効化
・gettyのプロントの表示前に画面をクリアしないための設定
・shutdown 時に実行する処理の追加
・tmpfs で使用するメモリサイズの変更

手順は、[実施手順] の項に記載。


3. sysvinit と systemd との共存


現在のところ、共存状態でも特に問題は発生していない。


[実施手順]