Jaki jest najprostszy Przewodnik po opakowaniach Debiana?

150

Poszedłem na wiki Ubuntu, ale pomyliłem się, było zbyt wiele sposobów. Proszę, powiedz mi prosty przewodnik po pakietach Debiana.

akshatj
źródło
3
Czy chcesz tworzyć pakiety na własny użytek, na konkretnym komputerze lub do użytku innych?
andol
1
W jakim języku chcesz zainstalować oprogramowanie?
Umang,
4
Mam ten sam problem. Większość samouczków i przewodników zaczyna się od „get upstream tarball”. Od tego momentu jesteśmy zagubieni. Mamy prostą rzecz, którą chcemy wdrożyć, nie ma wcześniejszego archiwum, nie ma kodu źródłowego. to tylko plik wojenny, niektóre skrypty i niektóre pliki jar. Na czym polega upstream i czy ktoś widział przewodnik NIE korzystający z niego, który jest wyczerpujący (np. Dotyczy problemów użytkowników)
John Little
2
Pójdę po ten, który zamieściłem na StackOVerflow.
Jeśli chcesz stworzyć „wirtualne pakiety” (zależności grupowe razem), warto rzucić
Rolf

Odpowiedzi:

103

To jest dobre HOWTO do tworzenia podstawowego .debpliku. Nadaje się do tworzenia .debplików do użytku osobistego, ale nie jest wystarczająco rygorystyczny, jeśli chcesz, aby pakiet był dołączony do Debian / Ubuntu - w tym celu powinieneś przeczytać Przewodnik dla nowych opiekunów Debiana i / lub Przewodnik po opakowaniach Ubuntu (które moim zdaniem „ już próbowałem).

Dobrym narzędziem do sprawdzania .debzgodności pliku jest lintian(instalowalny z repozytoriów).

W czatach Ask Ubuntu odbyły się dwie sesje.

Podstawy pakowania na Ubuntu (Opakowanie: część 1)

Opakowania Ubuntu dla PPA Launchpad (opakowanie: część 2)

dv3500ea
źródło
To ładnie kompiluje to, co jest potrzebne, aby zacząć od pakowania, ale w HOWTO brakuje mi informacji, aby dołączyć ikonę aplikacji do pliku deb (i nie znalazłem nic na ten temat gdzie indziej). Wszelkie wskazówki, jak to zrobić?
nightcod3r
14

Z jakimi częściami masz problem? Chociaż skomplikowane, przewodnik wydawał się całkiem jasny, gdy go śledziłem.

Szybkie podsumowanie:

  • Wyodrębnij źródło .tar.gz
  • Biegać dh_make
  • Edytuj pliki debian
  • Uruchom debuild
Nathan Osman
źródło
3
Co mnie pomyliło, czy ten proces jest taki sam bez względu na język źródłowy lub strukturę katalogów?
Seth
9
Najważniejsze jest to, że nie mamy pliku .tar.gz. chcemy spakować napisaną przez nas aplikację. Wydaje się, że żaden przewodnik tego nie obejmuje, wszystkie zaczynają się od „archiwum archiwum”, którego nie mamy.
John Little
@JohnLittle ta odpowiedź może być pomocna: askubuntu.com/a/27731/5
Nathan Osman
1
Co z długoterminowym, powtarzalnym pakowaniem? Czy muszę za każdym razem wykonywać tak długi i skomplikowany proces pakowania?
kravemir,
Jeśli użytkownik nie ma klucza GPG , debuildwystąpi błąd „ debsign: wystąpił błąd gpg! Przerwanie .... ”.
agc
10

Możesz nawet użyć dpkg-debdo tworzenia prostych pakietów.

Oto fajny samouczek od Ubuntuforums .

Searock
źródło
5

Najłatwiejszym sposobem na spakowanie czegoś jest użycie checkinstall .

e8johan
źródło
4
checkinstall zapewnia szybki sposób na zbudowanie pakietu binarnego debin (.deb) ze źródłowej metody instalacji. Jednak nie zapewnia odpowiedniego pakietu debian (zbudowanego z pakietu źródłowego debian).
João Pinto,
O rany ... Musiałem użyć tego PRZED kompilacją ... to jak godziny kompilacji.
Piotr Kula,
5

Pierwotnie opublikowany na StackOverFlow , ten przewodnik dotyczy wstępnie skompilowanego lub zinterpretowanego oprogramowania:

Używa się właściwego sposobu budowania pakietu deb, dpkg-buildpackageale czasem jest to trochę skomplikowane. Zamiast tego możesz użyć, dpkg -b <folder>a to stworzy twój pakiet Debiana.

Oto podstawy tworzenia pakietu Debian przy dpkg -b <folder>użyciu dowolnego pliku binarnego lub dowolnego skryptu, który uruchamia się automatycznie bez potrzeby ręcznej kompilacji (Python, Bash, Pearl, Ruby):

  1. Utwórz pliki i foldery, aby odtworzyć następującą strukturę:

    ProgramName-Version/
    ProgramName-Version/DEBIAN
    ProgramName-Version/DEBIAN/control
    ProgramName-Version/usr/
    ProgramName-Version/usr/bin/
    ProgramName-Version/usr/bin/your_script
    

    Skrypty umieszczone w /usr/bin/są wywoływane bezpośrednio z terminala, zauważ, że nie dodałem rozszerzenia do skryptu. Możesz również zauważyć, że struktura pakietu deb będzie strukturą programu po jego zainstalowaniu. Więc jeśli zastosujesz się do tej logiki, jeśli twój program ma jeden plik, możesz bezpośrednio umieścić go pod ProgramName-Version/usr/bin/your_script, ale jeśli masz wiele plików, powinieneś umieścić je pod ProgramName-Version/usr/share/ProgramName/all your filesi umieścić tylko jeden plik, /usr/bin/który wywoła twoje skrypty/usr/share/ProgramName/

  2. Zmień wszystkie uprawnienia do folderu na root:

     chown root:root -R /path/to/ProgramName-Version  
    
  3. Zmień uprawnienia skryptu:

     chmod 0755 /path/to/the/script
    
  4. Wreszcie możesz uruchomić: dpkg -b /path/to/the/ProgramName-Versiona Twój pakiet deb zostanie utworzony! (Możesz także dodać skrypty post / pre inst i wszystko, co chcesz, działa jak zwykły pakiet Debiana)

Oto przykład controlpliku. Wystarczy skopiować / wkleić go do pustego pliku o nazwie „control” i umieścić w folderze DEBIAN.

Package: ProgramName
Version: VERSION
Architecture: all
Maintainer: YOUR NAME <EMAIL>
Depends: python2.7, etc , etc,
Installed-Size: in_kb
Homepage: http://foo.com
Description: Here you can put a one line description.This is the short Description.
 Here you put the long description, indented by 1 space.
Karel
źródło
3

Nie, najprostszym i najczystszym przewodnikiem po opakowaniach na tym świecie jest

Pakowanie aplikacji Java dla Ubuntu i innych Debiana

Kilka dni temu dla mojej pierwszej aplikacji utworzyłem pakiet DEB, wykonując ten samouczek. Bardzo jasne, a moja aplikacja została pomyślnie zapakowana. Tak, przynajmniej jest to dla mnie najprostsze.

Możesz to porównać z Przewodnikiem po pakietach Debiana.

Ade Malsasa Akbar
źródło
3
„Prosty” nie oznacza „kompletny”. Istnieje wiele zasad, których podstawowy samouczek dotyczący pakowania .deb nie będzie obejmował różnych typów programów, dlatego też pakowanie nie jest tak proste, jak „prosty samouczek”.
Thomas Ward
zdecydowanie proste. Zaczęło się ode mnie i mogłem stworzyć swój pierwszy pakiet debian w ciągu kilku minut. Nadal wiele szczegółów do rozwiązania (złe wiadomości o jakości paczki od lintian), ale świetny punkt wyjścia.
atmelino