데비안에서 시스템 전반에 걸쳐 `python`을 `python3`의 별칭으로 만드는 방법

데비안에서 시스템 전반에 걸쳐 `python`을 `python3`의 별칭으로 만드는 방법

내 Debian 테스트 시스템의 최신 업데이트에서는 Python 버전 2가 제거되었으며 Python 3만 설치되어 있고 python3더 이상 이라는 명령이 없습니다 python. 이로 인해 Python 3 호환 스크립트를 포함하여 여러 스크립트가 실패합니다.

python전역을 별칭으로 구성하는 올바른 방법이 무엇인지 알고 싶습니다 python3.

더러운 해결책은 이와 같은 작업을 수동으로 수행하는 것이지만 sudo ln -s /usr/bin/python{3,}이것이 향후 APT 업데이트(또는 Python 2가 나중에 다시 설치되는 경우)에 대해 강력하지 않을 수 있다는 점이 걱정됩니다. 또 다른 옵션은 별칭을 설정하는 것이지만 전체 시스템이 아닌 내 사용자에게만 작동합니다.

또한 우분투에는 정확히 이 작업을 수행하는 패키지가 있지만 python-is-python3데비안에는 그러한 패키지가 없다는 것을 알았습니다.

답변1

데비안이 출시된 것 같습니다.파이썬은 python3입니다(데비안 11 이상에서는) 질문의 전제는 더 이상 유효하지 않으며 다음을 수행할 수 있습니다 sudo apt update && sudo apt install python-is-python3.

답변2

/usr다음을 제외한 /usr/local모든 것이 패키지에서 나와야 한다는 규칙을 고수하려면python-is-python3패키지그리고 설치하세요. 심볼릭 링크와 필수 문서 만 제공하며 /usr/bin/python패키지 관계로 인해 향후 문제가 발생할 가능성은 거의 없습니다.

별칭은 스크립트의 shebang에 도움이 되지 않으며 Python 패키지가 대안을 사용하지 않는다는 점을 고려하면 자신만의 대안( update-alternatives등)을 만드는 것은 신뢰할 수 있는 솔루션이 아닙니다.

스크립트에서 이를 사용하는 경우 /usr/bin/env python링크를 수동으로 추가할 수 있습니다 /usr/local/bin.

python2무엇을 하기로 결정하든 이제부터 Python에 의존하는 Debian 패키지 는 공식 저장소 python3(Debian 11 이상에서는 아직 정리되지 않은 오래된 Python 패키지가 있기 때문에 현재 불안정하고 실험적입니다.

관련 정보