개인 저장소용 패키지를 빌드하는 데 사용하고 있습니다 equivs-build
. 파일은 잘 설치되지만 apt-get install
파일을 삭제하면 해당 파일이 설치된 전체 폴더 구조를 삭제하려고 합니다.
Equivs 파일에는 다음 줄이 있습니다.
Files: <file to copy> /usr/local/sbin/
실행하면 apt-get remove
아래와 같은 메시지가 뜹니다
"../usr/local 디렉토리가 비어 있지 않으므로 삭제되지 않았습니다."
폴더 /usr/local/sbin
가 삭제됩니다.
이를 방지할 수 있는 방법이 있나요?
답변1
이에 대한 참고자료가 있습니다스택 오버플로dpkg
그 뒤에 기본 도구를 사용하는 맥락에서 apt-get
:1,2하나삼. 매번 동일한 고려 사항이 나타납니다.
- 이것은경고하다요청에 따라 패키지와 해당 디렉터리가 실제로 제거된 경우에만
- ~에 따르면모범 사례, /usr/local은 패키지에 사용하면 안 됩니다.데비안 정책(무엇인가요린 티안패키지에 대해 이야기하시나요? ) 그리고 존경합니다파일 시스템 계층 표준
- 어떤 사람들은 다음과 같은 경험을 합니다.다른 행동대상이 다른 곳에 있을 때(예: /bin VS) 정확히 동일한 삭제 작업이 수행됩니다. /usr/local/bin 또는 /opt
- preinst, prerm, postinst 및 postrm스크립트기술적으로 설치/제거 중에 동작을 변경하는 항목을 포함하는 것이 가능합니다. 하지만 다시 말하지만, /usr/local에 있는 dpkg의 동작은 예외이거나 규칙입니다(빈 최상위 디렉터리 제거, 한 수준으로 제한되지 않음). 디자인이 패키지 및 폴더 소유권의 영향을 받나요 아니면 /usr/local의 패키지에만 영향을 받나요?
마지막으로,대안시간이 지남에 따라 여기에는 당면한 작업을 더 잘 구성하는 것이 포함됩니다.패키지 저장소. 마지막으로동등한 건축다른 방법으로 해야 해갈등패키지 관리 시스템 설계.
답변2
줄 이 입력한 것과 동일하게 보입니까, 아니면 단어 뒤에 콜론()이 Files
누락되어 있습니까 ?:
Files
이 예에서 볼 수 있듯이, Equivs 제어 파일은 다음과 같습니다.
### Commented entries have reasonable defaults.
### Uncomment to edit them.
Section: misc
Priority: optional
Standards-Version: 3.6.2
Package: main-package
Version: 0.0.1
Maintainer: Your Name <[email protected]>
# Pre-Depends: <comma-separated list of packages>
# Depends: <comma-separated list of packages>
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
Architecture: all
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
Files: /home/myuser/main-package.conf /etc/main-package.conf
Description: <short description; defaults to some wise words>
long description and info