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


13

.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직접 다운로드 내 웹 사이트에 내 소프트웨어 패키지를.


8
거룩한 모든 것을 사랑하기 때문에 파일 이름에 공백이나 괄호를 사용 하지 마십시오 . 그들은 명령 행에서 그것들을 다루는 것이 고통스럽고 파일 처리에 잠재적 인 버그의 원인이됩니다.
Austin Hemmelgarn

답변:


26

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

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

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

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


"안정적인 URL을 다운로드에 사용할 수 있습니다"-Google과 Valve가 리디렉션에 대해 들어 본 적이 없다면 놀랍습니다.
OrangeDog

@OrangeDog도 그렇게 할 것입니다. (리디렉션없이) 고정 다운로드를 사용하면 리다이렉트 할 때 여전히 간단하게 유지됩니다 (리디렉션 할 때 디스크에 사용되는 최종 파일 이름은 불행히도 다운로드에 사용 된 도구에 따라 다릅니다).
Stephen Kitt

10

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

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

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