Linux.pl

 START  |  BLOG  |  FORUM  |  POCZTA  |  HOSTING

Smaller Default Larger

Ocena użytkowników: 5 / 5

Gwiazdka aktywnaGwiazdka aktywnaGwiazdka aktywnaGwiazdka aktywnaGwiazdka aktywna
 

deb - format pakietu instalacyjnego używanego przez system operacyjny Debian GNU/Linux i jego pochodne np. Ubuntu.

Pakiet deb (i jego instalator dpkg) posiada zaawansowaną kontrolę powiązań i zależności pomiędzy poszczególnymi składnikami systemu - programami i używanymi przez nie bibliotekami. Dzięki temu instalując nowy program ma się pewność, że nie będzie miał miejsca konflikt z innymi zainstalowanymi programami. W przeciwnym wypadku instalowany program mógłby przerwać funkcjonowanie z powodu braku poszczególnych składników, które są wymagane do prawidłowego działania.

Po krótkim wstępie, przejdźmy do sedna sprawy, wbrew pozorom, budowa paczek deb nie należy do najłatwiejszych rzeczy, szczególnie jeśli budujemy paczki do oficjalnego repozytorium. Na początek musimy wybrać oczywiście jakiś program (bądź bibliotekę itp.) z którego chcemy zrobić paczkę w tym przykładzie omówię budowę paczki mpview, którą zbudowałem do oficjalnego repozytorium Debiana (i swoją drogą nie została dodana, przynajmniej do czasu, aż nie ukaże się nowa wersja programu, ponieważ sądzę, że projekt mpview umarł, jednak nikt nie raczył zdjąć flagę RFP - Request For Packing). Na początek oczywiście musimy pobrać program z którego będziemy robić paczkę, następnie tworzymy jakiś katalog, np. debian, przenosimy do niego archiwum ściągniętego programu. Ogólnie mówiąc w katalogu debian powinniśmy mieć teraz

mpview-0.4.1/
mpview-0.4.1.tar.gz

należy tutaj zwrócić uwagę na format

program-wersja/
program-wersja.tar.gz

archiwum programu musi mieć rozszerzenie tar.gz, jeśli nie ma, to musimy przepakować, następnie wpisujemy

export DEBFULLNAME="Imię Nazwisko"

i w katalogu

mpview-0.4.1/

wydajemy polecenie

dh_make -e adres@e-mail -c licencja -f ../archiwum.tar.gz

przy parametrze -c możemy wybrać gpl, lgpl, artistic, bsd, jeśli program nie jest pod żadną z tych licencji, opuszczamy parametr, po wydaniu powyższego polecenia w katalogu powinien pojawić się podkatalog o nazwie debian, jeśli budujemy nieskomplikowaną paczkę potrzebne będą nam tylko pliki

changelog
compat
control
copyright
rules
watch

do pliku compat wystarczy wpisać 7

echo 7 > compat

na początek zajmijmy się najważniejszym plikiem, którym jest control

Source: mpview
Section: graphics
Priority: optional
Maintainer: Adam Ziaja <adam{@}ziaja.name>;
Build-Depends: debhelper (>= 7), autotools-dev, libbz2-1.0 (>= 1.0.5-1~), libexpat1 (>= 2.0.1-4), libfftw3-dev (>= 3.1.2-3.1), libfontconfig1 (>= 2.6.0-3), libfreetype6-dev (>= 2.3.7-2), libgmp3c2 (>= 2), libice6 (>= 2), libjpeg62-dev (>= 6b-14), libpng12-dev (>= 1.2.27-2), libsm6 (>= 2), libtiff4-dev (>= 3.8.2-11), libx11-6 (>= 2), libxau6 (>= 1), libxcb1 (>= 1.1-1.1), libxdmcp6 (>= 1), libxext6 (>= 2), libxt6 (>= 1), zlib1g-dev (>= 1), qt4-qmake, libqt4-dev
Standards-Version: 3.8.1
Homepage: http://mpview.sourceforge.net

Package: mpview
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: MP View is cross-platform image viewer with possibility of image manipulation
MP View is cross-platform image viewer with possibility of image
manipulation (crop, resize, running filters), based on CImg and Qt.

Być może zauważyłeś, że Debian jest podzielony na następujące sekcje: main (zawiera wolne oprogramowanie), non-free (zawiera oprogramowanie, które nie jest wolne) i contrib (zawiera wolne oprogramowanie, które zależy od oprogramowania, które nie jest wolne).

Dodatkowo każda z sekcji dzieli się na logiczne podsekcje, które skrótowo opisują, do czego służy dany pakiet. Mamy zatem sekcję admin, która zawiera programy przeznaczone tylko dla administratora systemu, base z podstawowymi narzędziami, devel z narzędziami programistów, doc z dokumentacją, libs z bibliotekami, mail z programami do obsługi poczty elektronicznej, net z aplikacjami sieciowymi i demonami usług sieciowych, sound z aplikacjami muzycznymi, graphics z aplikacjami graficznymi, x11 z programami dla systemów X11, które nie pasują nigdzie indziej i wiele innych. Zmieńmy zatem Section na graphics. Prefiks "main/" jest przyjmowany domyślnie, więc możemy go pominąć. W kolejnej linii mamy Priority, pełną listę priorytetów można znaleść tutajMaintainer to oczywiście, osoba, która stworzyła paczkę, Build-Depends chwilowo pomińmy, Homepage to strona domowa programu,Architecture opisuje architekturę procesora, dla którego może być skompilowany pakiet. Pozostawimy w niej any, gdyż pakiet dpkg-gencontrol(1) sam wstawi w tym miejscu odpowiednią wartość dla każdego typu maszyny, na której kompilowany jest pakiet.Description jest opisem paczki, format powinien wyglądać następująco

Description: Krótki opis
[dwie spacje odstępu]dłuższy opis, dłuższy opis, dłuższy opis, załamanie linii
[dwie spacje odstępu]dalszy ciąg opisu
[dwie spacje odstępu]opcjonalnie kolejne linie

wróćmy teraz do Build-Depends, jest to lista zależności pakietów, które wymagane są do poprawnej instalacji naszej paczki i działania samego programu. Aby stworzyć taką wstępną listę, można posłużyć się skryptem

#!/bin/bash
strace -f -o /tmp/log ./configure
# or make instead of ./configure, if the package doesn't use autoconf
for x in `dpkg -S $(grep open /tmp/log|\
perl -pe 's!.* open\(\"([^\"]*).*!$1!' |\
grep "^/"| sort | uniq|\
grep -v "^\(/tmp\|/dev\|/proc\)" ) 2>/dev/null|\
cut -f1 -d":"| sort | uniq`; \
do \
echo -n "$x (>=" `dpkg -s $x|grep ^Version|cut -f2 -d":"` "), "; \
done

należy tutaj pamiętać o jak najbardziej optymalnym doborze parametrów do ./configure listę tych parametrów możemy zobaczyć wpisując

./configure --help

w głownym katalogu programu, skrypt wypisze nam listę wymaganych pakietów, niestety jeśli ma to być paczka do oficjalnego repozytorium to nie jest to koniec :-P, w całej liście edytujemy ciąg znaków (występuje w wersji pakietu)

-1)

i

-1 )

zamieniając go ciągiem

-1~)

następnie usuwany pakiety, które są wymagane w systemie jak np.

locales (>= 2.7-18)

i pakiety, które są wymagane przez inne pakiety wchodzące w listę wymaganych przez nas pakietów (masło maślane ;-P), założenie jest takie, że lista powinna być jak najkrótsza i zawierać tylko rzeczywiście wymagane pakiety. Przejdźmy do kolejnego pliku którym jestrules, przy opisie poprzedniego, nie na daremno zostawiłem opis Build-Depends na koniec, teraz musimy dopisać do pliku rules w odpowiednim miejscu parametry, które dopisaliśmy w skrypcie do generowania listy wymaganych pakietów, a także inne wymagane komendy (jeśli takie były wymagane, np. export jakieś wartości) do kompilacji programu. Przejdźmy zatem do kolejnego pliku, watch jest plikiem dzięki, któremu repozytorium może kontrolować czy nie zostały wydane nowsze wersje programu, standardowo mamy w tym pliku (watch.ex od example, z ang. przykład) różne przykłady dla popularnych stron, np. dla tego programu zawartość pliku była następująca

version=3
http://sf.net/mpview/mpview-(.*)\.tar\.gz

ponieważ strona programu znajduje się na sourceforge.net (sf.net), następnym plikiem, który omówię będzie changelog, jest to plik, który powinien zawierać odnotowane wszystkie dokonywane zmiany, przykładowo plik dla tego programu wygląda

mpview (0.4.1-1) unstable; urgency=low

* Initial release (Closes: #469088).

-- Adam Ziaja <adam{@}ziaja.name>; Thu, 26 Mar 2009 12:26:55 +0100

w tym wyypadku Closes: #469088 odpowiada za zamknięcie "bug'u" numer 469088, oczywiście cały plik musi mieć wyżej napisany format, czyli przykładowo w ostatniej linii na początku przed myślnikami musi być spacja itp, niczego nie robiłem, żeby ładnie wyglądało, wszystko to jest wymagane, aby oprogramowanie mogło automatycznie odczytywać treść po przez parsowanie wszystkich tych plików, ostatnim już wymaganym (przynajmniej w przypadku tego programu, w rzeczywistości może okazać się, że będzie Wam potrzeby któryś z pozostałych plików) plikiem jest copyright, w nim muszą być dodane wszystkie licencje z programu, jeśli jakiś choćby jeden plik ma inna licencję to trzeba go dopisać według obowiązującego formatu, przykładowo plik dla mojej paczki wyglądał następująco

This package was debianized by Adam Ziaja <adam{@}ziaja.name>; on
Thu, 26 Mar 2009 12:26:55 +0100.

It was downloaded from http://mpview.sourceforge.net

Upstream Author:

Martin Petricek <martin{@}petricek.net>;

Files: *

Copyright:

Copyright (C) 2007-2009 Martin Petricek

License:

This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this package; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL'.

Files:

src/cimg/CImg.h

Copyright:

Copyright (C) 2008 David Tschumperle

License:

This software is governed by the CeCILL-C license under French law and
abiding by the rules of distribution of free software. You can use,
modify and or redistribute the software under the terms of the CeCILL-C
license as circulated by CEA, CNRS and INRIA at the following URL
"http://www.cecill.info".

As a counterpart to the access to the source code and rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty and the software's author, the holder of the
economic rights, and the successive licensors have only limited
liability.

In this respect, the user's attention is drawn to the risks associated
with loading, using, modifying and/or developing or reproducing the
software by the user in light of its specific status of free software,
that may mean that it is complicated to manipulate, and that also
therefore means that it is reserved for developers and experienced
professionals having in-depth computer knowledge. Users are therefore
encouraged to load and test the software's suitability as regards their
requirements in conditions enabling the security of their systems and/or
data to be ensured and, more generally, to use and operate it in the
same conditions as regards security.

The fact that you are presently reading this means that you have had
knowledge of the CeCILL-C license and that you accept its terms.

The Debian packaging is (C) 2009, Adam Ziaja <adam{@}ziaja.name>; and
is licensed under the GPL, see above.

następnie jeśli chcielibyśmy zamieścić paczkę w oficjalnym repozytorium, trzeba posiadać klucz GPG, ale to już temat na oddzielny artykuł, wpisujemy w głównym katalogu programu

debuild

następnie podajemy dwa razy hasło do naszego klucza GPG, przy wydaniu powyższego polecenia może wystąpić wiele błędów np. jeśli jest błąd w linii 1319 to w głównym katalogu programu musi znajdować się plik o nazwie ChangeLog (dokładnie z C i L duże, jeśli jest inaczej to musimy poprawić), jeśli debuild dojdzie do końca, możemy zweryfikować poprawność paczki po przez wydanie polecenia

lintian -Ii *.dsc

w katalogu który utworzyliśmy na początku (~/debian), jeśli paczka nie zawiera żadnych błędów i chcielibyśmy dodać ją do oficjalnego repozytorium to trzeba będzie zarejestrować się na http://mentors.debian.net i dodać nasz klucz GPG, którym podpisaliśmy paczkę, opis budowy pliku konfiguracyjnego programu dupload (który służy do wysyłania paczki na serwer) znajduje się pod tym adresem. Aby załadować paczkę na serwer wydajemy polecenie

dupload -t mentors *.changes

w katalogu ~/debian, następnie logujemy się na stronę i wybieramy opcję, że szukamy sponsora (deweloper Debiana, który może dodać naszą paczkę do oficjalnego repozytorium). Uff, koniec i niech ktoś teraz powie, że budowa takiej paczki to łatwa sprawa, a są osoby (deweloperzy Debiana) które zbudowały po ~100 takich paczek, jednak opisałem tylko sposób budowy prostej paczki, budowa niektórych pakietów jest o wiele trudniejsza :-). PS: w całym opisie pozamieniałem znaczki @ na {@} aby uniknąć spamu.

 

Dodaj komentarz


Kod antyspamowy
Odśwież

IBM kupił Red Hat za 34 mld USD

W dniu wczorajszym (tj. 28.10.2018), firmy IBM i Red Hat poinformowały o największej w historii Linuksa i Open Source transakcji - zakupu firmy Red Hat przez IBM. Na mocy podpisanej umowy IBM wykupi wszystkie akcje Red Hat po 190 USD za akcję, co łącznie zamyka transakcję w kwocie około 34 miliardów USD.

Więcej…

SUSE ogłasza plany działania jako w pełni niezależna firma

suse 200pxNORYMBERGA, Niemcy - 2 lipca 2018 r. - Firma SUSE ogłosiła plany współpracy z partnerem inwestycyjnym EQT, aby kontynuować już jako niezależny biznes dynamiczny rozwój firmy, realizację obranej strategii i ekspansję produktów. Zakończenie przejęcia SUSE od firmy Micro Focus przez EQT wymaga jeszcze zgody udziałowców firmy Micro Focus oraz zatwierdzenia przez odpowiednie organy regulacyjne. Oczekuje się, że przejęcie nastąpi na początku 2019 r.

Więcej…

Najnowszy Linux Magazine 3/2018

 Marcowy Linux Magazine jest poświęcony kompilatorom. 

W numerze znajdziemy przegląd kompilatorów i środowisk programistycznych. Porównanie GCC, Clanga i MSVC pod kątem obsługi najnowszych standardów C++. Omówienie wzorowanego na Rebolu języka programowania Red i kompilacji krzyżowej w najnowszych wersjach Go.

 

Więcej…

Barcelona przechodzi na Wolne Oprogramowanie

Jak poinformował hiszpański magazyn El País, miasto Barcelona planuje do końca wiosny 2019 roku dokonać migracji swoich systemów informatycznych z oprogramowania własnościowego i systemów Windows na alternatywne rozwiązania Open Source oraz Linuksa. Według opracowanej strategii w pierwszej kolejności zostaną zastąpione wszystkie aplikacje użytkowników na otwartoźródłowe, a końcowym etapem będzie zastąpienie systemów operacyjnych Linuksem.

Więcej…

 

Software

[Aktualizacja 26.02. 2017 ] KernUP - Twoje nowsze jajko

KernUP jest forkiem starego programu KernelUP. Został całkowicie przepisany od podstaw w celu optymalizacji i naprawy starych błędów swojego poprzednika.
Program tak jak jego poprzednik służy do automatycznej aktualizacji jądra sytemu operacyjnego.

Program został wyposażony w kilka funkcji, oto one:

  • Automatyczne włączanie się ze startem systemu.
  • Automatyczne sprawdzanie aktualizacji jądra.
  • System tłumaczeń. Zawiera język Angielski i Polski.
  • System cichych aktualizacji programu.
  • Moduł umożliwiający usunięcie starszych wersji jąder zainstalowanych w naszej dystrybucji.
  • Przebudowywanie modułów VirtualBox
  • Wybór między sudo a su
Więcej…

Premiera systemu SUSE Linux Enterprise Server dla serwerów z procesorami ARM

Firma SUSE poinformowała o wprowadzeniu na rynek oprogramowania SUSE Linux Enterprise Server for ARM. To pierwsza komercyjna dystrybucja systemu Linux zoptymalizowana pod kątem serwerów o architekturze AArch64 z procesorami ARM. Objęta jest kompleksową pomocą techniczną. Pozwoli dostawcom sprzętu i oprogramowania na szybsze tworzenie i dostarczanie klientom innowacyjnych rozwiązań w oparciu o procesory ARM.

Więcej…

KDE ma już 20 lat!

20 lat temu Matthias Ettrich wysłał wiadomość, w której zaprasza programistów do rozwoju nowego projektu - Kool Desktop Environment. Data ta jest uznawana jako początek KDE, chociaż pierwsza wersja beta środowiska KDE 1 ukazała się prawie dokładnie po roku od ogłoszenia prac, a pierwsza wersja stabilna 12 lipca 1998 roku. Co ciekawe do dzisiaj są osoby, które używają KDE 1 i nie zamierzają go zmieniać na nowsze wersje.

Więcej…

Dystrybucje

Amazon i SUSE przyspieszą migrację aplikacji SAP do Linuksa w chmurze AWS

suse awsSUSE poinformowała wczoraj o rozszerzeniu współpracy z firmą Amazon Web Services (AWS), która może już odsprzedawać oprogramowanie SUSE Linux Enterprise Server for SAP Applications bezpośrednio na platformie AWS Marketplace. Użytkownicy chmury AWS i systemów SAP uruchomionych na SUSE Linux Enterprise Server for SAP Applications - wiodącej platformie dla SAP HANA i SAP S/4HANA - otrzymają od firm AWS i SUSE zintegrowane wsparcie. Ponadto klienci AWS mogą kupować systemy SUSE Linux Enterprise na żądanie, płacąc tylko za to, z czego w określonym czasie korzystają. Współpraca SUSE i AWS ma na celu zaspokojenie rosnącego zapotrzebowania klientów na elastyczność wykorzystywanych środowisk IT i zapewnić korzyści finansowe z przeniesienia krytycznych aplikacji biznesowych do chmury.

Więcej…

Za tydzień strona susestudio.com zostanie zamknięta

Już za tydzień wyłączona ma zostać usługa Suse Studio na stronie susestudio.com. Strona umożliwiająca tworzenie w prosty sposób własnych dystrybucji Linuksa kończy działanie 15 lutego i zostanie zintegrowana z serwisem Open Build Service. Do tego czasu wszyscy użytkownicy powinni wyeksportować swoje szablony do OBS (opis: http://openbuildservice.org/2017/05/31/studio-import/).

Nowe oferty pracy

Konferencje i spotkania

Open Source Day 2019 już 14 maja. Co w agendzie?

logoJakie funkcjonalności oferują najnowsze rozwiązania bazujące na otwartym oprogramowaniu? Jak można je wykorzystać np. w dbaniu o bezpieczeństwo infrastruktury IT przedsiębiorstwa? W jaki sposób open source pomaga w rozwijaniu technologii sztucznej inteligencji? Z jakimi wyzwaniami najczęściej spotykają się osoby pracujące z otwartymi rozwiązaniami i jak im sprostać? Tego będzie można dowiedzieć się podczas 12. edycji konferencji Open Source Day, która odbędzie się już 14 maja w Warszawie. Jak co roku będzie merytorycznie, ciekawie i praktycznie, co gwarantuje organizator wydarzenia – Linux Polska.

Na uczestników czeka 9 sesji technicznych, poświęconych najważniejszym kierunkom rozwoju branży IT, które zostały podzielone na 3 bloki tematyczne.

Więcej…

Open Source w biznesie - Warszawa

Konferencja Open source w biznesie to bezpłatne wydarzenie poruszające tematykę rozwiązań otwartych i ich praktycznego zastosowania w przedsiębiorstwie. Wydarzenie ma na celu zrzeszenie zawodowych specjalistów i entuzjastów otwartego oprogramowania. Konferencja odbędzie się 18 czerwca o godz. 9:00 w Hotelu Coirtyard by Marriott Warsaw Airport w Warszawie.

Więcej…

Open Source Day 2019 – ruszyła rejestracja na 12. edycję konferencji

logo14 maja w Warszawie odbędzie się kolejna, 12. edycja Open Source Day. To największa w Polsce i Europie Środkowo-Wschodniej konferencja poświęcona otwartym rozwiązaniom. Co roku gromadzi blisko 1000 uczestników obecnych na prelekcjach i niemałą grupę śledzącą wydarzenie w transmisji online. Program tegorocznej edycji obejmie 3 ścieżki tematyczne, na które składać się będzie 9 sesji technicznych, poświęconych najważniejszym kierunkom rozwoju branży IT. 6 marca ruszyła rejestracja na konferencję.

11 edycji, blisko 20 tys. uczestników obecnych zarówno na wydarzeniach, jak i śledzących je podczas transmisji online, 210 sekcji technicznych. Tak można podsumować w liczbach ponad dziesięcioletnią historię Open Source Day, konferencji, która co roku przyciąga miłośników otwartych rozwiązań i wszystkich tych, którzy chcą być na bieżąco z nowinkami ze świata nowych technologii. Już niedługo będzie pisany jej kolejny rozdział.

Więcej…

Kalendarz konferencji i spotkań

18
Cze
Termin: 18 czerwiec 2019
Konferencja Open source w biznesie to bezpłatne wydarzenie poruszające tematykę rozwiązań otwartych i ich praktycznego zastosowania w przedsiębiorstwie.