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
- Archiwa
- Brak ocen.
.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.
- 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ącympkgtrans, ponieważ typy źródła i miejsca docelowego pakietu wpływają na polecenie. - 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. - 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 wstage/usr/share/example. Usuń pliki przeznaczone wyłącznie dla Solaris i zastąp niezgodne pliki wykonywalne kompilacjami dla Linux. - 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
- 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.
| 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