3

У меня самый раздражающий вопрос о строительстве из источников. Я долго искал ответ и нигде не могу его найти ... Я скомпилировал программное обеспечение из источников раньше, и это просто сбило меня с толку.

Поэтому я пытаюсь установить Python 2.7.2 из источников. Я могу сделать успешную ./configure также make , кажется, прекрасно работать. Но когда я делаю sudo make install , я получаю множество ошибок ...

Во-первых, sudo make install дает мне следующее:

make: stat: GNUmakefile: Permission denied
make: stat: makefile: Permission denied
make: stat: Makefile: Permission denied
make: stat: install: Permission denied
make: *** No rule to make target `install'. Stop.

Поэтому я сделал chmod +rx Makefile* . Но безрезультатно.

Тогда sudo ls . говорит

ls: cannot access .: Permission denied

Тогда ls -d . говорит, что разрешения drwxr-x---

Тогда, как отчаянная мера, chmod +rx . , Это дало мне:

make: stat: Modules/config.c.in: Permission denied
make: *** No rule to make target `Modules/config.c.in', needed by `Makefile'. Stop.

Итак, некоторый прогресс ... Что здесь происходит? Похоже, какая-то проблема с разрешениями. Я предполагал, что sudo будет решением, но очевидно, что здесь происходит что-то еще ... Я пытался sudo -s но я снова получаю эти проблемы с разрешением ...

Я использую Ubuntu 10.04LTS.

3 ответа3

5

Я считаю, что то, что вы бьете, на самом деле является политикой NFS, называемой "корень сквош". Нередко пользователям нужен root на определенном хосте, но вы не хотите, чтобы у них были такие же привилегии на общих томах NFS. Таким образом, предоставление локального корневого доступа не позволяет пользователю выполнять грубую загрузку на любых смонтированных томах NFS и получать доступ к файлам других пользователей / изменять их - сервер NFS отобразит идентификатор пользователя root от 0 до 65534 (nobody), поэтому вы не могу даже перечислить каталог в вашем примере.

Итак, это оставляет вам пару вариантов:

  1. Вы можете попытаться сделать все файлы доступными nobody в вашей сборке, выполнив команду chmod -R o+rw . в каталоге верхнего уровня, предоставляя "другим" права на чтение / запись для ваших файлов (может быть, а может и не быть достаточно - например, вам может потребоваться o+x каталогов, если он должен искать их).
  2. Если у вас есть доступ к файлу /etc/exports на сервере NFS, вы можете отключить корневой сквош (возможно, это не очень хорошая идея).
  3. Просто создайте локальный каталог, такой как /usr/local/src , /usr/src , /tmp т.д., Или просто создайте свой собственный локальный каталог (вы даже можете сделать его владельцем своего пользователя), например /scratch/myuser . Это, вероятно, вариант, который вызывает меньше головных болей.
0

Попробуйте сделать это для своего пользователя. То есть используйте «sudo chown user ./*» (заменив user на ваше имя пользователя), когда вы находитесь в каталоге, и он изменит владельца всех файлов в каталоге на вас.

0

Если вы используете sshfs, подключите с помощью опции -o allow_other

$ sudo sshfs -o allow_other hostfolder localfolder

перед этим вы должны установить user_allow_other в /etc/fuse.conf

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .