$HOME/local
Ubuntu 16.04 시스템의 별도 계층 구조 에 설치하려는 소프트웨어가 있습니다 .
소프트웨어는 데비안 패키지로 배포되며 소스 코드는 사용할 수 없습니다(만약 그렇다면 기꺼이 다운로드하여 직접 컴파일하겠습니다).
sudo
이 작업을 수행하려는 컴퓨터에 액세스할 수 없으며 액세스해서는 안 됩니다 . 이 소프트웨어는 시스템 전체에 설치되지 않으며 개인적인 용도로만 사용됩니다.
나는 노력했다
$ dpkg --root="$HOME/local" -i package_x.y.z_x86_64.deb
하지만 난 이해해
dpkg: error: requested operation requires superuser privilege
--force-all
내 요구 사항에 맞는 모든 필수 파일과 디렉터리 dpkg
( local/usr/bin
, local/var/dpkg
하위 디렉터리 info
및 , 의 빈 파일 포함 triggers
) 를 생성하려고 시도한 후 멈췄습니다.updates
status
local/var/dpkg
$ dpkg --root=$HOME/local -i --force-all package-x.y.z_x86_64.deb
dpkg: could not open log '/var/log/dpkg.log': Permission denied
(Reading database ... 0 files and directories currently installed.)
Preparing to unpack package_x.y.z_x86_64.deb ...
Unpacking package (1:x.y.z) ...
dpkg: error processing archive package_x.y.z_x86_64.deb (--install):
error setting ownership of './usr/bin/application': Operation not permitted
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
package_x.y.z_x86_64.deb
chown
패키지 사양에 따라 올바른 사용자에게 파일을 보내는 데 명백한 오류가 있습니다 .
다음 단계는 아마도 이 컴퓨터의 시스템 관리자와 대화하여 나를 위해 이것을 설치할 수 있는지 확인하는 것입니다. 그러나 내가 놓친 것이 있는지 궁금합니다. 그러면 내 자신의 로컬 패키지 설치 루트를 가질 수 있습니다. 예배 규칙서?
답변1
아니요, 아무것도 놓치지 않으셨습니다. 이 경우 최선의 방법은 다음을 dpkg-deb
사용하여 패키지 내용을 추출하는 것입니다.
dpkg-deb -x package_x.y.z_x86_64.deb my-private-root
패키지에 포함된 관리자 스크립트는 실행되지 않습니다.
dpkg-deb -e package_x.y.z_x86_64.deb my-private-control
답변2
사용자가 시스템의 패키지 관리자를 사용하여 소프트웨어를 설치하도록 허용하면 많은 문제가 발생하며 그 중 구현하기 쉬운 문제 중 하나는 종속성을 유지 관리하는 것입니다. 오늘 설치하려는 패키지의 종속성이 충족되더라도 실제 시스템 관리자가 일부 변경을 하면 내일 충족되지 않을 수 있습니다. 설치로 인해 패키지가 작동하지 않는 경우(많은 사람들이 이것을 믿지 않을 것입니다), 소프트웨어가 다음과 같은 경우에는 어떻게 될까요? 제거되었거나 단순히 손상되었습니까?
데비안 패키지는 두 개의 타르볼을 포함하는 아카이브일 뿐이 므로 모든 유닉스 시스템에서 쉽게 추출할 수 있지만 Stephen이 제안한 것처럼 ar
데비안(또는 이를 제거하지 않는 파생 패키지)을 사용하는 경우 사용하기가 더 쉽습니다. dpkg-deb
그의 대답이었다. 패키지 내용을 수동으로 추출할 때 유지 관리자 스크립트를 실행하지 않는 것 외에도 종속성이 확인되지 않습니다. 종속성을 확인하는 것은 간단합니다(그러나 지적한 대로 상황이 바뀔 수 있음). 유지 관리자 스크립트가 수행하는 작업을 실행하는 것은 간단할 수 있지만 어려울 수도 있습니다. 스크립트를 읽고 제한된 환경에서 스크립트가 수행하는 작업과 수행 방법을 파악해야 합니다.