붙여넣기 패키지/소프트웨어를 Linux의 다른 컴퓨터에 복사할 수 있습니까?

붙여넣기 패키지/소프트웨어를 Linux의 다른 컴퓨터에 복사할 수 있습니까?

샘플 시나리오는 다음과 같습니다.

새 디렉토리에서 시작하십시오. /myapps . ./usr/bin (시스템 /usr/bin이 아닌 설치 디렉터리에 상대적)이라는 별도의(사전 컴파일된 또는 소스) Python을 설치하고 이 사용자 정의 python에 다양한 계란을 설치합니다. 이는 아마도 buildout 과 같은 것을 사용하여 수행될 수 있습니다.

이제 동일한 OS 버전을 사용하는 다른 사용자는 rsync의 폴더가 정확한 폴더 구조를 유지하므로 다른 사용자와 마찬가지로 Python을 사용할 수 있습니다. 그는 정말로 물건을 다시 설치해야 합니까?

나는 대부분의 Linux 패키지 관리자가 /usr과 유사하게 /myapps와 함께 작동한다고 생각했습니다. 즉, 파일을 보관해야 하는 위치에 대한 기본 규칙입니다. 젠투 설치처럼 최적화를 원하지 않는 한 컴파일은 필수가 아닙니다. 즉, 대부분의 패키지 관리자가 수행하는 작업은 다음과 같습니다.

1) 요구사항 확인

2) 미리 컴파일된 내용을 /usr/lib /usr/bin과 같은 표준 위치에 복사/붙여넣기

3) 메뉴 업데이트 수행

첫 번째 기계의 일부 전제 조건:

이 디렉토리 외부가 아닌 이 디렉토리 내에 모든 것을 설치하십시오. 일반 사용자로 실행되며 sudo 는 없습니다.

Windows에서는 일반적인 파일 시스템 개념처럼 확실하지 않은 레지스트리 등으로 인해 이것이 어려울 것이라고 생각합니다. 하지만 *nix에서는 이것이 그렇게 간단하게 작동해야 할까요?

답변1

완벽하게 가능합니다(그러나 일반적으로 virtualenv를 만들고 전체 virtualenv 루트를 번들링하면 동일한 결과를 얻을 수 있습니다). 일부 Python 패키지에 외부 라이브러리가 필요하고 다른 사용자가 이를 설치하지 않은 경우 문제가 발생할 수 있습니다(이것이 일반적으로 virtualenv 및 pip 번들/pip 동결을 사용하여 수행하는 이유입니다).

패키지 관리자는 소위 설치 스크립트를 실행합니다. 여기에는 모든 코드가 포함될 수 있지만 일반적으로 필요한 사용자/그룹을 추가하고 다른 구성을 편집합니다(구성에서 한 줄을 "설치"할 수 없기 때문에; 모든 *.conf를 *.conf.d로 분할하려는 움직임은 약간 도움이 되지만 아직 끝나지 않았습니다.) 그러나 대부분의 Python 패키지에서는 괜찮을 것입니다.

관련 정보