portage + nfs проблемы [РЕШЕНО]

Вчера в своей локалке подняли с соседом nfs на зеркале генту.
Сделали доступным дерево портежей и каталог distfiles.
NFS естественно только для чтения. И тут появились проблемы.
Точнее они начались только у меня (сосед юзает paludis).
пришлось поменять переменную DISTDIR, потому что просто каталоги в разных местах. Но это вроде-бы работает... т.е. он обращается к тому каталогу, к которому надо, но при компиляции чего угодно выскскивает вот таке:

# mount | grep export
mirror:/export/gentoo/portage on /usr/portage type nfs (rw,addr=10.3.0.30)
mirror:/export/gentoo/distfiles on /tmp/distfiles type nfs (rw,addr=10.3.0.30)

# emerge -pv vsftpd

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild R ] net-ftp/vsftpd-2.0.5-r3 USE="ssl -caps -logrotate -pam (-selinux) -tcpd -xinetd" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB
# emerge vsftpd
Calculating dependencies... done!
>>> Verifying ebuild Manifests...

>>> Emerging (1 of 1) net-ftp/vsftpd-2.0.5-r3 to /
!!! No write access to write to /tmp/distfiles/.locks. Aborting.
* Fetch failed for 'net-ftp/vsftpd-2.0.5-r3'

* Messages for package net-ftp/vsftpd-2.0.5-r3:

* Fetch failed for 'net-ftp/vsftpd-2.0.5-r3'

Я думал сделать unionfs, но как оказалось, что у меня сильно новое ядро.
Есть ли у кого идеи?

[quite]NFS

[quite]NFS естественно только для чтения. И тут появились проблемы.

ППЦ!А чего вы ожидали?

Делайте fetch на самом сервере, а дальше как обычно...

>ППЦ!А чего вы

>ППЦ!А чего вы ожидали?
Ну если тебя это действительно интересует, то по-моему это тупость писать локи туда же, от куда берешь файлы. Для этого /var/lock существует. Поэтому мои ожидания были на более грамотный портеж (палудис работает офигенно).

>Делайте fetch на самом сервере, а дальше как обычно...
Блин да я с сервака и по фтп скачать могу и всю жизнь качал, пока винт большой(в собственном компе) не долбанулся. Дать запись в нфс для нас значит дать право записи 600 людям в общаге а это по-моему было бы еще тупее писания локов в DISTDIR.

Так возможно сделать, чтоб portage заработал? Или тоже уходить на paludis?

у меня для

у меня для этого fetch скрипт. не вижу что в этом плохого.
+ еще один скрипт который раз в 5 минут пробигает по дистфайлам локальным и удаляет те, что есть на nfs-шаре. это чтоб место не занимали.

Нет. У меня для

Нет. У меня для этого слишком много людей зеркалом пользуется. А умельцы найдутся всегда.
И потом меня не интересует, что можно сделать с сервером, а с портажем. Тем более что идея отказаться от него для меня более приемлема. Он мне уже давно не нравится.

>> + еще один

>> + еще один скрипт который раз в 5 минут пробигает по дистфайлам локальным и удаляет те, что есть на nfs-шаре. это чтоб место не занимали.

запостите листинг плз =)

с собой нет, но

с собой нет, но щас прям могу придумать - это ж азы)
и так:
#!/bin/bash {стандартное заклятие, воззвание к виликим духам}

for i in `ls /usr/portage/distfiles` {для всех файлов что у нас локально}
do
if [[ -f /mnt/nfs/distfles/$i ]] {если этот файл лежит в этом каталоге}
then
rm -f /usr/portage/distfiles/$i {тогда удаляем - нафиг нам в двух местах его держать}
fi
done
{тут и сказки конец, а кто усвоил - молодец}
P.S. Писал прям тут - синтаксис не проверил.
P.P.S. проверил синтаксис, устранил ошибки. кушайте)

Локи ему не

Локи ему не мешают (это предупреждение, а не ошибка), это раз. Обламывается он у тебя на том, что не может выкачать файл, т.к. прав на запись в distfiles у него нет.

Вариантов несколько.
1) Делать emerge -f ... непостедственно на сервере, но тогда это тоже должна быть gentoo (и arch должен совпадать).
2) Разрешить записть по nfs запихнув ее в туннель с авторизацией.
3) Заменить команду в FETCHCOMMAND на что-нибудь вроде ssh -C portage@server 'wget ...' и настроить безпарольную авторизацию на сервере.

Вариантов море. Добавляйте по вкусу.

Ты меня немного

Ты меня немного не до конца понял.
Этот файл там есть. И он не хочет компилиться. Вот в чем вся проблема.

Тогда

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

Цитата:
Fetch failed for 'net-ftp/vsftpd-2.0.5-r3'

Ага, а вот и возможная причина: http://www.gentoo.ru/node/8410

>Fetch failed for

>Fetch failed for 'net-ftp/vsftpd-2.0.5-r3'

да только строчкой выше написано:
!!! No write access to write to /tmp/distfiles/.locks. Aborting.
И во время emerge -pv vsftpd он пишет, что качать ему ничего не надо, потому что именно тогда проверяются суммы MD5.
А потом если почитаешь начало, то заметишь, что с синхронизацией проблем у меня нет и дерево у меня два раза в сутки обновляется на серваке без всяких приколов.

# emerge -vp pv These are

# emerge -vp pv

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ] app-misc/pv-0.9.6  0 kB 

Total: 1 package (1 reinstall), Size of downloads: 0 kB
# emerge -1 pv
Calculating dependencies... done!
>>> Verifying ebuild Manifests...

>>> Emerging (1 of 1) app-misc/pv-0.9.6 to /
!!! No write access to '/mnt/distfiles'
 * pv-0.9.6.tar.gz MD5 ;-) ...                                                                [ ok ]
 * pv-0.9.6.tar.gz RMD160 ;-) ...                                                             [ ok ]
 * pv-0.9.6.tar.gz SHA1 ;-) ...                                                               [ ok ]
 * pv-0.9.6.tar.gz SHA256 ;-) ...                                                             [ ok ]
 * pv-0.9.6.tar.gz size ;-) ...                                                               [ ok ]
 * checking ebuild checksums ;-) ...                                                          [ ok ]
 * checking auxfile checksums ;-) ...                                                         [ ok ]
 * checking miscfile checksums ;-) ...                                                        [ ok ]
 * checking pv-0.9.6.tar.gz ;-) ...                                                           [ ok ]
>>> Unpacking source...
>>> Unpacking pv-0.9.6.tar.gz to /var/tmp/portage/app-misc/pv-0.9.6/work
>>> Source unpacked.
>>> Compiling source in /var/tmp/portage/app-misc/pv-0.9.6/work/pv-0.9.6 ...
./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --build=i686-pc-linux-gnu

Как видишь, этот write access ничего не решает.
Проверяй права на шаре. Пользователь portage имеет права на эти файлы? Во FEATURES стоит userpriv?

Да вижу, только

Да вижу, только тогда почему у меня после "!!! No write access to '/tmp/distfiles'" написано Aborting :(
права на мои дистфайлы стоят 755. Наверное у меня чего-то не то в make.conf

Все решил. Надо

Все решил.
Надо было до FEATURES дописать -distlocks

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".