А почему ‘bash’ не зависит от ‘libreadline’?
Добрых суток уважаемой рассылке.
Наткнулся только что на тот факт, что ‘bash’ как пакет не имеет в
зависимостях libreadline6 (и 5 тоже) [A]. Будучи убежденным, что GNU
Bash, GNU readline все-таки использует, о чем сообщается даже ман [B],
я удивился.
Взглянув же на вывод зависимостей фактических:
$ ldd /bin/bash
linux-vdso.so.1 (0x00007ffff3375000)
libncurses.so.5 => /lib/x86_64-linux-gnu/libncurses.so.5 (0x00007f368453a000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f3684310000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f368410b000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3683d62000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3684792000)
я удивился еще больше — Баш и фактически не связан с libreadline.
Возможно, ncurses слинкован с readline? Но нет¹:
$ ldd /lib/x86_64-linux-gnu/libncurses.so.5
linux-vdso.so.1 (0x00007fff8dbff000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5938db2000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5938bae000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f5938983000)
/lib64/ld-linux-x86-64.so.2 (0x00007f59393b3000)
Чего я не понимаю, господа?
---
¹ Обратное, к слову, было бы странно, ибо readline — под GNU GPL, а
ncurses — один из немногих пакетов GNU на условиях лицензии X11.
--- Приложение A ---
$ apt-rdepends bash
bash
Depends: base-files (>= 2.1.12)
Depends: debianutils (>= 2.15)
PreDepends: dash (>= 0.5.5.1-2.2)
PreDepends: libc6 (>= 2.15)
PreDepends: libncurses5 (>= 5.5-5~)
PreDepends: libtinfo5
base-files
PreDepends: awk
awk
debianutils
Depends: sensible-utils
PreDepends: libc6 (>= 2.15)
sensible-utils
libc6
Depends: libgcc1
libgcc1
Depends: gcc-4.9-base (= 4.9.1-19)
Depends: libc6 (>= 2.14)
PreDepends: multiarch-support
gcc-4.9-base
multiarch-support
Depends: libc6 (>= 2.3.6-2)
dash
Depends: debianutils (>= 2.15)
Depends: dpkg (>= 1.15.0)
PreDepends: libc6 (>= 2.14)
dpkg
PreDepends: libbz2-1.0
PreDepends: libc6 (>= 2.14)
PreDepends: liblzma5 (>= 5.1.1alpha+20120614)
PreDepends: libselinux1 (>= 2.3)
PreDepends: tar (>= 1.23)
PreDepends: zlib1g (>= 1:1.1.4)
libbz2-1.0
Depends: libc6 (>= 2.4)
PreDepends: multiarch-support
liblzma5
Depends: libc6 (>= 2.14)
PreDepends: multiarch-support
libselinux1
Depends: libc6 (>= 2.14)
Depends: libpcre3 (>= 8.10)
PreDepends: multiarch-support
libpcre3
Depends: libc6 (>= 2.14)
PreDepends: multiarch-support
tar
PreDepends: libacl1 (>= 2.2.51-8)
PreDepends: libc6 (>= 2.17)
PreDepends: libselinux1 (>= 1.32)
libacl1
Depends: libattr1 (>= 1:2.4.46-8)
Depends: libc6 (>= 2.14)
PreDepends: multiarch-support
libattr1
Depends: libc6 (>= 2.4)
PreDepends: multiarch-support
zlib1g
Depends: libc6 (>= 2.14)
PreDepends: multiarch-support
libncurses5
Depends: libc6 (>= 2.15)
Depends: libtinfo5 (= 5.9+20140913-1+b1)
PreDepends: libtinfo5 (>= 5.9-3)
PreDepends: multiarch-support
libtinfo5
Depends: libc6 (>= 2.15)
PreDepends: multiarch-support
--- Приложение B. Выдержка из bash(1) ---
READLINE
This is the library that handles reading input when using an
interactive shell, unless the --noediting option is given at
shell invocation. Line editing is also used when using the -e
option to the read builtin.
Reply to: