Невозможно запустить «запуск expo» в приложении expo-реакции-native, проблема с правами доступа - PullRequest
0 голосов
/ 20 февраля 2019

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

Контекст (среда)

  • Linux Mint 19.1 Cinnamon
  • Expo v32
  • React-Native-Application
  • Частный репозиторий GitHub (откуда я клонировал приложение)
  • Узел Последний LTS (v10.15.1)
  • NPM v6.4.1
  • / \ Оба используют NVM (Node Version Manager)

package.json

{
"main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "eject": "expo eject"
  },
  "dependencies": {
    "@expo/vector-icons": "^9.0.0",
    "expo": "^32.0.0",
    "lodash.clonedeep": "^4.5.0",
    "native-base": "^2.10.0",
    "react": "16.5.0",
    "react-native": "https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz",
    "react-native-credit-card-input": "https://github.com/itspauloroberto/react-native-credit-card-input.git",
    "react-native-password-strength-meter": "https://github.com/itspauloroberto/react-native-password-strength-meter.git",
    "react-native-responsive-screen": "^1.2.0",
    "react-native-scalable-image": "^0.5.0",
    "react-navigation": "^3.0.9",
    "react-redux": "^6.0.0",
    "redux": "^4.0.1",
    "redux-form": "^8.1.0",
    "redux-saga": "^0.16.2",
    "url-join": "^4.0.0",
    "vanilla-masker": "^1.2.0"
  },
  "devDependencies": {
    "babel-preset-expo": "^5.0.0"
  },
  "private": true
}

Проблема

Моя проблемаэто когда я пытаюсь запустить следующую команду expo start или npm start, которая совпадает.

Я с трудом верю, что это проблема ОС , потому что на прошлой неделе я использовал тот же проектна другой ОС elementary-os и у меня не было никаких проблем!

Тогда я получаю эту ошибку, когда я выполняю expo start или npm start:

Uncaught Error { [Error: EACCES: permission denied, open '/home/itspauloroberto/.expo/state.json.354451305']
  errno: -13,
  code: 'EACCES',
  syscall: 'open',
  path: '/home/itspauloroberto/.expo/state.json.354451305' }

Как выполнитьпредставить:

  • Установить / использовать ОС Linux Mint 19.1 Cinnamon.
  • Установить nvm (node-version-manager)
  • Установитьnpm и узел, используя nvm install 10.15.1
  • Установите expo-cli, используя npm install expo-cli
  • Создайте новый проект expoact-native, используя expo init.
  • Попробуйте запустить егоиспользуя expo start.

Что я пробовал

Прежде всего, я уверен, что этот проект / приложение работает нормально, потому что у меня была другая ОС (elementaryOS) на последнейнеделю, и я работал над проектом без проблем, также у меня есть команда, которая работает над ним также без проблем.

  • Я попытался переустановить node и npm, а такжеexpo-cli.
  • Я пытался rm -rf node_modules и npm install.
  • Я пытался удалить package.lock.json и npm install снова.
  • Я пыталсяустановить глобальный каталог для глобальных установок npm с разрешением, как сказано здесь
  • Я попытался установить nvm менеджер версий узлов (и я использую его atm).
  • Я пытался chown myuser project-folder, чтобы дать моему пользователю доступ к папке (пробовал также в папке .expo и в папке node_modules)
  • Я попытался chmod 777 and 755 and 655 всей папки проекта.
  • Я попытался запуститьexpo start, npm start команда с префиксом sudo, но sudo не может найти expo или нет npm.
  • Я попытался удалить хранилище и клонировать его, используя git clone снова.
  • И многое, многое, многое другое.(также я занимался добычей)
  • Также нет участия в SELinux, как вы можете видеть ниже:

    ls -ld

    drwxr-xr-x2 itspauloroberto itspauloroberto 4096 фев. 20 14:54.

Из-за этого я создаю этот вопрос, даже если я вижу эту ошибку на многих веб-сайтах, ни у одного из которых нет моего контекста.

1 Ответ

0 голосов
/ 20 февраля 2019

Я обнаружил проблему!

Основная причина была в том, что в какой-то момент я использовал sudo для установки чего-либо, связанного с expo, а затем expo создал несколько файлов, принадлежащих root пользователь в другом каталоге, который не был в папке проекта, с которой я работаю.

Так было, потому что исходные файлы expo при самой начальной установке expo были установлены с использованием sudo, очевидно,потому что файлы в этом каталоге: home/itspauloroberto/.expo, а также папка принадлежали root (я проверил это с помощью команды la -ls и увидел root в качестве владельца.) вместо моего пользователя itspauloroberto, который был основнымисточник ошибки.

Чтобы избавиться от этой ошибки, выполните следующие действия:

  • перейдите в каталог home/your_user/.
  • удалите .expo папка, использующая sudo rm -rf .expo (sudo требуется, поскольку владелец папки является пользователем root)
  • снова запустите expo, используя expo start

Если вы обнаружите какие-либо дополнительные ошибки, связанные с некоторым каталогом или файлом, перейдите к файлу / directory, который находится в сообщении об ошибке и удалите его.Потому что он также должен принадлежать root пользователю.

...