SSD가 고장났습니다. 내 모든 프로젝트는 HDD에 저장되었고(문제 없이 원활하게 실행되었습니다) SSD를 하나 더 구입하고 새 OS를 설치했습니다(Manjaro, 이전 OS는 Fedora였습니다).
내 프로젝트 중 일부는 pip 글로벌 패키지를 사용했기 때문에 다시 설치해야 했습니다. 하지만 "pip install package-name"을 입력할 수는 없습니다.
ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/lib/python3.7/site-packages/Django-2.2.7.dist-info'
권한을 확인해 보니 소유자가 콘텐츠를 수정하고 실행할 수 있다고 나와 있는데 뭐가 문제인지 모르겠습니다.
또한 내 배포판에는 pip와 python이 사전 설치되어 제공되는데, 이는 약간 이상하고 예상대로 작동하지 않습니다. 시스템도 거의 새거라서 깨진 건 없는 것 같아요.
결국 나는 virtualenv에 이전 글로벌 패키지를 설치하여 문제를 "수정"했습니다. 설치할 수는 있었지만 (적어도 Google이 말하는 것처럼) 권한 부족으로 인한 오류로 인해 사용할 수 없었습니다.
예를 들어 libsass를 "import sass"하려고 하면 다음 오류가 발생합니다.
ImportError: /mnt/data/Projects/Work/transport/venv/lib/python3.7/site-packages/_sass.cpython-37m-x86_64-linux-gnu.so: failed to map segment from shared object
비슷한 질문에 대한 답변에서는 /tmp에 권한이 부족하다고 언급되어 있으므로 /tmp에 대한 답변을 따랐지만 아무 것도 변경되지 않았습니다. 하드 드라이브에 대한 권한을 777로 설정해 보았지만 여전히 작동하지 않았습니다.
업데이트: 분명히 .so pip 패키지로 Python 프로젝트를 시작할 수 없습니다. 그들은 모두 같은 오류를 제공합니다:
failed to map segment from shared object
.
Upd2: 알겠습니다. 하드 드라이브에 대한 권한에 문제가 있는 것 같습니다. 예를 들어, 프로젝트를 내 홈 디렉터리나 HDD 외부의 아무 곳에나 복사하면 작동하지만 "공유 개체에서 세그먼트를 매핑할 수 없습니다"라는 상황이 발생하지 않습니다. 또한 프로젝트 디렉터리(venv 및 이러한 .so를 포함한 모든 패키지)에 대해 777 권한을 반복적으로 설정하더라도 프로젝트 디렉터리가 HDD에 있으면 여전히 이 오류가 발생하고 정신을 잃습니다. sudo를 사용하지 않으면 여전히 pip 패키지를 전역적으로 설치할 수 없습니다.
답변1
이 질문은 너무 독창적이어서 대답할 가치조차 없다고 생각합니다. 실제로 내 하드 드라이브는 새 시스템에 noexec 플래그를 사용하여 설치되었습니다. 이로 인해 이러한 모든 문제가 발생합니다.