Читання / запис дозволів у каталог / opt


54

Я встановив Android Studio у своєму / opt довіднику без перешкод і використовую його. Однак нещодавно Android Studio повідомив мене про оновлення. Однак оновлення не буде виконувати, оскільки воно говорить, що в каталозі opt, де воно встановлено, немає дозволів читання / запису.

Хтось може порекомендувати найкращий засіб для цієї ситуації? Я вважаю за краще не переносити інсталяцію в інший каталог. Я також не знаю, що я хочу змінити дозволи в каталозі, хоча, можливо, я б спокусився зробити це для оновлення, а потім повернути його назад.

Повідомлення про помилку:

Studio does not have write access to /opt/android-studio. Please run it by a privileged user to update

Як ви намагаєтесь оновити? Як ви встановили? PPA? Чи можете ви запустити андроїд студію як root? тобто sudo /opt/android-studioоновити?
Марк Кірбі

1
Я думаю, ви скопіювали його в каталог / opt /. Я не рекомендую зберігати його там, тому вам не доведеться турбуватися з питаннями дозволу. Найкраще скористатися umake для налаштування свого середовища розробки Android .
Gayan Weerakutti

@markkirby Я скопіював його туди і використав сценарій встановлення studio.sh, я би запустив sudo, але studio.sh запускає інсталяцію знову. Здивований, що я не бачу файлу, який потрібно запустити, щоб тільки запустити програму. Можливо, я повинен gedit інсталяційний скрипт, щоб побачити, де знаходиться виконуваний файл ..
wayneeusa

я рекомендую присвоїти одній з відповідей статус правильної відповіді. в іншому випадку це може ввести в оману користувачів, які в майбутньому прийдуть за цією публікацією - якщо правильну відповідь не було надано через 1 рік, це означає, що жодна відповідь не є правильною. Коли насправді обидва ефективно вирішують проблему. Я ЗАПРОШУЮ своє запитання, BTW:)
tony gil

Відповіді:


99

Я змінив власника каталогу андроїд-студії з rootмого userоблікового запису, і він працював. Ось команда, де $USERсама по собі зміниться для вашого поточного активного користувача:

sudo chown -R $USER:$USER /opt/android-studio

2
дійсно працює для мене .. Мій 10 днів пошуку закінчується тут
Ранджіт Кумар

8
Це спрацює, але чи є недоліки у наявності всіх файлів і каталогів у якомусь випадковому підкаталозі / opt, що належить випадковому користувачеві? Якщо установка включена / opt, це може означати, що вона призначена для декількох користувачів, тому можна очікувати, що інші користувачі системи запускають студію. Чи може це бути якось проблемою?
Яник

1
використовував цей трюк для налаштування редактора php, як Geany, для каталогу / opt / lampp / htdocs установок xampp для запису та запуску на сервері xampp. hth ..
Steer360

ти чоловік !
Тахір Ясін

2
Хороша точка @ Yannick, але хто у світі має більше одного користувача в налаштуваннях Ubuntu 😂
Брон Девіс

8

Ви можете перемістити каталог /optу свій будинок за допомогою comand:

sudo cp -r /opt/android-studio ~/

Або надати дозволи, які ви повинні використовувати chmod:

sudo chmod +w /opt/android-studio/some-file

щоб додати дозволи до всіх рекурсивних режимів:

sudo chmod +w -R /opt/android-studio/some-file

Погляньте на мою відповідь https://askubuntu.com/a/638799/150504, яка пояснює трохи про chmod та як користуватися


Чи потрібно вказати конкретний виконуваний файл, який матиме цей дозвіл для папки? Я спробував це з studio.sh, але я не думаю, що це власне файл, який працює, коли натискаю на піктограму для запуску андроїд-студії.
wayneeusa

не працював для мене. При створенні каталогу. пробувалиsudo chmod +w -R /opt/android-sdk-linux
Давид

Спершу нам слід запустити studio.sh з каталогу bin за допомогою sudo, потім відображається лише дозвіл на запис.
dev_ry

6

Я встановив групу / opt / android-studio (та / opt / android-sdk ) для користувачів і додав групу дозвіл на запис.

У моєму випадку, група користувачів , вже існували. Але як підказка:

Користувачі догрупи для судо

Мені довелося додати свого користувача до групи користувачів :

користувачі sudo adduser $ USER

Потім встановіть групу каталогу:

sudo chown -R root: користувачі / opt / android-studio

Оскільки в оновленнях потрібно записати файли:

sudo chmod -R g + w / opt / android-studio

Я використав цю інструкцію один раз, сподіваюся, я щось не забув

редагувати: Таким чином, файли повинні бути не надто широкодоступними, але все ще можуть бути використані вибраними користувачами


1

У мене була аналогічна проблема з Рубіміном.

sudo chown -R $USER:$USER /opt/Rubymine

працював і для мене, але це може бути небезпечно змінювати дозволи в системних папках. Можливо, краще просто запустити установку один раз як root, щоб дозволити оновлення. напр.

sudo updatedb && sudo locate rubymine.sh
sudo /path/to/rubymine.sh 

Я також! Але коли я спробую ваше рішення, він знову запитує інформацію про ліцензію, тож я не впевнений, що робити в той момент ... вкласти його ще раз? Я не хочу зіпсувати свої ліцензійні умови ...
mltsy

-1

Я отримував таку ж помилку. Виконання наступної команди з терміналу вирішило проблему.

sudo chown -R $USER:$USER /opt/idea-IC-173.4548.28/

Для виконання команди вам не потрібно бути в одному каталозі.


-2
sudo chmod -R 777 your_android_studio_location_path/

Наприклад (у моєму Ubuntu 16.04):

sudo chmod -R 777 /home/igor/Android/

7
Установлення масок дозволу на файл 777 майже завжди є поганою порадою . -1
Девід Фоерстер

Його погані поради, але наразі він працював, тому я підтримую.
Девід

2
@david 777 означає, що кожен (включаючи будь-кого через Інтернет) може отримати доступ, змінити та видалити файл. "це спрацювало" - не гарний привід відкрити таку критичну вразливість для вашої системи.
Мостафа Ахангарха

@david Розбивши ваш комп'ютер шматочками, заходьте в магазин і придбайте новий, а потім встановити на ньому останню версію Android Studio, також "спрацьовує", але це погана порада, і її не варто використовувати. Справа в тому, що часто існує кілька способів «вирішити» проблему, деякі з яких - «неправильний» спосіб, а деякі - «правильний». Ця відповідь майже напевно неправильна.
Джон Бентлі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.