From: "Alexei Khlebnikov" <[EMAIL PROTECTED]> > Возникла следующая проблема. > > Есть машина без CDROM-a, зато подключенная по сети к другой машине, > на которой есть CDROM. Хочется юзать CDROM второй машины как > apt source для первой. Вторая машина под виндой, так что монтируем > ее CDROM по SMB. На первой машине стоит Woody 3.0r0 без апдейтов.
Я исследовал эту проблему, забравшись в исходники apt. Проблема проявляется, если на машине с CDROM-ом стоит Win98. Если WinNT, Win2000 или Linux - не проявляется. При идентификации диска apt учитывает имена и время mtime файлов и каталогов корневого каталога на CD. Если в роли CD-сервера выступает Win98, stat(2) не может правильно прочитать время модификации каталога (с файлами все ок!), а вместо этого в st_mtime (и в st_atime тоже) записывается текущее время. Как я и говорил, в potato с родной самбой и ядром 2.0.38 такой проблемы не было. Если у кого также есть эта же проблема с apt, я написал workaround patch для apt 0.5.4, который [apt, не патч] сейчас используется в woody, sarge и sid. Его можно взять в аттаче. Патч накладывается на исходники, потом apt пересобирается комадой debuild binary Кстати, не рутом его собрать мне почему-то не удалось (что с патчем, что без). После долгой работы я получил ошибку perl: error while loading shared libraries: libfakeroot.so.0: cannot open shared object file: No such file or directory fakeroot стоит, файл /usr/lib/libfakeroot/libfakeroot.so.0 присутствует. Все Build-depends стоят. Некоторые другие пакеты (gzip к примеру) у меня собрались нормально. Я что-то все-таки не так сделал или это в пакете apt баг? Патч патчем, однако, такое временное и довольно кривое решение меня не устраивает, и я намерен найти реальный источник бага (показа неправильного времени). Я думаю, это или samba, или ядро. Для этого мне нужны добрые советы и кое-какая статистика. Я знаю, этот мэйл-лист читают много админов, у которых много машин. Поэтому я прошу всех, кому не трудно, помочь мне набрать эту статистику и помочь локализовать баг. Спасибо всем кто дочитал до этого места. Если кто-то хочет мне помочь, пусть он сделает следующее: 1) Смонтирует какую-нибудь smb-расшарку с win98-машины. Например в /smb/mountpoint. 2) Выполнит команду ls -l --full-time /smb/mountpoint 3) Пришлет мне информацию: проявился ли баг, что за самба, что за ядро. Можно присылать инфу лично, чтобы не засорять мэйл-лист. Результаты я опубликую здесь. Примеры: "время на каталогах текущее, самба 2.2.3 из woody, ядро 2.2.20 vanilla из woody", "время на каталогах не текущее, самба 3.0alpha1 самосборная от samba.org, ядро самосборное 2.4.19 от kernel.org с XFS-патчем". Заранее большое спасибо всем за сотрудничество.
apt-0.5.4-smb-cdrom-on-w98-mtime-bug-workaround-patch.diff
Description: Binary data