Okna.  Wirusy.  Laptopy.  Internet.  Biuro.  Narzędzia.  Kierowcy

Często istnieje potrzeba zbudowania pakietu z pewnymi plikami, z których nic nie da się skompilować. W moim przypadku są to najczęściej samodzielnie napisane skrypty bashowe, plik z publicznymi kluczami ssh... Innym ciekawym pomysłem jest także spakowanie archiwów.

W poniższym przykładzie utworzymy taki pakiet deb z trzema smakowitymi rzeczami:
1) pliki konfiguracyjne nginx z naszego serwera
2) plik z kluczami publicznymi do autoryzacji właścicieli części prywatnej tych kluczy na serwerze jako root
3) skrypt /usr/bin/ourscript.sh (w zasadzie bez względu na to, co robi)

Zasada jest ta sama, po prostu wygodnie jest mi pokazać trzy przykłady na raz. Pakiet będzie nosił nazwę nginxsuperconfig

Przewidywanie pytań „po co Ci fakeroot, skoro robisz wszystko jako root?” Wygodny. A co najważniejsze - prosto i szybko.

Zacznijmy od utworzenia niezbędnych katalogów i skopiowania potrzebnych plików do tej struktury. Katalog DEBIAN musi być dokładnie zapisany wielkimi literami. Pozostałe katalogi to odtworzenie struktury potrzebnych nam plików z warunkowym rootem w postaci katalogu /root/builder/nginxsuperconfig/. Oznacza to, że wszystko, co znajduje się w tym katalogu (z wyjątkiem DEBIANA), zostanie po prostu rozpakowane do katalogu głównego. To tak, jakbyś utworzył archiwum tar z zawartością tego katalogu i rozpakował go do katalogu głównego.
root@builder:~# mkdir -p /root/builder/nginxsuperconfig/DEBIAN
root@builder:~# mkdir -p /root/builder/nginxsuperconfig/etc
root@builder:~# mkdir -p /root/builder/nginxsuperconfig/usr/bin
root@builder:~# mkdir -p /root/builder/nginxsuperconfig/root/.ssh
root@builder:~# cp -r /etc/nginx /root/builder/nginxsuperconfig/etc
root@builder:~# cp /usr/bin/ourscript.sh /root/builder/nginxsuperconfig/usr/bin/
root@builder:~# cp /root/.ssh/authorized_keys /root/builder/nginxsuperconfig/root/.ssh/

Teraz musimy napisać pliki opisujące właściwości pakietu. Wymagany jest tylko plik DEBIAN/control. Jako przykład napiszę też kilka skryptów - jeden z nich zostanie wykonany przed instalacją pakietu, drugi - po instalacji, a jeszcze jeden - podczas usuwania pakietu.

Napiszmy plik kontrolny:
root@builder:~# edytor /root/builder/nginxsuperconfig/DEBIAN/control
Wymienię wymagane pola. Tak naprawdę można tam napisać wiele rzeczy, ale lepiej poszukać w Internecie:
Pakiet: nginxsuperconfig
Wersja: 1.0-1
Sekcja: różne
Priorytet: dodatkowy
Opiekun: inkvizitor68sl
Architektura: wszystko
Zależy: nginx, openssh-server, bash
Opis: Przykładowy pakiet
Pakiet z konfiguracjami nginx, kluczami ssh, przykładowym skryptem.

Trochę skomentuję.
Pakiet — nazwa pakietu.
Wersja - wersja. „Numer kompilacji” piszemy za pomocą łącznika. Na przykład, jeśli nieznacznie poprawiłeś zawartość pliku, ale wersja pakietu nie uległa zmianie. W w tym przypadku Sami decydujemy, jaką wersję posiadamy, więc nie musisz się martwić i zawsze instaluj wersję 1
Sekcja - w przypadkach omówionych w przykładzie najbardziej odpowiednia jest misc
Priorytet - podobny, odpowiedni jest dodatkowy
Opiekun - Twoje imię/pseudonim i e-mail
Zależy - w najprostszym przypadku podajemy nazwy pakietów, oddzielone przecinkami, które muszą zostać zainstalowane, aby Twój pakiet działał. W naszym przypadku - nginx (konfigurujemy dla niego konfigurację), openssh-server (po co nam klucze, skoro nie ma serwera ssh?), bash, bez którego nasz skrypt nie uruchomi się.
Opis - ciąg znaków z krótki opis pakiet (nie więcej niż 70 znaków). Następujące linie są pełny opis pakiet. Przełamanie wiersza – kropka.

Teraz utwórzmy niezbędne skrypty.
Wykonane przed montażem:
root@builder:~# edytor /root/builder/nginxsuperconfig/DEBIAN/preinst
#!/bin/bash
mv /etc/nginx /etc/nginx.bak
mv /root/.ssh/authorized_keys /root/.ssh/authorized_keys.old

Wykonane po instalacji:
root@builder:~# edytor /root/builder/nginxsuperconfig/DEBIAN/postinst
#!/bin/bash
/etc/init.d/nginx uruchom ponownie
chmod +x /usr/bin/ourscript.sh

Wykonane po usunięciu:
root@builder:~# edytor /root/builder/nginxsuperconfig/DEBIAN/postrm
#!/bin/bash
rm -r /etc/nginx
mv /etc/nginx.bak /etc/nginx
rm /root/.ssh/authorized_keys
mv /root/.ssh/authorized_keys.old /root/.ssh/authorized_keys

Możesz także utworzyć skrypt, który będzie wykonywany przed usunięciem:
root@builder:~# edytor /root/builder/nginxsuperconfig/DEBIAN/prerm

Generalnie wszystko jest gotowe do zbudowania pakietu:
root@builder:~# cd /root/builder/
root@builder:~# fakeroot dpkg-deb --build nginxsuperconfig

Otrzymamy plik nginxsuperconfig.deb. Dobrym pomysłem jest także zmiana jego nazwy, tak aby tytuł zawierał wersję:
root@builder:~# mv nginxsuperconfig.deb nginxsuperconfig_1.0-1.deb

To w zasadzie wszystko. Przypominam, że to najprostszy przykład. Nie postawiłem sobie zadania napisania kolejnego ogromnego, niezrozumiałego podręcznika o składaniu pakietów. Starałem się opisać dokładnie najprostszy sposób zbuduj własny pakiet deb z danymi. O tak, nie zapominaj, że w ten sposób możesz zbudować metapakiet użytek osobisty. Oznacza to, że pakiet sam w sobie niczego nie zawiera, ale jego zależności zapewniają wszystko, czego potrzebujesz.
Myślę, że wiesz, gdzie wysłać pytania =)

Instalacja pakietu checkinstall nie powinna być zbyt trudna. W systemach operacyjnych korzystających z pakietów DEB instalacja odbywa się za pomocą polecenia:

# sudo apt-get install sprawdź instalację

W system operacyjny przy użyciu pakietów RPM instalacja pakietu checkinstall odbywa się za pomocą polecenia:

# sudo obr/min - sprawdzam instalację

Jeśli taki pakiet nie zostanie znaleziony w Twoim systemie operacyjnym, powinieneś odwiedzić tę stronę strona główna projektu i pobierz wersję wymaganą dla swojej dystrybucji:

http://checkinstall.izto.org/download.php

Przejdź do katalogu z kodem źródłowym programu

Przejście do katalogu z kodem źródłowym programu jest dość proste i nie powinno sprawić żadnych trudności.

Pragnę przypomnieć o bardzo wygodne narzędzie wiersz poleceń Linux – klucz PATKA. Przycisk PATKA umożliwia automatyczne dodawanie nazw długich katalogów i plików. Wystarczy wpisać pierwsze znaki nazwy katalogu/pliku i nacisnąć klawisz PATKA, który automatycznie doda pełne imię i nazwisko.

Prawie wszystkie źródła są dystrybuowane w archiwach tego formatu tar.gz. Aby rozpakować archiwum, wpisz polecenie:

Konfigurujemy źródła dla Twojego systemu operacyjnego

Mówiąc najprościej, jest to proces „dostrajania” kodu źródłowego dla konkretnego systemu operacyjnego. Ten proces tworzy plik opisujący konfigurację. Konfiguracja źródła zwykle odbywa się za pomocą prostego polecenia:

To polecenie nie powoduje żadnych zmian w systemie operacyjnym, a zatem nie spowoduje jego uszkodzenia w żaden sposób.

Ten etap jest najbardziej pracochłonny, ponieważ konieczne jest zainstalowanie wszystkiego dodatkowe pakiety, od którego zależy kod źródłowy skompilowanego programu. Jeśli podczas wykonywania tego polecenia na ekranie pojawi się komunikat o błędzie i proces konfiguracji zostanie zatrzymany, oznacza to, że w systemie brakuje jakiegoś zależnego pakietu.

Na przykład wystąpił błąd podczas konfiguracji Pidgina:

sprawdzam GTK... Tak
sprawdzam PANGO... Tak
sprawdzam X11... Tak
sprawdzanie GTKSPELL... NIE
NIE
skonfiguruj: błąd:
Nie znaleziono nagłówków programistycznych GtkSpell.
Użyj opcji --disable-gtkspell, jeśli jej nie potrzebujesz.

Na powyższym zestawie widać, że GTK, PANGA, X11 spełniają wymagania skompilowanego kodu źródłowego ( Tak), a sprawdzenie GTKSPELL zwróciło wartość NIE. Najprawdopodobniej w tym przykładzie musisz zainstalować libgtkspell-dev.

Z tego przykładu widać, że sprawa nie jest aż tak skomplikowana. Jeżeli podczas procesu konfiguracji nie wystąpiły żadne błędy, proces uznaje się za zakończony pomyślnie.

Kompilacja źródeł

Kompilacja kodu źródłowego jest procesem „automatycznym”, pod warunkiem pomyślnego wykonania poprzedniego punktu.

Jeśli błędy nadal występują, najprawdopodobniej jest to problem kod źródłowy. Należy umieścić część wierszy wyjściowych zawierających błąd w dowolnej wyszukiwarce i sprawdzić wynik wyszukiwania. Społeczność internetowa mogła już spotkać się z tym błędem.

Idź pięknym językiem. Jedną z jego supermocy jest możliwość skompilowania wszystkiego w jeden plik binarny. Jest to bardzo wygodne, możesz nosić ten plik wszędzie i używać go na dowolnym komputerze. Ale chcę móc zainstalować nasz program w prosty sposób.

Za pomocą pakietów deb możesz łatwo zorganizować wdrożenie na swoich serwerach. W tym samym czasie będziesz mieć wersjonowanie i tak dalej. Najczęściej używam Ubuntu, więc porozmawiamy konkretnie o pakietach deb, które można zainstalować/usunąć za pomocą narzędzi apt.

Co trzeba zrobić, żeby stworzyć własne repozytorium z pakietami? Możesz na przykład użyć tej samej witryny launchpad.net. Ale, ostatnio, nie rozwija się zbyt dobrze i wygląda zawodnie. Ponadto wygodnie jest używać go do zastosowań niekomercyjnych, ale używanie go do dystrybucji oprogramowania dla przedsiębiorstw będzie problematyczne.

Podejdźmy do problemu od drugiej strony. Po pierwsze, musimy zebrać pakiety deb, a bardzo łatwo jest to zrobić samodzielnie, korzystając z narzędzia dpkg-deb. Po drugie, musimy gdzieś te pakiety umieścić i do tego użyjemy super prostego

Budowanie pakietów

Do wszystkich moich projektów używam . Struktura projektu wygląda mniej więcej tak:

Projekt/ |- bin/ | |- projekt |- src/ | |- github.com/ | |- 4gophers/ | |- projekt/ | |- main.go |- sprzedawca/

Kiedy uruchamiam gb build, wszystkie pliki binarne są budowane w folderze bin. Zatem jedyne, czego potrzebujemy, to po prostu dodać specyfikację naszego przyszłego pakietu deb bezpośrednio do folderu projektu:

Projekt Mkdir/Projekt dotykowy DEBIAN/DEBIAN/kontrola

Rezultatem będzie taka struktura:

Projekt/ |- DEBIAN/ | |- kontrola |- bin/ | |- projekt |- src/ |- sprzedawca/

W pliku kontrolnym musimy podać informacje o naszym pakiecie. Nie zapomnij o pustej ostatniej linijce:

Pakiet: projekt Priorytet: opcjonalny Sekcja: rozwój Zainstalowany rozmiar: 100 Opiekun: Ivan Ivanov Architektura: i386 Wersja: 1.0 Zależy: libc6 (>= 2.1) Opis: Krótki opis tutaj Długi opis tutaj

  • Pakiet - nazwa Twojego pakietu
  • Priorytet - priorytet pakietu (opcjonalny, dodatkowy, standardowy, ważny, wymagany) dla zwykłych programów lepiej ustawić opcjonalny
  • Sekcja - sekcja, do której należy ten pakiet(admin, baza, comm, contrib, devel, doc, redaktorzy, elektronika, osadzony, gry, gnome, grafika, hamradio, tłumacze, kde, libs, libdevel, poczta, matematyka, różne, net, aktualności, non-free, oldlibs , otherosfs, Perl, python, nauka, powłoki, dźwięk, tex, tekst, narzędzia użytkowe, web, x11)
  • Zainstalowany rozmiar - rozmiar plików pakietu w kilobajtach
  • Opiekun - imię i nazwisko oraz email twórcy pakietu
  • Architektura - architektura procesora, dla której przeznaczony jest pakiet (i386, amd64, all, source, all)
  • Wersja - wersja pakietu
  • Zależy - w tym polu musisz podać nazwy pakietów, od których zależy Twój pakiet (np. biblioteki)
  • Opis - w pierwszej linii napiszemy krótki opis pakietu, w dalszej części bardziej szczegółowo

Wszystko, co znajduje się w folderze projektu, trafi do pakietu. I folder bin też. W tym folderze znajduje się nasz plik binarny, który należy zainstalować. Aby Twoje pliki znalazły się w wybranym katalogu na komputerze użytkownika, musisz stworzyć odpowiednią strukturę katalogów wewnątrz folderu projektu.

Warto zauważyć, że takie podejście do tworzenia pakietów deb nie jest najbardziej poprawne. Oczywiście w naszym przypadku świadomie decydujemy się na ten krok, jednak trzeba mieć świadomość, że pakiet deb będzie zawierał całą zawartość folderu projektu, łącznie z folderami src, Vendor i tak dalej. Oczywiście możesz skopiować pliki do innego folderu, a nawet napisać do tego skrypt, ale wszystko zostało już wymyślone przed nami. Bardziej poprawnym sposobem jest użycie narzędzi dh_make i dpkg-buildpackage.

Teraz możesz złożyć paczkę. Aby to zrobić, uruchom polecenie o jeden poziom wyżej:

Dpkg-deb -z8 -Zgzip --buduj projekt

Poziom wyżej zostanie utworzony plik projekt.deb, który można zainstalować za pomocą polecenia:

Sudo dpkg -i projekt.deb

Twoje własne repozytorium pakietów

Przejdźmy teraz do zabawnej części. Jak dystrybuujemy nasze pakiety? Uruchommy oczywiście własny serwer repozytorium. I do tego użyjemy serwera repozytorium apt deb-simple.

To naprawdę prosty serwer, który można zainstalować za pomocą tylko jednego polecenia:

Przejdź na stronę github.com/esell/deb-simple

Jeśli go nie jest zainstalowane na komputerze, na którym zamierzasz uruchomić serwer z repozytoriami, możesz zbudować plik binarny lokalnie i po prostu go skopiować. Alternatywnie możesz użyć okna dokowanego.

Następnie musisz uruchomić serwer. Można to zrobić za pomocą okna dokowanego, ale wolę używać nadzorcy. Oto przykład mojej konfiguracji usługi:

Command=/home/user/go1.5/bin/deb-simple katalog=/home/user/deb-simple/ autorestart=true stdout_logfile=none

Ważne jest tutaj wskazanie ścieżki do pliku binarnego (polecenie) oraz folderu roboczego (katalog), w którym umieścimy naszą konfigurację.

Serwer deb-simple obsługuje protokół https, ale jeszcze go nie potrzebujemy. W przypadku repozytoriów musisz utworzyć folder repo. Nasza konfiguracja conf.json będzie wyglądać następująco:

(„listenPort”: „9090”, „rootRepoPath”: „/home/user/deb-simple/repo”, „supportedArch”: [„all”, „i386”, „amd64”], „enableSSL”: false, "SSLcert": "serwer.crt", "SSLkey": "serwer.klucz" )

Aby wgrać paczkę do swojego repozytorium należy skorzystać z API HTTP samej usługi:

Curl -XPOST "http://localhost:9090/upload?arch=amd64" -F " [e-mail chroniony]"

Podobnie w przypadku usuwania:

Curl -XDELETE "http://localhost:9090/delete" -d "("nazwa pliku":"project.deb","arch":"amd64")"

Wszystko, co musimy zrobić, to dodać nasz serwer repozytorium do listy w /etc/apt/source.list.d/ . Możesz tworzyć osobny plik z treścią:

Deb http://my-hostname:9090/ stabilny plik main

Teraz uruchom sudo apt-get aktualizacja i instaluj swoje programy tak często, jak chcesz.

→ Instrukcje składania pakietu deb

W Internecie jest sporo artykułów na temat budowy pakietu deb, lecz niestety nie wszystkie będą jasne dla programisty, który zdecydował się na budowę pakietu deb po raz pierwszy. Więc masz kod. Jest przydatny, dobry, ale wymaga pewnych umiejętności i wysiłku podczas instalacji na serwerze lub komputerze stacjonarnym. Aby uniknąć wykonane samodzielnie związane z kopiowaniem plików, manipulowaniem bazą danych, konfigurowaniem skryptów start-stop (dla demonów) i konfiguracją, zdecydowałeś się zebrać wszystko w pakiecie deb.

W idealnym przypadku poprawny pakiet deb powinien być podpisany kluczem gpg. W przeciwnym razie apt uzna pakiet za niezaufany i wyświetli odpowiednie ostrzeżenie. Ale na razie pomińmy tę część. Przyjrzymy się później podręcznikowi, jak utworzyć klucz gpg i jak podpisać pakiet deb kluczem gpg.

Krok 1. Zainstaluj narzędzia, które będą wymagane do zbudowania pakietu:

Sudo apt-get install autoconf automake libtool autotools-dev dpkg-dev fakeroot

Krok 2. Utwórz katalog główny dla przyszłego pakietu i skopiuj do tego katalogu wszystkie pliki narzędzia, które będą wymagane do działania i instalacji. Na przykład:

Mkdir -p /home/nazwa_użytkownika/deb/mój_pakiet cp /niektóre_pliki_źródłowe /home/nazwa_użytkownika/deb/mój_pakiet

Jeśli Twoje narzędzie znajduje się w folderze:

/usr/local/share/my_project

/home/nazwa_użytkownika/deb/my_package/usr/local/share/my_project

Krok 3. Utwórz katalog DEBIAN w katalogu głównym pakietu.

Nazwa katalogu musi zawierać wielkie litery. Katalog ten zawiera metainformacje używane podczas instalacji.

Cd /home/username/deb/my_package mkdir DEBIAN

Dalej w katalogu DEBIAN utwórz obowiązkowy plik tekstowy - kontrola. W ten plik zawiera podstawowe informacje o pakiecie. W pliku każda linia zawiera pary klucz-wartość oddzielone dwukropkiem.

Sterowanie dotykowe Cd ./DEBIAN

Przykładowy plik:

Pakiet: my-package Wersja: 1.0.0 Zapewnia: my-package Opiekun: Wasilij Batareikin Architektura: cała Sekcja: web Priorytet: opcjonalny Wstępnie zależy: gcc, make, perl (>= 5.10), mysql-server Zależy: gcc, make, perl (>= 5.10), perlmagick, mysql-server, unzip, rar Opis : Mój pierwszy pakiet Debiana

Pakiet– Nazwa pakietu. Prawidłowe znaki. Wymagany parametr.

Wersja– Wersja pakietowa. Wymagany parametr.

Zapewnia– Nazwa aplikacji zarejestrowana w systemie.

Konserwator– Imię i nazwisko oraz adres e-mail opiekuna pakietu. Wymagany parametr.

Architektura– Architektura procesora, dla której przeznaczony jest pakiet. Wymagany parametr.

Sekcja– Definiuje grupę aplikacji. Wymagany parametr.

Priorytet– Priorytet pakietu. Ten parametr określa, jak ważna jest Twoja przesyłka w systemie.

Wstępnie zależy– Rozdzielana przecinkami lista pakietów wymaganych podczas procesu instalacji pakietu. Menedżer pakietów automatycznie zainstaluje określone pakiety.

Zależy– Rozdzielana przecinkami lista pakietów wymaganych do działania tego pakietu. Menedżer pakietów automatycznie zainstaluje określone pakiety.

Opis– Opis pakietu. Wymagany parametr.

Jeśli musisz wykonać określone czynności podczas instalowania lub usuwania pakietu, możesz użyć specjalnych skryptów. Tworzymy je i ustalamy uprawnienia do wykonania:

Cd ./DEBIAN touch preinst postinst prerm postrm chmod 775 preinst postinst prerm postrm

preinstalacja– Wykonywane przed instalacją pakietu.

postinst– Wykonywane natychmiast po zainstalowaniu pakietu.

przedszkole– Wykonywane bezpośrednio przed usunięciem paczki.

postrm– Wykonywane bezpośrednio po usunięciu paczki.


Krok 4. Budowanie pakietu.

Wchodzimy na ten sam poziom, co folder główny pakietu i budujemy.

Utwórz listę pakietów:

Pakiety skanowania $dpkg. /dev/null | gzip -9c > ./Packages.gz
Możemy otrzymać wiadomość typu:

Dpkg-scanpackages: ostrzeżenie: pakiety w archiwum, ale brakuje ich w pliku zastępującym: dpkg-scanpackages: ostrzeżenie: Fossil linux-headers-3.8.0-avl9-pae linux-image-3.8.0-avl9-pae pdfsam sublimetext virtualbox-4.2 xserver -xorg-input-wacom zotero dpkg-scanpackages: info: Zapisano 8 wpisów do wyjściowego pliku pakietów.
W naszym repozytorium znajduje się obecnie 8 pakietów. Świetnie, dodajmy do pliku nasze repozytorium:

linia taka jak:

Plik Deb:///home/nazwa użytkownika/zips/virensdebianrepository ./
Teraz musisz zaktualizować listę pakietów, aby były dostępne do instalacji:

To wszystko, teraz możesz zainstalować na przykład świeżo zmontowany edytor tekstu Sublime Text 2 (doskonałe instrukcje) jak zawsze: Teraz, aby zainstalować SublimeText, po prostu wykonaj:
# apt-get install sublimetext

Czytanie list pakietów... Gotowe Budowanie drzewa zależności Czytanie informacji o stanie... Gotowe Następujące Zostaną zainstalowane NOWE pakiety: sublimetext 0 zaktualizowanych, 1 nowo zainstalowanych, 0 do usunięcia i 245 nie zaktualizowanych.

Trzeba zdobyć 0 B/11,4 MB archiwów.

Po tej operacji wykorzystane zostanie 17,4 MB dodatkowego miejsca na dysku.

OSTRZEŻENIE: Następujące paczki nie mogą zostać uwierzytelnione! sublimetext Zainstalować te pakiety bez weryfikacji? Y Wybieranie wcześniej odznaczonego pakietu sublimetext.(Czytanie bazy danych... 247813 aktualnie zainstalowanych plików i katalogów.) Rozpakowywanie sublimetext (z ..././sublimetext_2.0.2_i386.deb) ... Konfigurowanie sublimetext (2.0.2) ... To wszystko, pakiet zostanie rozpakowany i zainstalowany, a fakt, że pochodzi z lokalnego repozytorium, można zobaczyć tutaj: (z ..././sublimetext_2.0.2_i386.deb)

Wniosek

Przepisy opisane w tym poście to dania szybkie, a nie foie gras z truflami. W przypadku dużych repozytoriów lub złożonych pakietów nadal będziesz musiał przeczytać dokumentację i podręczniki. Można także skorzystać z programu, który nie tylko tworzy repozytoria, ale także nagrywa je na płyty CD/DVD.

Specjalne podziękowania dla towarzysza.
strumień mózgu

, który wskazał błąd w poście dotyczący renderowania środowiska PRE. Dzieje się tak, gdy ufasz rzemiosłom Haskella, takim jak Pandoc :-)

Przepisy opisane w tym poście to dania szybkie, a nie foie gras z truflami. W przypadku dużych repozytoriów lub złożonych pakietów nadal będziesz musiał przeczytać dokumentację i podręczniki. Można także skorzystać z programu, który nie tylko tworzy repozytoria, ale także nagrywa je na płyty CD/DVD.

Tak, jeśli masz coś do dodania, napisz w komentarzach, ale pamiętaj, że jest to szybki post, bez konieczności ponownego czytania Wytycznych dotyczących pakowania Debiana i innych zagadnień z zakresu fizyki kwantowej.
Anonimowe komentarze...

Przepisy opisane w tym poście to dania szybkie, a nie foie gras z truflami. W przypadku dużych repozytoriów lub złożonych pakietów nadal będziesz musiał przeczytać dokumentację i podręczniki. Można także skorzystać z programu, który nie tylko tworzy repozytoria, ale także nagrywa je na płyty CD/DVD.

Zawsze używano dpkg -e i dpkg -x, aby całkowicie rozpakować pakiet i szybko edytować pliki lub zależności w plikach kontrolnych. Użyłem również checkinstall zamiast make install, aby utworzyć pakiet podczas kompilacji. Myślę, że warto wspomnieć o tych narzędziach.

komentarze Virens...

Budowanie pakietów ze źródeł w Debianie pochodzi od złego! Przypomnę sobie teraz moje doświadczenie:

1. Pakiet deb musi zawierać opiekuna i inne bzdury, bez których (niespodzianka, niespodzianka!) pakiet nie zostanie zbudowany.

2. Zmontowałeś, zainstalowałeś i myślisz, że to wszystko? Nie ma takiego szczęścia, dobre umiejętności mogą zniszczyć pakiet w piekle podczas instalowania czegoś innego. Znasz to uczucie: jak? Gdzie? Co? Już zainstalowałem ten pakiet!!! Cóż, na tym polega jego uzdolnienie – jest całkowicie ortodoksyjny, co oznacza, że ​​jest patriarchalny i nie pozwala na wolnomyślenie.

3. Dlatego potrzebny jest pilny manewr: pakiet aptitude hold. „Co, dobrze się trzyma? A teraz bądź tak miły i zdejmij to!” (c) Ponieważ od tej chwili aptitude będzie narzekać, że nie jest w stanie rozwiązać zależności bez zniszczenia pakietu.

4. W tym momencie nerwy mi puściły... Odkryłem Gentoo i moje włosy znów stały się miękkie i jedwabiste!

komentarze Virens...

@iv_vl komentuje...
Odkryłem Gentoo i moje włosy...
Bezczelny PR Genty?! W kopalnia blogu??? Nie ma mowy! ;-)

1. Pakiet deb musi zawierać opiekuna i inne bzdury
Standardowa polityka - trzeba wiedzieć komu dać w twarz za zepsutą paczkę :-) A potem różne rzeczy lepiej niż to zamieszanie, które dzieje się w fedorach i zyuzach RPM.

2. Zmontowałeś, zainstalowałeś i myślisz, że to wszystko? Nie ma takiego szczęścia, dobre umiejętności mogą zniszczyć pakiet w piekle podczas instalowania czegoś innego.
Tylko jeśli umieścisz paczkę stara wersja- na przykład mam IceWM, który zainstalowałem od Lenny'ego (idiotyczny opiekun wrzucił do Squeeze lód z połamaną tacą). Aptitude ostrzeże Cię przed takimi manewrami, jeśli w ogóle.

3. Dlatego pilnie potrzebny jest manewr: aptitude hold package... aptitude zaklina się, że nie jest w stanie rozwiązać zależności
To kłamstwo i prowokacja: tylko jeśli nie zatrzymałeś czegoś takiego jak gcc lub glibc, zależności zostaną rozwiązane normalnie. W przeciwieństwie do RPM-owców, którzy lubią od razu się poddawać w stylu „No nie mogłem, nie mogłem” :-)

Mogą być problemy z rozwiązaniem zależności, to fakt, ale jest to lepsze niż smażenie jajek na bekonie na procesorze w oczekiwaniu na zakończenie pobierania świeżego KDE przez Gentę...

4. W tym momencie nerwy mi puściły...
Jakimś sposobem szybko zostałeś zdumiony. Swoją drogą, co z zależnościami w Gandawie? Jak tu żyć, mając kaszel za każdym razem, gdy kichasz?
Mam na myśli to… nie po to, żeby trollować… ludzie są zainteresowani.

iv_vl

Jeśli zauważysz błąd, zaznacz fragment tekstu i naciśnij Ctrl+Enter
UDZIAŁ: