dpkg の選択肢の表示を変えたい。
dpkg の選択肢の表示をダイアログじゃなく、単なるテキストの文字列入力でやりたい。
ncursesで作られてると思われるDialogは日本語で表示が乱れたり、tty設定が甘くて表示が崩れたり、シリアルコンソールでうまく行かなかったり。
表示は文字列だし、選択も文字列なんだから、単純に文字列を表示して、文字列をreadしてくれたらいいのにと思ってた。調べてみたら。簡単にできるじゃん。
dialog
ダイアログを選んでいると、選択をキーボードで入れることになる。
readline
readlineを入れると、標準出入力で渡すことができる。
dpkg -f readline
nointeractive もいいけど。
readlineも使いやすいよ。
デザインが崩れるとき。
diaglog ( curses / ncurses ) とかでtty で「デザインが崩れる」ときは、 --frontend=readline / -f readline
で指定すれば、問題が解決しそうですね。
設定の確認
takuya@:~$ sudo debconf-show debconf debconf-apt-progress/title: debconf-apt-progress/info: debconf/frontend: Dialog debconf-apt-progress/media-change: debconf/priority: high debconf-apt-progress/preparing:
ちなみに、ダイアログの一覧は、 debconf-get-selectionsで見れる。
debconf-utils を入れないといけないが、手軽に、設定をもう一度呼び出すことができて便利である。
sudo apt install debconf-utils
takuya@:~$ debconf-get-selections | grep -v ^# | cut -f 2 | cut -d / -f 1 | sort | uniq debconf: DbDriver "passwords" warning: could not open /var/cache/debconf/passwords.dat: Permission denied adduser apparmor apt-listchanges base-passwd ca-certificates certbot console-setup cpufrequtils cryptsetup cryptsetup-initramfs dash debconf debian-installer dictionaries-common discover exim4 exim4-base exim4-daemon-light fontconfig gdm3 glibc grub2 iproute2 keyboard-configuration libpam-modules libpam-runtime libpam0g libpaper libraries libssl1.1 libvirt-daemon-system lightdm linux-base locales make-ssl-cert man-db mariadb-server-10.5 mdadm netselect nginx openssh-server passwd popularity-contest s-nail samba-common sane-utils shared shim tasksel tzdata ucf unattended-upgrades update-inetd xserver-xorg-legacy
2022-01-17
ダイアログの設定の選択をがあるものをリストする方法を追加。
参考資料
https://tokyodebian-team.pages.debian.net/html2005/debianmeetingresume2005-fuyuse2.html