Mon, Apr 04, 2005 at 17:41:50, bohdan wrote about "[uanog] Berkley DB upgrade":
1.db.db: Berkeley DB 1.85 (Hash, version 2, native byte-order) 2.db.db: Berkeley DB 1.85 (Hash, version 2, native byte-order)
Созданны на какой-то непонятно-какой FreeBSD, от которой есть "tar cfv - /". На хосте -- GNU/Linux (Debian/Sarge).
Как прочитать эти db-файлы, и как сконвертить в нормальный понятный новому dbmopen()-у формат? [perldoc -f dbmonen]
dbmopen точно был ни при чём - BDB это не DBM.
Думаю что проблема несколько более :) Если интерестно, то вот что я сделал:
1) Собрал db.1.85 (cd PORT/linux; make -k), при этом -- пришлось править немного исходник т.к. в новом libc-devel errno это какой-то невнятный #define (воможно только с -D_THREAD_SAFE (?)). 2) Собрал db-4.3.27 (cd build_unix; ../dist/configure --enable-dump185; make -k), потом скомпилировал db_dump185 вместе с -I и libdb.a от 1.85. Получилось вот что: $ ldd ./db_dump185 libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x41019000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x41000000)
Почему-то в Debian есть dump185 только от db2 и db3, и они почему-то слинкованы (динамически) с libdb2 и libdb3 соотв. :
$ ldd `which db3_dump185` libdb3.so.3 => /usr/lib/libdb3.so.3 (0xb7f38000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x41019000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x41000000) $ ldd `which db_dump185 ` libdb2.so.2 => /lib/libdb2.so.2 (0x45003000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x41019000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x41000000)
Жуткий путь. Если там только текстовые записи можно было загнать на фрю и запустить makemap -u от достаточно нового sendmail'а. -netch- =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message