Převod souboru TAR.XZ do DEB
Sestavte Debian package ze zdrojového archivu TAR.XZ pomocí Debian tools, stagingu, metadat a kontrol kompatibility.
Převádějte soubory TAR.XZ online
Pro převod TAR.XZ do DEB zatím vlastní online konvertor nemáme, ale soubory TAR.XZ můžete online převést do těchto formátů:
Chcete převádět TAR.XZ na DEB?
Dejte nám vědět. Podle zájmu vybíráme, které převody přidáme jako další.
Jak převést soubor tar.xz do formátu deb
- Komprimované soubory
- Dosud nehodnoceno.
Systém založený na Debianu může vyžadovat instalační balíček .deb, pokud je software distribuován pouze jako archiv .tar.xz. Obvykle jde o úlohu zabalení, nikoli o přímou konverzi formátu, protože použitelný DEB potřebuje metadata Debianu, instalační cesty, závislosti a někdy také skripty správce balíčku.
Co je formát TAR.XZ
.tar.xz kombinuje archiv TAR s kompresí XZ. TAR ukládá soubory a adresáře; XZ komprimuje výsledný archiv. Projekty pro Linux a Unix jej běžně používají pro zdrojový kód, dokumentaci, příklady konfigurace a příležitostně předpřipravený software.
GNU tar, nástroje XZ, 7-Zip, KDE Ark a GNOME Archive Manager jej dokážou rozbalit. Před volbou způsobu sestavení archiv zkontrolujte:
tar -tJf program.tar.xztar -xJf program.tar.xz -C work
Zdrojový archiv může obsahovat existující adresář debian/ nebo může být součástí zdrojového balíčku Debianu spolu se soubory jako .dsc a debian.tar.xz. Může také obsahovat hotový .deb; v takovém případě tento balíček rozbalte nebo zkopírujte namísto jeho opětovného sestavení.
Co je formát DEB
DEB je binární balíček Debianu, který používají dpkg, apt, Ubuntu Software, KDE Discover a kompatibilní nástroje. Interně jde o archiv obsahující řídicí archiv s metadaty balíčku a datový archiv se soubory instalovanými v systému. Metadata mohou určovat název balíčku, verzi, architekturu, popis, závislosti, kontrolní součty, konfigurační soubory a skripty správce balíčku.
Balíčky DEB poskytují instalaci pomocí správce balíčků, správu závislostí, sledování verzí, aktualizace a odstraňování v systémech Debian, Ubuntu, Linux Mint a souvisejících distribucích. Obecně je nelze zaměňovat s balíčky RPM pro Fedora ani s balíčky Arch Linuxu a balíček sestavený pro jednu verzi distribuce může na jiné vyžadovat nekompatibilní knihovny.
Sestavení DEB z existujícího balíčkování Debianu
Pokud rozbalený zdrojový kód obsahuje debian/control a debian/rules, použijte nástroje pro balíčkování Debianu namísto ručního vytváření archivu:
sudo apt update
sudo apt install build-essential debhelper devscripts dpkg-dev
mkdir work
tar -xJf program.tar.xz -C work
cd work/program-version
sudo apt build-dep .
dpkg-buildpackage -us -uc -b
apt build-dep vyžaduje použitelné zdrojové repozitáře Debianu v konfiguraci APT. Výsledný binární balíček se obvykle umístí do nadřazeného adresáře. Lokální balíček nainstalujete pomocí:
sudo apt install ../program_version_arch.deb
APT tak může vyřešit dostupné závislosti; samotný příkaz dpkg -i chybějící závislosti neřeší. Pokud je archiv úplným zdrojovým balíčkem Debianu, může být vhodnější sestavení z jeho souboru .dsc pomocí dpkg-source -x než rozbalení pouze souboru .tar.xz.
Zabalení projektu bez metadat Debianu
Konvenční zdrojový projekt může používat jiné příkazy než ./configure a make; postupujte podle jeho souboru README, INSTALL nebo dokumentace k sestavení. U projektu, který podporuje konvenční příkazy, připravte instalaci do dočasného adresáře namísto přímého zápisu do běžícího systému:
tar -xJf program.tar.xz
cd program-version
./configure --prefix=/usr
make
rm -rf "$PWD/pkg"
make DESTDIR="$PWD/pkg" install
Ve stromu připraveném k instalaci vytvořte řídicí soubor Debianu. Nahraďte každou ukázkovou hodnotu a použijte architekturu uvedenou cílovým systémem:
mkdir -p pkg/DEBIAN
cat > pkg/DEBIAN/control <<'EOF'
Package: program
Version: 1.0.0
Section: utils
Priority: optional
Architecture: amd64
Maintainer: Package Maintainer <maintainer@example.org>
Depends: libc6
Description: Short program description
A longer package description uses an indented continuation line.
EOF
fakeroot dpkg-deb --build pkg program_1.0.0_amd64.deb
Pomocí dpkg --print-architecture zjistíte nativní architekturu. Architecture: all nastavte pouze pro obsah nezávislý na architektuře, například skripty nebo dokumentaci; kompilované programy potřebují architekturu, pro kterou byly sestaveny. Výslovně uveďte všechny závislosti na běhových knihovnách a programech, protože dpkg-deb je nedokáže spolehlivě odvodit z libovolných binárních souborů.
FPM může po přípravě souborů automatizovat jednoduché balíčkování adresáře do DEB:
fpm -s dir -t deb -n program -v 1.0.0 -a amd64 -C pkg usr
FPM automaticky neurčuje správné závislosti ani integraci s Debianem. Služby, položky plochy, zpracování konfigurace, spouštěče, soubory s autorskými právy, překlady a skripty správce balíčku mohou vyžadovat další práci na balíčkování.
Desktopové a online nástroje
7-Zip, KDE Ark a GNOME Archive Manager jsou vhodné k prohlížení nebo rozbalování souborů TAR.XZ, ale nedokážou převést libovolné zdrojové soubory na platný instalovatelný DEB. Pro projekt s metadaty Debianu použijte dpkg-buildpackage a pro záměrně připravený balíček dpkg-deb nebo FPM.
Online převodník není pro tuto konverzi vhodný. Webová služba nedokáže spolehlivě zkompilovat zdrojový kód, určit běhové závislosti, zachovat vlastnictví a oprávnění Unixu ani ověřit instalační skripty. Online převodníky archivů mohou znovu zabalit bajty, ale výsledkem nemusí být balíček Debianu a nahrání proprietárního nebo dosud nevydaného zdrojového kódu představuje riziko úniku informací.
Kontrola kompatibility před instalací
Vygenerovaný balíček před instalací zkontrolujte:
dpkg-deb --info program_1.0.0_amd64.deb
dpkg-deb --contents program_1.0.0_amd64.deb
lintian program_1.0.0_amd64.deb
Otestujte jej v dočasném virtuálním počítači s Debianem nebo Ubuntu, který používá stejnou verzi a architekturu jako cílový systém:
sudo apt install ./program_1.0.0_amd64.deb
Balíček vytvořený pomocí make install může postrádat integraci se systémem, aktualizace, logiku odstraňování, definice služeb, položky nabídek, oprávnění a cesty specifické pro danou distribuci. Sestavení z upstreamového balíčkování Debianu nebo ze zdrojového balíčku cílové distribuce obecně poskytuje přesnější metadata než zabalení libovolného instalačního stromu TAR.XZ.
TAR.XZ vs DEB: srovnání formátů
Jak si formáty TAR.XZ a DEB stojí v nejdůležitějších vlastnostech pro tento převod.
| Vlastnost | .TAR.XZ tar archive compressed with XZ | .DEB Debian binary package |
|---|---|---|
| Komprese | Obojí | Obojí |
| Poměr komprese | Velmi vysoký | Střední |
| Šifrování | Ne | Ne |
| Rozdělené archivy | Ne | Ne |
| Obnovovací záznam | Ne | Ne |
| Podpora operačního systému | Široká | Široká |
| Typická velikost souboru | Malé | Malé |
| Otevřený standard | Ano | Ano |
| Zavedeno | 2009 | 1995 |
| Vývojář | LZMA SDK / GNU tar ecosystem | Debian Project |
| MIME typ | application/x-xz | application/vnd.debian.binary-package |
Informace o příponách a typech souborů poskytuje File-Extensions.org
Navrhovaný software pro převod tar.xz do deb
Často kladené otázky
Lze převést soubor TAR.XZ přímo na DEB?
Ne, pouhé opětovné zabalení nestačí; DEB je potřeba vytvořit z připravených souborů a metadat balíčku. Obsah TAR.XZ je nutné uspořádat pro instalaci a balíček musí obsahovat údaje, jako jsou název, verze, architektura a závislosti.
Zachová DEB původní soubory a strukturu složek archivu TAR.XZ?
Ne nutně; DEB obsahuje soubory vybrané a uspořádané pro instalaci, nikoli automaticky kopii původního archivu. Zdrojové soubory nebo dokumentace mohou být vynechány a cesty se mohou lišit od struktury složek archivu.
Proč se nedaří vytvořit DEB z TAR.XZ?
Častou příčinou jsou chybějící nebo neúplná metadata balíčku Debian, například povinné informace control. Vytváření může také selhat, pokud jsou soubory připravené ve špatných umístěních nebo deklarovaná architektura a závislosti neodpovídají obsahu.
Bude DEB fungovat na každém systému založeném na Debianu?
Ne; kompatibilita závisí na architektuře balíčku, závislostech a distribuci a verzi cílového systému. Samotný původní archiv TAR.XZ neurčuje, na kterých systémech lze výsledný balíček nainstalovat.