Привет! Есть файлы: # file * 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] Пробовал всё, начиная от libdb-4.3 и заканчивая libdb-2.7.7 ... Старый 1.85 билдится (после нек. манипуляций), но в нём нету утилиты db_dump. Как быть? Спасибо, Богдан. -- Its name is Public Opinion. It is held in reverence. It settles everything. Some think it is the voice of God. -- Mark Twain =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Mon, Apr 04, 2005 at 05:41:50PM +0300, Bohdan Vlasyuk wrote:
Привет!
Есть файлы:
# file * 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]
Пробовал всё, начиная от libdb-4.3 и заканчивая libdb-2.7.7 ... Старый 1.85 билдится (после нек. манипуляций), но в нём нету утилиты db_dump.
В tarball Berkeley db 4.0/4.1 наблюдаю db_dump185/* Попробуете?
Как быть?
Спасибо, Богдан.
-- NO37-RIPE Internet is a wonderful mechanism for making a madman of yourself
On Mon, Apr 04, 2005 at 05:57:33PM +0300, Oleg V. Nauman wrote:
# file * 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) В tarball Berkeley db 4.0/4.1 наблюдаю db_dump185/* Супер!!! Заработало.
Большое спасибо! Богдан. P.s.: Видимо, дело в неправильной сборке утилит libdb в Debian (?). -- Parkinson's Fifth Law: If there is a way to delay in important decision, the good bureaucracy, public or private, will find it. =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Mon, Apr 04, 2005 at 09:11:48PM +0300, Bohdan Vlasyuk wrote:
On Mon, Apr 04, 2005 at 05:57:33PM +0300, Oleg V. Nauman wrote:
# file * 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) В tarball Berkeley db 4.0/4.1 наблюдаю db_dump185/* Супер!!! Заработало.
Большое спасибо!
Богдан. P.s.: Видимо, дело в неправильной сборке утилит libdb в Debian (?).
Думаю что проблема несколько более :) Как бы Berkeley db 1.85 шла под несколько иной лицензией, позволявшей ей существование под BSD-derived/like licencies. Как оно могло приниматься/существовать под разными системами - как Бог на душу положит. Вот и было принято Соломоново решение - хочешь, сделай сам, если будет Тобою найден путь. -- NO37-RIPE Internet is a wonderful mechanism for making a madman of yourself
On Mon, Apr 04, 2005 at 11:18:42PM +0300, Oleg V. Nauman wrote:
P.s.: Видимо, дело в неправильной сборке утилит libdb в Debian (?). Думаю что проблема несколько более :) Если интерестно, то вот что я сделал:
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) Более того, в сборке утилит от 4.2, например, dump185 вообще отсутствует -- наверное он просто перестал компилироваться без 1.85 :) Вот так. Богдан. -- Everything I like is either illegal, immoral or fattening. -- Alexander Woollcott =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
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
On Tue, Apr 05, 2005 at 12:28:22PM +0300, Valentin Nechayev wrote:
1.db.db: Berkeley DB 1.85 (Hash, version 2, native byte-order) Как прочитать эти db-файлы, и как сконвертить в нормальный понятный новому dbmopen()-у формат? [perldoc -f dbmonen] dbmopen точно был ни при чём - BDB это не DBM. dbmopen HASH,DBNAME,MASK [...] This binds a dbm(3), ndbm(3), sdbm(3), gdbm(3), or Berkeley DB file to a hash. HASH is the name of the hash.
Если интерестно, то вот что я сделал: Жуткий путь. Если там только текстовые записи можно было загнать на фрю и запустить makemap -u от достаточно нового sendmail'а. Вообще-то так не сработало (8.2.10): $ makemap -u hash 1.db.db $
Но, оказалось что перловкий DB_File сам умеет читать 1.85 -- просто нало указать dbmopen-у что нужно читать именно BDB [use DB_File]. :) Так что эти все манипулации оказались немного ... ненужными :). Богдан. -- "The chain which can be yanked is not the eternal chain." -- G. Fitch =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
participants (3)
-
Bohdan Vlasyuk
-
Oleg V. Nauman
-
Valentin Nechayev