Проблеммы при компилировании на разделе cifs

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
fdima1979
новенький
Сообщения: 15
Зарегистрирован: 19.07.2013 21:16:17

Проблеммы при компилировании на разделе cifs

Сообщение fdima1979 »

Доброго времени суток.

В общем ситуация такая. Решил я перенести свои fpc исходники на хронилище (Synalogy DS210). Перенос, ну и тут-же попробовал откомпилировать их там. Но оказалось fpc что-то компилирует, а на что-то ругается. Где не компилирует, пишет - что "Невозможно открыть включаемый файл filename.pas". Естетсвенно что файлы имеются.

Начал копать, написал тестовый пример, типа такого:

Код: Выделить всё

{$I f1.pas}
{$I f2.pas}
{$I f3.pas}
{$I f4.pas}
{$I f5.pas}
{$I f6.pas}
begin
end.

с созданными заранее файлами имеющими простенькие пустые процедурки.

Обнаружил, что если программа имеет 5 и более подключенных файлов (как в примере) то компилятор выдает сообщение об ошибке. Убираешь лишние подключения, неважно какие - все работает. Компилятор считает все файлы, то-есть все f-ки, базовый, и файл "main.o".

Когда перекомпилировал слегка измененную библиотеку DBF, то компилятор ругнулся что не может найти файл "dbf_common.inc", хотя он был (и библиотека раньше компилировалась). Думал какое-то ограничение на одновременное открытие файлов в самбе. Создал программу которая параллельно открывает (создает) десять файлов. Скомпилировал, запустил - заработала (создала).

В конце концов скопировал пример с шестью подключаемыми по {$I...} файлами на локальный диск - fpc его откомпилировала. В 2012м под виндой на этом же Synalogy собирал гиганские програмищи на Delphi, использовал файлы подключаемые по {$I...} и прочие извращения и все было хорошо, а тут такой облом.

Проверил работу хранилища - все тихо, диски в порядке.

У меня fpc 2.6.2 и самба (судя по всему 3.2.8 ). Обновить ни то ни другое не могу комп локальный, два года без обновлений - думаю что если подключу к сети и обновлюсь, все рухнет.

Да к стати, проверил настройки самбы, вроде ни каких ограничений на количество параллельно-открытых файлов не нашел.

Добавлено спустя 6 минут 27 секунд:
Попробовал откомпилировать с ключом -va. На шестой файл ругается:

Код: Выделить всё

[0.224] Seraching file f6.pas... not found 
[0.224] Seraching file F6.pas... not found


Добавлено спустя 9 минут 49 секунд:
Да, и забыл сказать что все это под линуксом.
Аватара пользователя
*Rik*
постоялец
Сообщения: 453
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал
Контактная информация:

Сообщение *Rik* »

У меня тоже не получилось получить доступ к файлу используя пути типа smb://путь. Под Linux нужно сетевую папку монтировать, после этого работаете с ней как с локальным каталогом...
fdima1979
новенький
Сообщения: 15
Зарегистрирован: 19.07.2013 21:16:17

Сообщение fdima1979 »

*Rik* писал(а):У меня тоже не получилось получить доступ к файлу используя пути типа smb://путь. Под Linux нужно сетевую папку монтировать, после этого работаете с ней как с локальным каталогом...


Так я ее и монтирую к /mnt/server.pascal. В fstab прописываю и монтирую.

С другими расшаренными папками все окей, а с паскалем... :-(
gluhow
новенький
Сообщения: 41
Зарегистрирован: 13.08.2015 14:30:20

Сообщение gluhow »

А монтировать по nfs не пробовали? При сборке исполняемый файл и библиотеки тоже на сетевой диск кладется или локальный? Может как-то влияют права на запуск, хотя это и было бы странно. Ну и естественно очистить все и пересобрать )
fdima1979
новенький
Сообщения: 15
Зарегистрирован: 19.07.2013 21:16:17

Сообщение fdima1979 »

gluhow писал(а):А монтировать по nfs не пробовали? При сборке исполняемый файл и библиотеки тоже на сетевой диск кладется или локальный? Может как-то влияют права на запуск, хотя это и было бы странно. Ну и естественно очистить все и пересобрать )


По NFS на данном устройстве не пробовал, но надо попробовать. Вообще с NFS были траблы при подключении - что-то с правами.

Сейчас все мои исходники, сорсы, либы собственного изготовления, и прочее (в том числе исполняемые после компиляции) лежат на самбе. Как я уже писал компилится простой пример только если к нему подключено не более 5 файлов, в самом примере ни каких либ кроме system не подключается. System лежит естественно на локальном диске в папке /usr/share/... так что она не в счет.

Убрать все ".o" и перекомпилировать?.... нууууу не знаю, если на простом тестовом примере глючит, не думаю что уборка объектных и скомпилированных файлов в чем-то поможет. Хотя и это тоже попробую, где-то/когда-то мне такое помогало.

Вообще, судя по разным источникам сама самба может параллельно открывать до 1024 файла одновременно.

Сегодня попробую написать bash-файлик с подключенными к нему либы с функциями и посмотрю как он откроет их. Если будет тоже самое, значит самба дурит. Хотя я не уверен.... Можно еще параллельно открыть десяток каких-нибудь файлов (например текстовых) и посмотреть что будет.
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

fdima1979 писал(а):значит самба дурит. Хотя я не уверен...


Можно быть уверенным, что она всегда дурит. :D Года три назад наблюдал удивительную вещь - а именно, в случае линка с линуксовой самбой с линуксовой же машины, на удаленную машину переезжали для файлов user id терминальной станции, в итоге, если под одним id на этих машинах были _разные_ пользователи, то файлы создавались с такими правами, что были недоступны создающему. Сообщество тогда как обычно пожало плечами и удивилось, зачем делать такой изврат, как соединение линукса с линуксом через smb. Кстати, подобное же будет и через nfs, - отсюда мораль - id одинаковых пользователей на разных машинах должны быть строго одинаковыми. :shock:

Добавлено спустя 11 минут 52 секунды:
Да, и флаги атрибутов на самбовских шарах обычно не соответствуют оригиналу при копировании.
mig-31
постоялец
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48

Сообщение mig-31 »

Скорее всего проблема в атрибутах и правах. У самбы кстати своя база пользавателей по умолчанию. Проще нфс с одинаковым user id.
fdima1979
новенький
Сообщения: 15
Зарегистрирован: 19.07.2013 21:16:17

Сообщение fdima1979 »

Шара подключается у меня вот такой строкой:

Код: Выделить всё

//192.168.1.25/pascal /mnt/server.pascal cifs noauto,users,noserverino,rw,username=admin,password=123,uid=500,sec=lanman,exec 0 0

На той стороне пароль админа admin, а пароль 123.
ls выдает что владелец файла я, т.е. пользователь 500. "sec=lanman" пришлось вводить потому что та сторона не хотела принимать у меня пароль с логином.

Добавлено спустя 3 минуты 31 секунду:
Группу ls выдает как users. Можно наверное поставить GID=500, но думаю это не изменит результат.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

fdima1979, странно, а зачем заходить как админу?
fdima1979
новенький
Сообщения: 15
Зарегистрирован: 19.07.2013 21:16:17

Сообщение fdima1979 »

Лекс Айрин писал(а):fdima1979, странно, а зачем заходить как админу?


А разница? Я все равно там один. Ни кого там нет, и комп локальный.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

fdima1979 писал(а):А разница?

Если чисто для себя, то действительно никакой.
fdima1979
новенький
Сообщения: 15
Зарегистрирован: 19.07.2013 21:16:17

Сообщение fdima1979 »

И так подведем микро итог:

1. bash-файл с семью модулями подключенными через source запускается и прекрасно выполняет их.
2. Были параллельно открыты семь файлов, и Samba не дала отказ в доступе к ним, т.е. ограничений на количество параллельно открытых файлов по сути нет.

Остается вопрос - что делать с паскалём?
В самом худшем случае мне придется оставить исходники в хомяке, но хотелось бы перекинуть все на хранилище и компилить их там.
Ответить