IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Пингвинятник (ОС *NIX) (http://www.imho.ws/forumdisplay.php?f=76)
-   -   Samba & OpenOffice (http://www.imho.ws/showthread.php?t=134184)

Denissss 02.08.2008 16:39

Samba & OpenOffice
 
Что было:
На сервере (в роли которого выступает WinXP), расшарена в общий доступ папка "Архив файлов" (именно так - с русскими буквами и пробелом). На клиенте (Mandriva 2008.0, KDE 3.4, OpenOffice 2.4.0 ru) эта папка монтируется при помощи samba. Samba вкомпилирована в ядро, а не как отдельный демон. В адресной строке встроенного в KDE обозревателя папок Konqueror вводим smb://ip_servera/Архив файлов и получаем доступ к файлам.
Что стало:
После автоматического обновления Mandriva до версии 2008.1 и OpenOffice 2.4.1 ru (которое, кстати сказать, прошло не совсем гладко - для восстановления работоспособности OpenOffice его пришлось руками полностью снести и установить заново) при открытии файлов с этой общей папки происходит следующее: OpenOffice копирует открываемый файл во временную папку и из временной папки работает с файлом. В результате, когда в файле сохраняем изменения, они сохраняются не в общей папке, а локально - во временной. И измененный файл приходится вручную копировать назад в общую папку.

Со слов пользователя, это начало происходить именно после обновления системы. До обновления файл открывался и сохранялся в общей папке без проблем.
Соответствующей настройки - не кешировать во временную папку открываемый по сети файл я не нашел, ни в OpenOffice ни в Konqueror.

Что такое может быть: у кого какие идеи будут?

Saruman 02.08.2008 16:54

Собсно, насколько я знаю - KDE всегда так работал, при редактировании удалённых файлов (поверх ssh, smb, и т.п.) копирует их локально, а затем - назад.

В качестве противодействия можно попробовать маунтить сабмовский раздел локально (к примеру, посредством fusesmb или любым другим способом) - в таком случае KDE не будет знать, что он работает с удалёнными файлами, и будет редактировать их сразу на месте, без копирования себе.

Hubbitus 04.08.2008 11:04

Сразу отмечу несколько нестыковочек:

Цитата:

Сообщение от Denissss (Сообщение 1578272)
Samba вкомпилирована в ядро, а не как отдельный демон.

Samba не бывает вкомпилирована в ядро Линукс. В ядре может быть только поддержка ее файловых систем: старой smbfs и новой CIFS.

Далее:
Цитата:

Сообщение от Denissss (Сообщение 1578272)
На сервере (в роли которого выступает WinXP), расшарена в общий доступ папка "Архив файлов" (именно так - с русскими буквами и пробелом). На клиенте (Mandriva 2008.0, KDE 3.4, OpenOffice 2.4.0 ru) эта папка монтируется при помощи samba

Цитата:

Сообщение от Denissss (Сообщение 1578272)
В адресной строке встроенного в KDE обозревателя папок Konqueror вводим smb://ip_servera/Архив файлов и получаем доступ к файлам.

Вы уж определитесь все же: У Вас шара та монтируется локально, или Вы получаете к ней доступ посредством псевдо-протокола Konqueror smb:// ???
Если Вы ее монтируете, то адрес будет локальный, типа /mnt/whatever_share_of_files

При этом, как правильно заметил Saruman, все файлы будут открываться где они есть. В случае же работы с удаленным файлом посредством псевдо-протокола Konqueror smb://, вполне естественно что они будут сначала сохраняться во временную папку и дальше работа будет осуществляться с этим файлом. На самом деле это вполне логично: OpenOffice НЕ знает подобного протокола (в самом деле, попробуйте из него открыть файл напрямую с такого пути, будет ошибка), это эмулирует для Вас именно Konqueror на своем уровне обзора файлов, НЕ на системном уровне. Поэтому для OpenOffice он должен сохранить файл куда-то, и предоставить его для редактирования доступным через файловую систему компьютера.
Другое дело, проверьте внимательно, после сохранения изменений, и закрытия (файла или целиком Офиса) изменения могут быть залиты обратно на шару с перезаписыванием старого файла, если есть права на запись.


Подводя итог, быстрое решение для Вас - монтировать шару локально с помощью CIFS (ну или smbfs, в крайнем случае можно и fusesmb) и работа с ней.

Denissss 04.08.2008 18:36

Цитата:

Сообщение от Hubbitus (Сообщение 1578663)
Сразу отмечу несколько нестыковочек:
Samba не бывает вкомпилирована в ядро Линукс. В ядре может быть только поддержка ее файловых систем: старой smbfs и новой CIFS.

Второй вариант - CIFS

Цитата:

Сообщение от Hubbitus (Сообщение 1578663)
Вы уж определитесь все же: У Вас шара та монтируется локально, или Вы получаете к ней доступ посредством псевдо-протокола Konqueror smb:// ???
Если Вы ее монтируете, то адрес будет локальный, типа /mnt/whatever_share_of_files

монтируется посредством псевдо-протокола Konqueror smb://

Цитата:

Сообщение от Hubbitus (Сообщение 1578663)
Подводя итог, быстрое решение для Вас - монтировать шару локально с помощью CIFS (ну или smbfs, в крайнем случае можно и fusesmb) и работа с ней.

Да, я как раз так и хотел смонтировать ресурс в /home, чтобы для OpenOffice открытие файлов было прозрачным. Но я с samba не работал, и по незнанию пытался монтировать при помощи команды smbmount. Не получилось - выдавалась ошибка с 66 кодом.

Поэтому замечание про
Цитата:

Сообщение от Hubbitus (Сообщение 1578663)
CIFS (ну или smbfs, в крайнем случае можно и fusesmb)

, думаю, окажется очень полезно. Поэтому буду очень благодарен, если подскажите как должна выглядеть командная строка при монтировании этими командами. Я конечно-же могу посмотреть man fusesmb, но компьютер далеко и когда туда следующий раз поеду, хотелось быть более подготовленным :-)

Hubbitus 04.08.2008 20:03

Цитата:

Сообщение от Denissss (Сообщение 1578777)
монтируется посредством псевдо-протокола Konqueror smb://

Ключевым в моем описании было ИЛИ монтируется, ИЛИ используется псевдо-протокол Konqueror smb:// (в этом случае ничего неикуда не монтируется).

Цитата:

Сообщение от Denissss (Сообщение 1578777)
Да, я как раз так и хотел смонтировать ресурс в /home, чтобы для OpenOffice открытие файлов было прозрачным. Но я с samba не работал, и по незнанию пытался монтировать при помощи команды smbmount. Не получилось - выдавалась ошибка с 66 кодом.

В /home не стоит, сразу Вам скажу. В домашних директориях пользователей хранится множество других файлов, в том числе скрытых и не регулярных (например fifo), которые не могут быть сохранены или не всегда могут быть сохранены корректно на CIFS. Для /home стоит использовать нэйтивные файловые системы (какие Вы там используете: Ext3, XFS, ReiserFS...)
Поэтому, монтировать лучше в другое место. Далее, монтировать конечно же можно и с помощью smbmount и по нему читать ман по параметрам. Но, если Вы потом захотите сделать это на постоянной основе и прописать это монтирование в /etc/fstab, то Вам нужно будет все же монтировать с помощью:
mount -t cifs .....
ну или, возможно mount.cifs для Вашего дистрибутива.
Выглядеть это должно как-то так:
Код:

mount -t cifs -o user=UserName,password=Password //192.168.1.100/share_name /mnt/share_mountpoint
Если будут ошибки, приводите их полностью, не только номера.


Цитата:

Сообщение от Denissss (Сообщение 1578777)
Я конечно-же могу посмотреть man fusesmb, но компьютер далеко и когда туда следующий раз поеду, хотелось быть более подготовленным :-)

Ну примерно я привел выше. Точнее и полнее все равно только man mount, man mount.cifs, man mount fusesmb...

Denissss 11.08.2008 19:10

Попробовал еще раз. Результаты следующие:

при команде
Код:

mount -t cifs //192.168.0.1/Архив\ файлов /mnt/archive
либо
Код:

mount -t cifs '//192.168.0.1/Архив файлов' /mnt/archive
Выходит запрос о вводе пароля. Ввожу пароль и.....
Код:

mount error 6 = No such device or adress
See man mount.cifs ....

(без слеша или апострафов нельзя - пробел между словами "Архив файлов" воспринимается как разделитель параметров, в результате чего не находится такой параметр команды mount - архив.)
Общая папка все таки такая есть, поскольку, как я уже писал, в Konqueror обращение по псевдопротоколу
Код:

smb://192.168.0.1/Архив файлов
проходит.

Команды fusesmb среди исполняемых файлов на компе нет. mount.cifs, я так понимаю, это тоже самое, что и mount -t cifs
На WinXP, куда пытаюсь подключиться, настроен простой общий доступ к файлам, т.е. только по паролю, без ввода имени пользователя.

Возможно это виноваты русские буквы и/или пробел между словами?

Hubbitus 11.08.2008 20:00

Цитата:

Сообщение от Denissss (Сообщение 1580392)
без слеша или апострафов нельзя - пробел между словами "Архив файлов" воспринимается как разделитель параметров

Это Вы все верно делаете.

Цитата:

Сообщение от Denissss (Сообщение 1580392)
Команды fusesmb среди исполняемых файлов на компе нет.

Не знаю как в Мандриве, в Федорке оно входит в пакет
Код:

[root@x-www sbin]# yum provides '*/fusesmb'

fuse-smb-0.8.7-4.fc9.i386 : FUSE-Filesystem to fast and easy access remote resources via SMB
Matched from:
Filename    : /usr/bin/fusesmb

Цитата:

Сообщение от Denissss (Сообщение 1580392)
mount.cifs, я так понимаю, это тоже самое, что и mount -t cifs

Ну в общем да... но входят в разные пакеты однако:
Код:

# rpm -qf `which mount`
util-linux-ng-2.13.1-6.fc9.i386

Код:

[root@x-www sbin]# rpm -qf `which mount.cifs `
samba-client-3.2.0-2.17.fc9.i386

То есть, в итоге результат должен быть конечно один, но делают это разные утилитки. Советую почитать ман обоих и попробовать тоже обе.

Ну и ключик --verbose конечно не забываем.

Цитата:

Сообщение от Denissss (Сообщение 1580392)
Возможно это виноваты русские буквы и/или пробел между словами?

Возможно. Но и с ними все должно работать по идее. А причину нам еще предстоит выяснить.

Чтобы посмотреть какую шару надо монтировать, точнее как ее правильно записать, попробуйте просмотреть какие шары вообще видны, вроде такого:
Код:

$ smbclient -L 192.168.1.100
smbclient у меня все из того же пакета samba-client.

Опять же, smbtree можете посмотреть без параметров.

Далее, посмотрите как вывелось, и попробуйте приконнектиться к ней, типа такого:
Код:

smbclient '//192.168.0.1/Архив файлов'
smb: \> ls
......
smb: \> exit

Если заходите нормально, опять же, далее пробуем примонтировать.

добавлено через 4 минуты
О, и еще на счет пробела гляньте: http://ubuntuforums.org/showthread.php?t=451259

Denissss 14.08.2008 18:24

Еще одна попытка решить проблему с уветом Ваших последних замечаний принесла следующее:

Команда smbclient '192.168.0.1/Архив файлов' после ввода пароля привела к нормальному подключению ресурса Архив файлов и, соответственно, команда ls вывела список всех имеющихся файлов.

Команда smbtree вывела список общих ресурсов. Правда она писала путь по MAC-адресу сетевой карты - //0c56c02bed5744d/Архив файлов Но Архив файлов там был среди других общих ресурсов. Обращу внимание, что попытка выполнить эту команду через некоторое время не привела ни к какому результату - она ничего не выводила, ни после перезагрузки, ни с других компов. --verbose тоже ни дал никакого дополнительного вывода. На этот момент количество подключений на winxp было 6, т.е. меньше 10, значит с той стороны ограничений небыло.

Команда smbclient -L 192.168.0.1 опять-таки вывела список общих ресурсов, среди которых Архив файлов присутствовал. Вывод представляет собой таблицу: первый столбец имя общего ресурса (все доступные там были, включая c$, admin$, принтеры). Второй столбец - TYPE. Обращу внимание, может это несущественно, но для дисковых ресурсов везде было указан тип disk и везде по столбцу само слово было выровнено по левому краю табуляцией, а вот напротив Архив файлов слово disk было прижато влево к Архив файлов.

Команда rpm -qa |grep samba вывела
samba-common-3.0.28a.....
samba-client-3.0.28a.....


И по прежнему mount -t cifs '//192.168.0.1/Архив файлов' /mnt/archive выводит mount error 6 = No such device or adress. Добавление ключа --verbose добавляет в вывод только уточнение login, password, rw-mode. Пробовал учесть пробел по разному: и %20 и \%20 и \040 и 040 (как было написано http://ubuntuforums.org/showthread.php?t=451259) - результат один и тот же.

Всего компов, обращающихся к этому Архив файлов в сети 3. На двух других установлена та же Mandriva2008, но только не обновленная, т.е. 2008.0 И на них в качестве графической оболочки выступает Gnome. Там в качестве обозревателя файлов используется Nautilus. Обращение происходит так smb://0c56c02bed5744d/Архив файлов, т.е. по MAC-адресу, но дело, я думаю не в этом. Просто Наутилус не кеширует файлы с сетевого ресурса, а правит их прям по сети, в результате проблем с OpenOffice на этих компах нет. Судя по каталогам типа .Gnome в домашних папках у рута и пользователей, Гном там был установлен. Может попробовать переключить графическую среду по умолчанию с KDE на Gnome? В надежде, что Nautilus решит проблему. Только подскажите как это сделать - где это прописано?

Hubbitus 14.08.2008 18:34

Цитата:

Сообщение от Denissss (Сообщение 1581236)
Команда smbclient -L 192.168.0.1 опять-таки вывела список общих ресурсов, среди которых Архив файлов присутствовал.

Здорово. Тогда посмотрите, может быть у Вас есть комманда smbmount и тогда попробуйте монтировать с ней.

Цитата:

Сообщение от Denissss (Сообщение 1581236)
Просто Наутилус не кеширует файлы с сетевого ресурса, а правит их прям по сети

Уверенно сказать не могу, но если честно, сомневаюсь в верности такого утверждения.

Цитата:

Сообщение от Denissss (Сообщение 1581236)
Может попробовать переключить графическую среду по умолчанию с KDE на Gnome? В надежде, что Nautilus решит проблему. Только подскажите как это сделать - где это прописано?

Для меня бы это было просто неприемлемое решение. Впрочем, отвечая на вопрос как переключиться, просто:
Код:

switchdesk GNOME

gilrum 19.08.2008 12:54

Попробуйте поставить smbnetfs. Он отображает сетевое окружение в указанную в его конфиге точку монтирования и дальше можно к сетевым файлам обращатся, указывая просто сетевой путь относительной той точки. скажем если точка монтирования у него будет /mnt/network то путь к вашей шаре будет выглядеть как /mnt/network/wrkgrp|domain/name_servera/Архив файлов.

Denissss 23.08.2008 11:19

Попробовал использовать smbmount
Код:

$ smbmount '//192.168.0.1/Архив файлов' /mnt/archive
7608: tree connect failed: ERRDOS - 66
SMB connection failed

Команды switchdesk в Mandriva нет :-( В этом дистрибутиве как-то по другому переключение X осуществляется.

Решил попробовать выполнить все эти команды за тем компом, где все нормально работает (т.е. где Gnome и Nautilus). Получилось все тоже самое, что и на неработающем компе с KDE!
Код:

$ mount -t cifs '//192.168.0.1/Архив файлов' /mnt/archive
mount error 6 = No such device or adress

команда
Код:

$ smbclient -L 192.168.0.1
выводит список общих ресурсов нормально
Код:

$ smbclient '//192.168.0.1/Архив файлов'
подключается и выводит список файлов.

Тупик получается. Нигде не было нормально настроено(примонтировано), просто, видимо, nautilus спасал положение.

Сейчас попробуйю найти 'smbnetfs'. В стандартной поставке Mandriva2008.0 я его не нашел

Hubbitus 25.08.2008 02:29

Добавьте к smbount ключик -d с необходимым уровнем отладки (на для начала 2-3 чтоли).

Цитата:

Сообщение от Denissss (Сообщение 1583503)
Получилось все тоже самое, что и на неработающем компе с KDE!

Кто бы сомневался-то! Эти команды (mount, smbmount ...) не имеют ровным счетом никакого отношения к графическим средам каким бы то ни было!

добавлено через 23 минуты
Цитата:

Сообщение от Denissss (Сообщение 1583503)
Команды switchdesk в Mandriva нет :-( В этом дистрибутиве как-то по другому переключение X осуществляется.

Пишут что и в ней должно быть. Ну а если нет - то ручками - http://www.opennet.ru/openforum/vslu...ID1/71400.html


Часовой пояс GMT +4, время: 18:51.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.