[unix] 표준으로 명명 된 .deb 파일의 이름을 바꾸는 것이 안전합니까?

.deb파일 이름 의 확립 된 구조 는 package_version_architecture.deb입니다. 단락
에 따르면 :

일부 패키지는 이름 구조를 따르지 않습니다
package_version_architecture.deb. dpkg-name으로 이름이 바뀐 패키지는이 구조를 따릅니다. 일반적으로 이는 dselect / dpkg로 패키지를 설치하는 방법에는 영향을 미치지 않지만 다른 설치 도구는이 이름 지정 구조에 따라 달라질 수 있습니다.

질문:

그러나 .deb패키지 파일 이름 바꾸기를 권장 하지 않는 실제 상황 이 있습니까? .deb소프트웨어에 사용자 정의 파일 이름 을 제공하는 것이 일반적인 방법 입니까?

예:

  • My Program for Linux v1.0.0 (Pro).deb — 커스텀 네이밍
  • my-program_1.0.0-1_amd64.deb — 적절한 공식 명명

노트 :

아니 난 그냥 호스팅있어하는 REPO를 만들 계획을 .deb직접 다운로드 내 웹 사이트에 내 소프트웨어 패키지를.



답변

몇 년 동안, 나는 많은 수의 축적 .deb 비표준 이름을 가진 패키지를 , 어떤 문제가 발생했는지 기억하지 못합니다. 요즘 사람들이 접할 수있는 비표준 이름의 “유명한”패키지에는 google-chrome-stable_current_amd64.deband가 포함됩니다 steam.deb. 두 경우 모두 고정 된 버전이없는 이름은 안정적인 URL을 다운로드에 사용할 수 있고 안정적인 이름을 설치 지침에 사용할 수있게합니다.

그러나 나는 이름에 공백이있는 것을 기억 하지 않습니다 . 도구에 문제를 일으키지 않아야하지만 사용자가 혼동을 일으킬 수 있습니다 (쉘 기반 도구를 사용하는 경우 파일 이름을 인용하거나 공백을 피해야하기 때문에).

주목해야 할 또 다른 사항은 패키지 이름과 동일하지 않은 비표준 이름을 사용한다는 것입니다. control 파일을) 할 수도 혼란의 원인, 예를 들어 패키지 이름이되지 않기 때문에 (패키지를 제거하려고 할 때 설치에 사용 된 이름과 동일).

당신은 내가 같은 것을 추천 할 것입니다 정식 이름에 충실하지 않으려면 모든이의 결과로, my-program.deb또는 my-program_amd64.deb(여러 아키텍처를 지원할지 여부에 따라). 이전 버전을 다운로드하려면 버전이 지정된 파일 이름으로 심볼릭 링크를 만들 수도 있습니다.


답변

파일 이름은 주로 아카이브 유지 관리 소프트웨어 및 로컬 캐시의 이점을 위해 표준화되었습니다.

예전에는 m68k데비안에 아키텍처를 추가 하기 전에 파일 이름이 ” package _ version .deb”로 문제없이 사용되었습니다. 아카이브 소프트웨어 가 동일한 디렉토리에 동일한 패키지 및 버전의 패키지 를 저장 i386하고 m68k패키지 해야 할 때 파일 이름에 아키텍처 이름이 추가되었습니다 . 패키지 목록에는 항상 긴 파일 이름과 8.3 파일 이름이 모두 포함되어 있으므로 클라이언트를 중단하지 않고 구현할 수 있습니다.

Dpkg는 일반적으로 패키지의 파일 이름을 전혀 신경 쓰지 않습니다. 설치를 실행하는 동안, APT이 설치 실행에 대한 모든 패키지 파일과 디렉토리를 생성하고, 각 파일 (파일 이름 앞에 추가 현재 실행에서 수있을 것이다 즉 당신은 패키지 설치하는 경우 foo버전 1 및 패키지 bar버전 2 foo에 따라 달라집니다 , APT가 통과 할 0-bar_2_all.deb1-foo_1_amd64.deb) dpkg를 할 수 있습니다.

APT는 일반적으로 이름이 캐싱 목적으로 고유하다고 가정합니다. 이름을 다시 사용하는 경우 캐시에이 파일이있는 사용자는 새 파일이 더 큰 경우 이미 다운로드를 재개하려고 시도하므로 체크섬 테스트에 실패하면 잘못된 파일이 남게됩니다. 그러나이 오류는 사용자에게 표시되며 설치 실행을 다시 시작해야합니다.


답변