Czy zmiana nazwy pliku .deb według standardów jest bezpieczna?


13

Ustalona struktura .debnazwy pliku to package_version_architecture.deb.
Zgodnie z tym ustępem:

Niektóre pakiety nie mają struktury nazw package_version_architecture.deb. Pakiety o nazwach dpkg-name będą miały tę strukturę. Zasadniczo nie będzie to miało wpływu na sposób instalacji pakietów przez dselect / dpkg, ale inne narzędzia instalacyjne mogą zależeć od tej struktury nazewnictwa.

Pytanie:

Jednak, czy są jakieś realne sytuacje, gdy zmiana nazwy .debpliku pakietu jest bardzo un zalecane? Czy to normalna praktyka, aby podać niestandardową .debnazwę pliku dla mojego oprogramowania?

Przykład:

  • My Program for Linux v1.0.0 (Pro).deb - niestandardowe nazewnictwo
  • my-program_1.0.0-1_amd64.deb - prawidłowe oficjalne nazewnictwo

Uwaga:

Ja nie planuje stworzyć repo, ja tylko hosting .debpakiet mojego oprogramowania na mojej stronie do bezpośredniego pobrania.


8
Proszę, dla miłości wszystkich rzeczy świętych nie używaj spacji ani nawiasów w nazwach plików. Sprawiają, że obsługa ich z wiersza poleceń jest uciążliwa i są potencjalnym źródłem błędów w obsłudze plików.
Austin Hemmelgarn,

Odpowiedzi:


26

Z biegiem lat zgromadziłem dużą liczbę .debpaczek o niestandardowych nazwach i nie pamiętam, żebym miał problemy. „Znane” pakiety o niestandardowych nazwach, które ludzie mogą obecnie spotkać, obejmują google-chrome-stable_current_amd64.debi steam.deb. (W obu przypadkach stała nazwa bez wersji zapewnia, że ​​do pobierania można użyć stabilnego adresu URL, a instrukcji instalacji - stabilną nazwę).

Jednak nie pamiętam, żeby biegać po nich ze spacjami w nazwach; nie powinno to również powodować problemów z narzędziami, ale może powodować zamieszanie dla użytkowników (ponieważ będą musieli zacytować nazwę pliku lub uciec ze spacji, jeśli używają narzędzi opartych na powłoce).

Należy również zauważyć, że użycie niestandardowej nazwy, która nie jest taka sama jak nazwa pakietu (zapisana w controlpliku), może również powodować zamieszanie, np. Przy próbie usunięcia pakietu (ponieważ nazwa pakietu nie będzie taka sama jak nazwa użyta do jej instalacji).

W związku z tym, jeśli nie chcesz trzymać się kanonicznej nazwy, poleciłbym coś podobnego my-program.deblub my-program_amd64.deb(w zależności od tego, czy chcesz obsługiwać wiele architektur). Możesz również uczynić z tego dowiązanie symboliczne do wersji pliku, jeśli chcesz zezwolić na pobieranie starszych wersji.


„do pobierania można użyć stabilnego adresu URL” - byłbym zaskoczony, gdyby Google i Valve nigdy nie słyszały o przekierowaniach.
OrangeDog,

@OrangeDog tak samo ja. Posiadanie stałego pobierania (bez przekierowania) wciąż upraszcza sprawę (ponieważ podczas przekierowywania ostateczna nazwa pliku używana na dysku różni się w zależności od narzędzia użytego do pobrania).
Stephen Kitt

10

Nazwy plików są standaryzowane głównie na potrzeby oprogramowania do obsługi archiwów i lokalnej pamięci podręcznej.

W dawnych czasach, zanim m68karchitektura została dodana do Debiana, w nazwach plików używano „ pakiet _ wersja .deb”, bez żadnych problemów. Nazwę architektury dodano do nazwy pliku, gdy oprogramowanie archiwum wymagało przechowywania i386i m68kpakietów tego samego pakietu i wersji w tym samym katalogu. Ponieważ lista pakietów zawsze zawierała zarówno długie, jak i 8.3 nazwy plików , które można wdrożyć bez rozbijania klientów.

Dpkg w ogóle nie przejmuje się nazwami pakietów. Podczas uruchomień instalacyjnych APT generuje katalog ze wszystkimi plikami pakietu dla tego uruchomienia instalacyjnego, a każdy plik będzie miał numer w bieżącym uruchomieniu dodany do nazwy pliku (tj. Jeśli zainstalujesz pakiet w foowersji 1 i pakiet w barwersji 2, w foozależności od , apt przejdzie 0-bar_2_all.debi 1-foo_1_amd64.debdo dpkg).

APT ogólnie zakłada, że ​​nazwy są unikalne do celów buforowania. Jeśli użyjesz nazwy ponownie, użytkownicy, którzy mają już ten plik w pamięci podręcznej, podejmą próbę wznowienia pobierania, jeśli nowy plik jest większy, co spowoduje pozostawienie nieprawidłowego pliku, który zostanie następnie odrzucony, ponieważ nie przejdzie testu sumy kontrolnej. Ten błąd jest jednak pokazywany użytkownikowi, który musi ponownie uruchomić instalację.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.