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, но как оказалось, что у меня сильно новое ядро.
Есть ли у кого идеи?
- Для комментирования войдите или зарегистрируйтесь
>ППЦ!А чего вы
>ППЦ!А чего вы ожидали?
Ну если тебя это действительно интересует, то по-моему это тупость писать локи туда же, от куда берешь файлы. Для этого /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
- Для комментирования войдите или зарегистрируйтесь
[quite]NFS
[quite]NFS естественно только для чтения. И тут появились проблемы.
ППЦ!А чего вы ожидали?
Делайте fetch на самом сервере, а дальше как обычно...