Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по FreeBSD (http://forum.oszone.net/forumdisplay.php?f=10)
-   -   Локаль бесится! (http://forum.oszone.net/showthread.php?t=42913)

phashist 23-12-2004 09:58 282609

Локаль бесится!
 
такая хрень, пытаюсь подмантировать виндовые разделы на удалённой машине в консоле, ну как пологается пишу , например:
mount_smbfs -I ip //user@server/share node
и тут выдаёт такую хрень

mount_smbfs: can't set locale ''

mount_smbfs: smb_lib_init: can't initialise locale

я в панике, почему локаль не цепляется... вроде все везде стоит KOI8-R
просто эту систему не я сам настраивал, один тип, который в ужасе ушёл с этой должности, и сам не чихлит что он там накрутил в своё время!
Вот и приходятся из-за всякого ломачья разбираться потом

подскажите где копать, господа!!!

SSS 23-12-2004 15:20 282662

А testparm никаких ошибок не находит?

Belansky 24-12-2004 08:46 282880

Может, что в /etc/samba/smb.conf напутано?

mar 24-12-2004 12:12 282938

phashist
если честно, вообще лезть не хотелось. Ну не люблю, когда люди ругают кого-то ломаками и прочее :(

Возможные варианты разборок (для крутых неломаков ;)):
- закидываем find по исходникам в поисках этого отлупа. Мне было лень шарится по своиму диску, я попросила гугль.
Получила http://www.mit.edu/afs/sipb/project/...lib/smb/subr.c
Соответственно, идете в src/modules/smb/lib/smb/subr.c и видите :
Код:

smb_lib_init(void)
{
        int error;
#ifndef APPLE
        int kv;
        size_t kvlen = sizeof(kv);
#endif

        if (smblib_initialized)
                return 0;
#if __FreeBSD_version > 400000
        error = sysctlbyname("net.smb.version", &kv, &kvlen, NULL, 0);
        if (error) {
                warnx("%s: can't find kernel module\n", __FUNCTION__);
                return error;
        }
        if (NSMB_VERSION != kv) {
                warnx("%s: kernel module version(%d) don't match library(%d).\n", __FUNCTION__, kv, NSMB_VERSION);
                return EINVAL;
        }
#endif
        if ((error = nls_setlocale("")) != 0) {
                warnx("%s: can't initialise locale\n", __FUNCTION__);
                return error;
        }

        smblib_initialized++;
        return 0;
}

соответственно, думаем, кто, где и когда мог вернуть nls_setlocale("")) Ищем дальше. И т.д.

phashist 24-12-2004 15:46 283005

не , мужики - самба не причём
тут модуль просто не хочет подключаться , который отвечает за локали при монтировании смб ресурсов удалённо
вот mar - точно меня поняла, тока я ваще потерялся , что и где дальше искать? я с таким просто никада не сталкивался ещё, всё ещё познаю эту систему у меня дистр 4.10 стоит
mar - подскажи как специалист, что нужно ещё посмортеть?

mar 24-12-2004 16:21 283027

phashist
Цитата:

mar - подскажи как специалист, что нужно ещё посмортеть?
так я, как раз подсказываю, как НЕ специалист по самбе :). Просто раз есть ошибка, можно попытаться понять, откуда она идет. Если попытаетесь пройти дальше, распутывая это дело, то надо запустить поиск функции nls_setlocale. Смотрим там же, где нашли: http://www.mit.edu/afs/sipb/project/.../lib/smb/nls.c
Код:

int
nls_setlocale(const char *name)
{
        int i;

        if (setlocale(LC_CTYPE, name) == NULL) {
                warnx("can't set locale '%s'\n", name);
#ifndef APPLE
#warning XXX setlocale broken - Radar 2705694
                return EINVAL;
#endif
        }

        for (i = 0; i < 256; i++) {
                nls_lower[i] = tolower(i);
                nls_upper[i] = toupper(i);
        }
        return 0;
}

Так что упираемся в setlocale и возвращаемся к вопросу Belansky - что и как с локалями (в том числе с системными) у нас прописано? :)

FrIcE 04-01-2005 20:18 285796

Была у меня подобная проблема, когда при подключении smb - ресурса с включенным перекодированием система ругалась подобным образом, однако ресурс монтировала (без перекодировки ессно). Лечится по сей день следующим образом:
ln -fs /usr/local/lib/libiconv.so /usr/lib/libiconv.so.
Почему не ищет библиотеки в /usr/local до сих пор не могу понять, хотя все пути настроены и остальной софт работает без проблем :confused:


Время: 02:22.

Время: 02:22.
© OSzone.net 2001-