Когда я запускаю Eclipse со средства запуска Единицы, я получаю это сообщение:
Could not find the folder 'tools' inside SDK '/home/engine/android-sdks/'
Но когда я ввожу в терминале
sudo eclipse
это работает правильно, и после выполнения
sudo chown -R $USER:$USER ~
Я получил это:
/home/engine/.gvfs : Permission denied
после этого я попробовал:
engine@Engine:~$ ls -al /home/engine/android-sdks/
и я получил это:
total 36
drwxrwxr-x 5 engine engine 4096 Jul 31 22:17 .
drwx------ 57 engine engine 20480 Aug 11 10:26 ..
drwxrwxr-x 2 engine engine 4096 Jul 31 22:17 add-ons
drwxrwxr-x 2 engine engine 4096 Jul 31 22:17 platforms
drwxrwxr-x 2 engine engine 4096 Jul 31 22:17 temp
спасибо Eliah Kagan
Есть ли какая-либо причина этого?
Может быть две вещи, продолжающиеся здесь:
Владение: Файлы, расположенные в корневом каталоге пользователя, могут принадлежать root
, когда они должны принадлежать пользователю.
Местоположение: Файлы могут быть расположены в root
корневой каталог (/root
) когда они должны быть расположены в корневом каталоге пользователя. (OP понял это, но принял этот ответ, таким образом, я увеличил его для включения этого в пользу других, испытывающих эту проблему.)
sudo eclipse
выполнения Eclipse как root
, но это все еще использует Ваш (то есть, нет root
) корневой каталог, чтобы сохранить его файлы. Так как это работает как root
, файлы, которые это создает, принадлежат root
, и пользователи кроме root
не может получить доступ к ним. Результат - это, если Вы работали sudo eclipse
однажды, Eclipse может только быть выполнен через sudo eclipse
впоследствии, пока проблема не решена.
Это не на самом деле проблема полномочий, это - проблема владения, и решение состоит в том, чтобы взять обратно владение на затронутых файлах и папках. Обычно безопасно быть владельцем всех файлов в Вашей домашней папке. Так, с Eclipse, не работающим, выполняет эту команду:
sudo chown -R $USER:$USER ~
$USER
будет расширен оболочкой до Вашего имени пользователя, таким образом, можно выполнить ту команду точно как есть. С другой стороны, если Вы хотите заменить $USER
с Вашим фактическим именем пользователя (в этом случае, engine
), это работает также.
Как та команда работает:
chown
команда для изменения владения на файлах и каталогах.~
сокращение оболочки от Вашего корневого каталога.-R
средства это только изменяет владение Вашего корневого каталога, но что операция должна применяться рекурсивно во все файлы, содержавшие где угодно в рамках Вашего корневого каталога. $USER
средства Вы будете владельцем файлов. Второе $USER
(после того, как :
) означает, что группа Вашего пользователя (группа, созданная с Вашей учетной записью пользователя, чтобы быть владельцем группы по умолчанию Ваших файлов), будет владельцем группы.Для дальнейшего использования:
root
, необходимо использовать графическое sudo
frontend как gksu
/gksudo
или kdesudo
. Это устанавливает $HOME
переменная среды к /root
--root
корневой каталог. (Это также делает копию ~/.Xauthority
.)root
вообще, из соображений безопасности. Некоторые графические утилиты должны работать как root
работать, но Eclipse не административное средство, и Вы никогда не должны должны быть выполнять его как root
. Если Вы делаете, что-то неправильно.Поскольку @Engine записал:
Проблемой не был целый каталог, но только папка
/tools
вandroid-sdks
. Я скопировал его с корневой папки, и затем я дал моему пользователю права владений с:chown -R $USER:USER ~
То есть это, когда eclipse
был выполнен как root
, это (по крайней мере в какой-то момент) использовало root
корневой каталог (не корневой каталог пользователя), и SDK Android был сохранен внутри root
корневой каталог.
root
заранее.В пользу других с этой проблемой:
tools
папка может быть скопирована изнутри /root
с:
sudo cp -R /root/android-sdks/tools ~/android-sdks/
Или можно переместиться tools
папка (вместо того, чтобы копировать) с:
sudo mv /root/android-sdks/tools ~/android-sdks/
Затем зафиксируйте владение, как описано выше. Или, только для перемещенного tools
папка, с:
sudo chown -R $USER:$USER ~/android-sdks/tools
Да, я знаю эту проблему.
Проверьте / измените разрешения для папки. (Используйте 755.)