Przejdź do treści

Konwertuj PKG na DEB

Przepakuj zawartość Solaris lub macOS PKG do postaci Debian DEB i sprawdź zgodność z Linux.

Konwertuj pliki PKG online

Nie mamy jeszcze dedykowanego konwertera online dla PKG na DEB, ale pliki PKG możesz przekonwertować online na te formaty:

Chcesz przekonwertować PKG na DEB?

Daj nam znać. Kolejne konwersje do dodania wybieramy według zainteresowania.

Jak konwertować pkg do deb

System Debian lub Ubuntu oczekuje oprogramowania w pakiecie .deb, podczas gdy oprogramowanie uzyskane jako .pkg może być przeznaczone dla Solaris lub macOS. Zmiana rozszerzenia nie konwertuje pakietu, ponieważ struktura archiwum, metadane, skrypty, pliki binarne i wymagania systemu operacyjnego różnią się.

Czym jest format PKG

PKG to rozszerzenie używane przez wiele formatów pakietów, a nie jeden uniwersalny standard archiwum. W kontekście Archives odpowiednimi formatami są przede wszystkim pakiety Solaris SVR4 oraz pakiety macOS Installer.

Pakiety Solaris zawierają pliki aplikacji, metadane, takie jak pkginfo i pkgmap, informacje o zależnościach, uprawnienia oraz skrypty instalacyjne. Narzędzia Solaris obejmują pkgmk, pkgtrans i pkgadd. Pakiet Solaris może występować jako pakiet w formacie katalogowym lub jako archiwum datastream.

Pakiety macOS są zazwyczaj tworzone za pomocą productbuild. Ich zawartość może obejmować definicję dystrybucji, pakiety komponentów, skompresowane dane, metadane property-list oraz skrypty instalacyjne macOS. Dane mogą zawierać pliki wykonywalne Mach-O, frameworki, zadania launchd i inne pliki wymagające macOS.

Przed rozpoczęciem konwersji zidentyfikuj źródłowy system operacyjny. Plik .pkg jest pakietem instalacyjnym, a nie informacją, że zawarte w nim programy mogą działać w systemie Linux.

Czym jest format DEB

DEB to natywny binarny format pakietów dla Debian, Ubuntu, Linux Mint i innych dystrybucji opartych na Debianie. Wewnętrznie jest to archiwum ar zawierające metadane kontrolne i archiwum danych; typowe elementy obejmują control.tar.* oraz data.tar.*.

Narzędzia Debian, takie jak dpkg i APT, używają metadanych do rejestrowania nazw pakietów, wersji, architektur, zależności, konfliktów, własności plików oraz skryptów opiekuna. Pakiet DEB jest więc przydatny, gdy system docelowy wymaga pakietowania Debian lub gdy pakiet musi być instalowany z prywatnego repozytorium Debian.

Jak przekonwertować pakiet Solaris PKG

Nie istnieje uniwersalny automatyczny konwerter PKG do DEB. alien konwertuje formaty takie jak RPM i nie zapewnia zgodności dowolnych pakietów Solaris lub macOS z Debianem. Pakiety Solaris należy rozpakować i ponownie spakować, a ich pliki binarne mogą nadal wymagać przebudowania dla systemu Linux.

  1. Pracuj w środowisku Solaris lub użyj środowiska zawierającego narzędzia do pakietowania Solaris. W przypadku pakietu Solaris datastream rozpakuj go do formatu katalogowego za pomocą polecenia takiego jak pkgtrans -x input.pkg /tmp/pkg-extracted. Potwierdź dokładną składnię w podręczniku zainstalowanego systemu dotyczącym pkgtrans, ponieważ typy źródła i miejsca docelowego pakietu wpływają na polecenie.
  2. Sprawdź pkginfo, pkgmap, pliki zależności, dokumentację, uprawnienia oraz skrypty żądań lub instalacyjne. Traktuj skrypty jak kod i nie kopiuj skryptów specyficznych dla Solaris do pakietu Debian bez zmian.
  3. Przygotuj katalog tymczasowy, którego układ będzie odpowiadał docelowym lokalizacjom systemu plików Linux. Na przykład umieść plik wykonywalny w stage/usr/bin, a współdzielone dane w stage/usr/share/example. Usuń pliki przeznaczone wyłącznie dla Solaris i zastąp niezgodne pliki wykonywalne kompilacjami dla Linux.
  4. Utwórz metadane kontrolne Debian w stage/DEBIAN/control. Minimalny przykład:
mkdir -p stage/DEBIAN
cat > stage/DEBIAN/control <<'EOF'
Package: example
Version: 1.0.0
Section: misc
Priority: optional
Architecture: amd64
Maintainer: Package Maintainer <maintainer@example.org>
Description: Example application repackaged for Debian
 Repackaged from a Solaris PKG archive.
EOF
  1. Zbuduj pakiet i sprawdź jego zawartość:
dpkg-deb --build stage example_1.0.0_amd64.deb
dpkg-deb --info example_1.0.0_amd64.deb
dpkg-deb --contents example_1.0.0_amd64.deb

W polu Depends zadeklaruj rzeczywiste nazwy zależności Debian, ustaw Architecture zgodnie z architekturą plików binarnych Linux oraz zachowaj bity wykonywania, własność i wymagane ścieżki konfiguracji. W przypadku utrzymywanego pakietu utwórz drzewo źródłowe Debian za pomocą debhelper i zbuduj je poleceniem dpkg-buildpackage, zamiast polegać na ręcznie utworzonym katalogu DEBIAN. fpm może utworzyć DEB z przygotowanego katalogu za pomocą fpm -s dir -t deb, ale nie tłumaczy plików binarnych, zależności ani semantyki instalacji.

Jak postępować z pakietem macOS PKG

W systemie macOS sprawdź płaski pakiet za pomocą xar -xf input.pkg lub rozwiń go przy użyciu pkgutil. Przed skopiowaniem czegokolwiek do katalogu tymczasowego przeanalizuj dane, pakiety komponentów, metadane dystrybucji i skrypty.

Plik wykonywalny macOS, framework, agent uruchamiany przy logowaniu lub integracja systemowa nie stanie się programem Linux tylko dlatego, że zostanie umieszczony w archiwum DEB. Ponownie spakuj macOS PKG tylko wtedy, gdy zawiera dane zgodne z Linux lub gdy dysponujesz kodem źródłowym, z którego można zbudować wersję dla Linux. W przeciwnym razie uzyskaj wydanie Linux od dostawcy i spakuj je zamiast tego.

Ograniczenia zgodności i testowania

Ponowne pakowanie zmienia kontener, a nie program. Pliki binarne Solaris zależą od interfejsów Solaris, a pliki binarne macOS zależą od Darwin i frameworków macOS. Pakiet DEB może zainstalować się pomyślnie, podczas gdy jego plik wykonywalny natychmiast zakończy działanie lub nie będzie mieć wymaganych usług i bibliotek.

Przed instalacją przejrzyj każdy skrypt opiekuna, ponieważ skrypty mogą tworzyć użytkowników, włączać usługi, modyfikować konfigurację i zapisywać dane poza ścieżkami danych pakietu. Przetestuj wynik w tymczasowej maszynie wirtualnej lub kontenerze, na przykład za pomocą sudo apt install ./example_1.0.0_amd64.deb, i sprawdź działanie, aktualizacje, usuwanie, zależności, uprawnienia oraz zachowanie usług.

Renomowane usługi internetowe zazwyczaj nie oferują godnej zaufania automatycznej konwersji Solaris- lub macOS-PKG do DEB. Przesyłanie zastrzeżonych pakietów może ujawnić pliki binarne i skrypty instalacyjne, a konwerter internetowy nie rozwiąże problemu niezgodności systemu operacyjnego ani architektury CPU. Zamiast tego używaj lokalnych narzędzi, takich jak pkgtrans, xar, pkgutil, dpkg-deb, debhelper lub fpm.

Porównanie formatu PKG z DEB

Jak formaty PKG i DEB wypadają w porównaniu pod względem najważniejszych cech dla tej konwersji.

Porównanie formatów plików PKG i DEB
Cecha .PKG macOS installer package .DEB Debian binary package
Kompresja Bezstratne Oba
Współczynnik kompresji — Średni
Szyfrowanie Nie Nie
Archiwa wieloczęściowe Nie Nie
Rekord odzyskiwania Nie Nie
Obsługa systemów operacyjnych Ograniczone Szeroki
Typowy rozmiar pliku Duży Mały
Otwarty standard Nie Tak
Wprowadzono — 1995
Twórca Apple Debian Project
Typ MIME — application/vnd.debian.binary-package

Informacje o rozszerzeniach i typach plików zapewnia File-Extensions.org

Dodatkowe formaty dla konwersji pliku
pkg

Konwersja odwrotna

Konwersja do .deb
z innych formatów

Udostępnij w mediach społecznościowych:

Już pobrano

Ten plik został już pobrany. Ze względu na prywatność usunęliśmy go z serwera zaraz po pobraniu, więc nie można go pobrać ponownie. Jeśli potrzebujesz go jeszcze raz, przekonwertuj plik ponownie.