저는 새 노트북을 설정하고 있는데, 서로 겹치지 않게 몇 가지 다른 프로그래밍 환경을 설정하고 싶습니다.
실제 용도는 다양하지만 구체적인 예를 들어 보겠습니다. 저는 Python 2.7을 유지 관리하고 Python 3.newest를 개발합니다.
전체 벨트 솔루션은 내가 사용하는 모든 시스템에 VirtualBox(또는 이와 유사한 것)를 갖는 것이지만 더 좋은 방법이 있습니까? (매우 명확한 답변을 제공하는 것을 두려워하지 마십시오. 저는 최근 Linux 사용자입니다. "모두가 들어본" 내용이 있다면 저는 들어보지 못했을 가능성이 높습니다.
명확하게 말하면, 다양한 버전에 대해 별도의 환경이 필요합니다 . gcc
위에서 언급한 것처럼 clang
두 가지 버전이 너무 많습니다 (비록 하나는 병렬로 설치하면 제대로 작동하는 것 같지만). 그 중 다양한 버전이 뭔가를 놓쳤을 것이라고 확신합니다. 현재 저는 최신 버전을 작업 중입니다 . 하지만 미래가 어떻게 될지 누가 말할 수 있을까요? 그러니 어쨌든 그들만의 환경을 제공해서 앞으로 이런 일이 일어나도 헷갈리지 않게 하는 게 좋을 것 같아요.go
python
dotnet
node.js
zig
rust
답변1
여러 가지 솔루션이 있습니다. 일반적으로 거의 모든 로케일을 구성하여(일반적으로 Python과 같은 적절한 위치의 환경 변수를 통해 $PYTHONPATH
) Linux는 실행 파일( $PATH
)과 라이브러리( $LD_LIBRARY_PATH
) 독립형 환경을 사용하는 메커니즘도 마찬가지입니다. 독립형 환경을 사용하는 것은 일반적으로 몇 가지 환경 변수를 수정하는 것으로 귀결됩니다.
Python에 관한 한 Python 자체에는 해당 메서드( )가 있지만 패키지/접두사 관리자( / ) python -m venv
도 많이 있습니다 . 다른 언어에서도 마찬가지입니다(Rust의 크레이트는 잘 디자인되어 있고, JavaScript의 크레이트 는 완전히 다릅니다. PHP의 PEAR 등...).conda
mamba
cargo
npm
격리가 더 필요하다면,컨테이너도움이 될 수 있습니다. 전체 OS 파일 시스템 트리는 일반 트리에 "내장"되어 있으며 명시적으로 공유하는 것만 "기본" OS와 교환할 수 있습니다.
대체로 다음과 같습니다.많은다양한 방법이 있으며 대부분의 언어에는 삶을 더 쉽게 만들어 주는 특정 도구가 있습니다. 언어별로 하나씩 찾아보아야 합니다.
답변2
Marcus의 답변에 추가하려면 학습 곡선이 있지만 nix 또는 guix를 사용하여 요구 사항에 따라 환경을 선언적으로 설정할 수 있습니다. 나는 nix를 사용하는 것을 선호합니다. 추가 자료:https://nixos.org/guides/nix-pills/