Debian Stable("wheezy"): Python 3.4를 빌드하려고 sudo make install을 실행했습니다. 지금 문제가 있습니까?

Debian Stable("wheezy"): Python 3.4를 빌드하려고 sudo make install을 실행했습니다. 지금 문제가 있습니까?

그래서 virtualenv 가상 환경에서 Python 3.4.x를 실행하고 싶습니다. 나는 첫 번째 단계가 Python 3.4.x를 빌드하는 것임을 배웠습니다.

나는 Python3.4.x의 내용을 추출한 /usr/bin/Python3.4.x(내가 만든 폴더)에서 이 작업을 수행했습니다. 그런 다음 실행 ./configure하고 make실행했습니다 sudo make install. 명령이 작업을 수행하는 동안 핵심 데비안 안정 Python을 덮어써서 엉망이 되었을 수도 있다는 것을 깨달았습니다.

터미널에서 간단한 테스트를 실행해 보면 python제가 여전히 Python 2.7.x를 사용하고 있다는 것을 알 수 있습니다.~인 것 같다난 괜찮아요. 하지만 모르겠어요. sudo make uninstallPython makefile에는 make에 대한 제거 규칙이 포함되어 있지 않기 때문에 유사한 작업을 수행하는 것은 옵션이 아닙니다.

비슷한 일을 해도 sudo apt-get install --reinstall python재설치 시 파일을 덮어쓸 필요가 없기 때문에 안전하다고 느끼는 데 별로 도움이 되지 않습니까?

그럼에도 불구하고, 나는 방금 무엇을 했는지도 모르고, 그 결과가 무엇인지도 모르겠습니다. 누군가 내가 이해하도록 도와줄 수 있나요?

마침내 내가 따랐던 지침에서 구성 및 작성에 /opt/some_folder 접두사를 사용하도록 제안한 이유를 알아냈지만 이를 무시했습니다...그리고 지금은...예.

답변1

기본 Python 버전을 재정의하는 문제가 여전히 존재합니다.

에서와 같이읽어보기.rst, sudo make altinstall운영 체제 기본 버전을 덮어쓰는 것을 방지하는 데 사용됩니다.

--prefixUnix 및 Mac 시스템에서 동일한 설치 접두사(configure 스크립트에 대한 인수)를 사용하여 여러 버전의 Python을 설치 하려는 경우 다른 버전 설치로 인해 기본 Python 실행 파일을 덮어쓰지 않도록 주의해야 합니다. 설치를 통해 설치된 모든 파일과 디렉터리에는 make altinstall주 버전과 부 버전이 포함되어 있으므로 공존할 수 있습니다. make install또한 생성된 항목 ${prefix}/bin/python3은 을 참조합니다 ${prefix}/bin/pythonX.Y. 동일한 접두사를 사용하여 여러 버전을 설치하려는 경우 어떤 버전(있는 경우)이 "마스터" 버전인지 결정해야 합니다. 이 버전을 설치하는 데 사용됩니다 make install. 를 사용하여 다른 모든 버전을 설치합니다 make altinstall.

예를 들어, Python 2.7, 3.5, 3.6(3.6이 주요 버전)을 설치하려는 경우 make install3.6 빌드 디렉터리에서 설치하면 됩니다.

답변2

첫째: virtualenv에서 실행하기 위해 Python을 빌드할 필요가 없습니다. 시스템에서 제공하는 Python3.4.2를 사용하면 됩니다.

virtualenv -p /usr/bin/python3.4 /path/to/your/venv

시스템 실행 파일 및/또는 해당 라이브러리를 덮어쓰면 문제가 발생할 수 있습니다. 이를 테스트하는 한 가지 방법은 실행하여 /usr/bin/lsb_release여전히 작동하는지 확인하는 것입니다. 이것은 이미 python3을 기반으로 하는 유틸리티 중 하나이며(다른 유틸리티는 여전히 python2.7을 기반으로 함) python3에 의해 호출되므로 apt-get실패하면 문제가 발생합니다. 가능하다면 Python3을 다시 설치하여 컴파일 및 설치의 흔적을 모두 덮어보세요.

Python을 직접 빌드해야 한다는 오류 메시지가 나타나면 공유해 주시면 좋을 것 같습니다. 따라서 정보가 수정되지 않으면 사람들은 해당 정보를 회피할 수 있습니다.

관련 정보