패키지 관리자에 사용자 별 설치 및 레지스트리가없는 이유는 무엇입니까?


23

내가 아는 한 Linux 배포판에서 가장 널리 사용되는 두 가지 패키지 관리 체계 인 Apt와 DNF / Yum은 시스템 전체의 패키지 설치 만 지원합니다. 루트가 소유 한 파일, 이진 파일 (/usr)?/s?bin, 설정 /etc등이 있습니다.

그러나 루트 권한이없는 개별 사용자가 여러 명있는 시스템에서는 항상 그렇지는 않지만 사용자가 해당 배포에 사용할 수있는 일부 앱 또는 유틸리티를 설치하려고하는 경우가 종종 있습니다. 그리고 개인적이고 많은 / 모든 사용자에게 공통적이지 않은 설치에 능숙합니다.

이제는 설치 시점에 다른 루트 디렉토리 또는 루트 디렉토리 세트로 패키지를 적용 할 수있는 방법이 너무나도 복잡하거나 복잡해 보이지 않으므로 사용자가이를 수행 할 수 있습니다. 설치된 패키지의 사용자 별 레지스트리 (개인 사용자가 자신의 패키지 DB를 가지고 있는지 여부)를 관리하는 것도 큰 문제가 아닙니다.

그렇다면이 기능이 일반적인 패키지 관리 시스템 / 체계에 추가되지 않은 이유는 무엇입니까?

참고 : 이것은 유익한 질문입니다. 즉 사람들 이이 기능에 대해 어떻게 생각 하는지가 아니라 사람들 이 과거 에 대해 무엇을 알고 있는지 묻습니다 .


3
그것이 제공된다면 그것은 슈퍼 유저 권한이없는 컴퓨터의 소스에서 소프트웨어를 컴파일하는 데 많은 시간을 절약했을 것입니다. 답을 알고 싶어합니다.
Weijun Zhou

1
분명히 이것에 대한 나의 지식은 가장 크지는 않지만 사용자가 개인적으로 설치 한 소프트웨어의 종속성으로 하드 드라이브를 채우지 못하게하기 위해 수행되었을 수 있습니다. apt가 루트로 실행되지 않으면 시스템 라이브러리를 업데이트 할 수 없으므로 사용자는 이제 시스템보다 최신 버전을 갖습니다. 모든 사용자에 대해 반복하십시오. 이전의 작은 하드 드라이브는 매우 빠르게 채워 졌을 것입니다.
Thegs

1
@ Thegs : 이것이 고려 사항인지 의심합니다. "사람이이 작업을 수행하면 디스크 드라이브를 채울 것"과 같은 고려 사항 때문에 중요한 기능을 피하는 소프트웨어 프로젝트는 거의 없습니다. 보안 위험이있을 수 있습니다. 또한 다중 사용자 시스템에는 할당량이 있습니다. 어쨌든 이것을 사용하는 사람은 거의 없습니다. 게다가 이것은 모든 추측입니다 ...
einpoklum-복원 모니카

2
간단히 말해 : 시스템 패키지 관리자가 사용자 데이터를 엉망으로 만드는 것은 아닙니다. ~ / bin, ~ / lib 등은 시스템의 POV에서 "사용자 데이터"입니다.
cas

1
나는 통해 배포 몇 가지 패키지를 본 적이 pip, npm그리고 gopkg- 부분적으로 있기 때문에 그들이있는 거 배포판 독립적 부분적으로 그들은 일반적으로 사용자 별 설치를 할 수 있기 때문이다.
Bob

답변:


15

일반적인 패키지 관리자는이 사용 사례를 다루지 않지만 다음과 같은 몇 가지 프로젝트가 있습니다.

기존 패키지 관리자가이 사용 사례를 해결하지 못하는 이유는 패키지 관리자가 패키지가 동적 설치 디렉토리를 올바르게 지원하도록주의를 기울여야하기 때문에 패키지 작성 및 설치 프로세스를 크게 복잡하게 만드는 것입니다. 실제로 RPM과 같은 많은 일반적인 패키지 형식은 동적 설치 디렉토리를 지원하지만 추가 오버 헤드가 높기 때문에 패키지를 작성할 때이 기능을 활용하는 관리자는 거의 없습니다.


RPM은 이것을 지원하지만 dpkg는 지원하지 않습니까?
einpoklum-복원 Monica Monica

1
.deb 패키지를 만든 적이 없기 때문에 dpkg에 대해 정직하게 알 수 없습니다. dpkg가 동적 설치 디렉토리를 지원한다고 생각하지만 많은 .deb 패키지 관리자가 의심합니다.
jayhendren

또 다른 것은 ... 이것들은 일반적으로 처음부터 시작하거나 부트 스트랩으로 구축되거나 시스템 전체 수준에 설치된 것에 의존 하는가?
einpoklum-복원 Monica Monica

1
시스템 전체 패키지 관리는 패키지를 설치하지 않은 경우 사용 가능한 항목이 없다고 가정하므로 파일 측면에서 종속성을 검색하는 것은 해당 파일이 포함 된 설치된 패키지 측면에서 종속성을 검색하는 것과 같습니다. 그러나 보조 패키지 관리자에는 시스템 전체 패키지 / 파일과 사용자 별 패키지 / 파일이 있습니다. 패키지 관리자는 일반적으로 다운로드 및 / 또는 빌드 한 항목에만 의존합니까?
einpoklum-복원 Monica Monica

2
다릅니다. Homebrew 및 Emerge와 같은 소스에서 컴파일하는 사람들은 일반적으로 많은 종속성 추적없이 패키지를 빌드하려고합니다. 다른 패키지는 패키지와의 종속성을 번들로 묶습니다 (Flatpak 및 Snap뿐만 아니라 대부분의 App Store 스타일 도구 작동 방식). Zero Install과 같은 다른 모든 종속성은 개별 사용자 수준 패키지로 설치합니다.
jayhendren

6

그렇다면이 기능이 일반적인 패키지 관리 시스템 / 체계에 추가되지 않은 이유는 무엇입니까?

필요한 것 이상으로 시스템 관리의 복잡성을 증가시키기 때문입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.