"apt"와 "pip"를 사용한 패키지 설치의 차이점

"apt"와 "pip"를 사용한 패키지 설치의 차이점

나는 의존성을 설치하려고 노력해 왔습니다.설정 도구, 분명히 모듈은 다음을 사용하여 설치되었습니다.쉬운. 그런데 버전이 잘못된 것 같아서 다음으로 설치를 해보았습니다.가리키다변경된 사항이 있는지 확인하기 위한 것입니다(스포일러: 아무것도 변경되지 않은 것 같습니다).

다음의 차이점은 무엇입니까(있는 경우)?

pip3 install setuptools

그리고:

apt install python3-setuptools

답변1

누구든지 다음 사항의 차이점(있는 경우)을 설명해 주시면 감사하겠습니다.

최고 수준: 시스템과 충돌할 수 있는 경우 pip install시스템에 설치( --system또는 --user기본이 아닌 Linux 배포판에서는 생략)를 사용하면 안 되며 이는 매우 안전합니다.--userapt install

설명하다:

aptLinux 배포판용 소프트웨어 패키지 설치 도구입니다. 오늘날의 Linux 배포판은 주로 중단 없이 서로 작동하는 패키지를 설치하는 방법을 제공하는 데 중점을 둡니다. 예를 들어 libreoffice에서 사용하는 라이브러리를 설치하려고 하지만 해당 버전이 libreoffice 버전과 호환되지 않는 경우 Linux 배포판의 도구는 안타깝게도 명령을 실행하려면 libreoffice가 요청한 버전과 작동하지 않기 때문에 제거해야 한다고 알려드립니다.

이런 일이 거의 발생하지 않는다는 사실은 현대 Linux 배포판이 여기서 얼마나 잘 작동하는지 보여줍니다. 일반적으로 설치할 수 있는 대부분의 소프트웨어는 apt함께 잘 작동합니다.

pip반면에, 컴퓨터에 어떤 다른 소프트웨어가 필요할지는 알 수 없습니다. pip에게 시스템 부팅 기능을 파괴하는 특정 버전을 설치하라고 지시하면 계속해서 그렇게 됩니다.

pip파이썬에만 해당됩니다. 해당 머신에서 Python과 관련된 모든 것이 "공정한 게임"이고 임의로 처리될 수 있다고 가정합니다. 솔직히 이것은 거의 사실이 아닙니다. 예를 들어 Fedora(사용하는 다른 Linux 배포판)에서는 그렇습니다.아니요), Easy Crack Installation Tool( 원하는 경우 dnfFedora의 ) 을 사용할 수 있습니다 .aptpip

그렇다면 왜 pip여전히 존재합니까? 음, 있어요이 경우 pip는 자신이 보는 Python의 모든 부분이 자신의 통제하에 있다고 가정할 수 있습니다.가상 환경. 여기에는 Python 모듈 자체가 설치되어 있지 않으며 컴퓨터의 다른 소프트웨어와 충돌하지 않습니다. 단순히 다른 소프트웨어가 환경을 이해하지 못하기 때문입니다.

그것을 사용하는 것은 매우 간단합니다. 다음을 사용하여 이와 같은 환경을 설정할 수 있습니다.

python3 -m venv ~/bertsexperiment

~/bertsexperiment그러면 Python 콘텐츠가 설치될 폴더가 설정됩니다 . 그런 다음 원하는 곳 어디에서나 해당 환경을 "활성화"할 수 있습니다(실제로는 일부 환경 변수를 변경하는 것뿐입니다). 그러나 이는 현재 프로세스와 해당 프로세스에서 시작하는 항목에만 영향을 미칩니다. 시도 해봐:

source ~/bertsexperiment/bin/activate

이 쉘은 향후 모든 Python 도구가 이 폴더를 "접두사"로 사용하도록 설정됩니다.

예를 들어, 이 셸에서 setuptools를 업데이트하려는 경우 source위에 표시된 대로 활성화 스크립트를 실행 하면 pip3 install --upgrade setuptoolsvirtualenv에 설치됩니다.

간단히 말해서:

  • 의심스러운 경우 apt소프트웨어 스택이 함께 작동하도록 만드는 것이 배포판의 작업이므로 사용하십시오.
  • pip현재 프로젝트에만 사용되고 시스템의 다른 어떤 것도 사용되지 않는 폴더에 무언가를 설치하려는 경우가 아니면 이 옵션을 사용하지 마십시오.
    따라서 이를 사용하고 싶은 유일한 실시간 시간은 Python virtualenv를 사용할 때입니다.

답변2

그것은 실제로 최종 목표에 달려 있습니다.

  • 다른 데비안 패키지의 어떤 것이 이 패키지에 의존합니까? 확실히 그것을 사용하십시오 apt.
  • 아니면 반대로 당신이 원하는만들다Debian 또는 Debian 기반 배포판(예: Ubuntu, Mint 등)용 패키지 또는 패키지 세트 - 다시 말하지만, 확실히 apt육지에 있습니다.
  • 설치하려는 항목에는 Debian에서 찾은 것보다 최신 버전이 필요합니다. 백포트된 .deb패키지는 다음에서 찾을 수 있습니다.https://backports.debian.org/또는 임의의 PPA일 수도 있지만 이 시점에서는 pip.
  • 자신만의 Python 스크립트를 개발하고 싶고, 가급적이면 의존하는 Python 패키지의 최신 기능을 갖고 싶습니다. 일반적으로 다음을 사용합니다.pip
    • ...또는 업스트림 Github 프로젝트에서 직접 설치하거나 최첨단 기술을 얻을 수도 있습니다. 하지만 너무 멀리 확장하지는 마세요. 전담 소프트웨어 개발 팀이 없다면 의존하는 가장 가치 있고 중요한 패키지 한두 개를 제외하고는 상당히 안정적인 릴리스를 고수하세요.

검토해 보면, 궁극적으로 의미가 있는 것은 성숙 주기의 어느 위치에 있는지에 따라 달라집니다. 공식 데비안 패키지의 장점은 매우 안정적이고 시간 테스트를 거쳤다는 점이지만, 가장 멋진 새 기능이 포함된 최신 버전을 실행할 수 없다는 단점이 있습니다.

또한 일부 데비안 패키지는 패키지된 소프트웨어를 더 넓은 데비안 생태계와 통합하기 위해 많은 노력을 기울인다는 점을 명심하세요. 임의의 Python 스크립트의 경우 이는 일반적으로 중요하지 않지만 데비안 시스템 관리 도구 또는 일종의 인프라 프로젝트인 경우 분명히 업스트림에 없거나 기본적으로 활성화 및 구성되지 않을 수 있는 모든 데비안 부분이 필요합니다.

관련 정보