Zakładam, że wszystkie zainstalowane aplikacje apt-get
są oprogramowaniem typu open source; ale w przypadku tych, które są dostępne w ten sposób, gdzie mogę uzyskać kod źródłowy dla tych aplikacji, a także je zaktualizować?
Mam kilka aplikacji, z których regularnie korzystam, które nie są już aktywnie rozwijane i chciałbym dodać funkcje. Gdzie mogę uzyskać prawa do aktualizacji tych aplikacji?
W tym przypadku konkretnie mam na myśli pakiet hellanzb
apt-get
obsługuje również programy o zamkniętym źródle, więc twoje początkowe założenie jest nieprawidłowe.Odpowiedzi:
Użyj polecenia
apt-get source <package>
(nie używaj z nim sudo), aby pobrać źródło pakietu.Od
man apt-get
:Aby zbudować pakiet ze źródła, najpierw zainstaluj zależności kompilacji:
Następnie użyj,
dpkg-buildpackage
aby utworzyć.deb
plik. Z szybkiej instrukcji APT i Dpkg :W terminalu przejdź
cd
do katalogu zawierającego źródło pakietu (np.~/code/hellanzb-0.13
) I uruchom następującą komendę:Jeśli kompilacja się powiedzie,
.deb
wkatalogu nadrzędnym będzie znajdować się plik (np
~/code/hellanzb_0.13-6.1_all.deb
.).źródło
.deb
pakietu z kodu źródłowego. Jeśli chodzi o przeniesienie zmodyfikowanego pakietu do repozytoriów, powinieneś porozmawiać o tym z MOTU .sudo apt-get build-dep <package>
instaluje zależności jako pliki binarne? Jeśli tak, to nie jest to pełna kompilacja ze źródła. Jak sprawić, by kompilacje instalacyjne były instalowane ze źródła?Ogólnie rzecz biorąc, źródło zainstalowanego pakietu można uzyskać, wykonując następującą procedurę:
Włącz repozytoria źródłowe. Otwórz pulpit nawigacyjny (lewy górny przycisk) i wyszukaj
sources
. To powinno uruchomićSoftware & Updates
program, uruchomić go i upewnić się, że masz zaznaczoną opcję „Kod źródłowy”:Otwórz terminal i uruchom następujące polecenie:
Spowoduje to pobranie źródeł vlc do bieżącego katalogu i można je przeglądać w dowolnym momencie.
Oczywiście w przypadku
vlc
można je również pobrać bezpośrednio ze strony internetowej videolan.org: https://www.videolan.org/vlc/download-sources.htmlźródło
Możesz użyć
apt-get source --compile
bezpośrednio:Pracował dla mnie. .Deb kończy się w katalogu, z którego uruchomiono polecenie.
źródło
sudo dpkg -i <package>.deb
Aby uzyskać więcej informacji na temat pakietu, w tym wcześniejszego adresu URL i kontaktów projektu / programu, możesz przejrzeć plik z prawami autorskimi (wymieniony na stronie packages.debian.org ).
Gdy pakiet zostanie dołączony i zainstalowany w systemie, możesz również przeczytać plik z prawami autorskimi bezpośrednio na stronie
/usr/share/doc/$package_or_program_name/copyright
.Zobacz, jak pobrać kod źródłowy pakietu Debian? .
źródło
Minimalny przykład z
hello
pakietemWszystko to i więcej opisano w: https://www.debian.org/doc/manuals/maint-guide/build.en.html
Najpierw zdobądźmy przykładowy pakiet do modyfikacji źródła dla:
wyjścia:
Teraz zhakujmy to. Uzyskaj źródło:
i otwórz:
i zmodyfikuj wiadomość, aby:
Następnie zrób to samo na teście, w przeciwnym razie denerwujący test zacznie się nie powieść:
Następnie odbuduj za pomocą:
Pod koniec wyjścia napisano:
więc utworzył .deb w katalogu nadrzędnym, jak śmiesz. Wreszcie instalujemy i testujemy zmodyfikowany pakiet:
i proszę bardzo, wyświetla nową wiadomość:
Testowane na Ubuntu 18.04.
Stara
bzr
odpowiedźTODO: ten przestał działać na Ubuntu 16.04 Xenial, w przypadku braku z:
bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/hello/".
.bzr branch lp:ubuntu/wily/hello
działa ibzr branch lp:ubuntu/xenial/hello
znowu nie działa. Z jakiegoś powodu https://code.launchpad.net/ubuntu/+source/hello nie wyświetla Xenial: https://web.archive.org/save/https://code.launchpad.net/ubuntu/+source /cześćJak wspomniano na https://askubuntu.com/a/81889/52975, istnieje również podejście specyficzne dla Ubuntu
bzr
.Pobierz najnowszą wersję:
Konkretna wersja:
Możesz także użyć
pull-lp-source
:Następnie będziesz mógł go edytować:
Odbuduj to:
I zainstaluj:
Przewodnik po opakowaniach Ubuntu jest dobrym źródłem informacji.
źródło
bzr branch lp:ubuntu/hello bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/hello/".
bzr branch lp:ubuntu/xenial/lightdm bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/xenial/lightdm/".
Przewodnik po opakowaniach Ubuntu , w szczególności 4.2. Zdobycie źródła mówi:bzr branch ubuntu:lightdm lightdm.quickswitch bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/lightdm/".
co za bałagan. :-(pull-lp-source
zamiast tego, ale nie otrzymujemy repozytorium bzr.bzr bd -- -b -us -uc
mówibzr: ERROR: Not a branch: "/org/gourichon/localdata/SG/projects/sysadmin/sysadmin_ergozel/2016/2016-08-15/blouarp/lightdm-1.18.3/".
: - / Dzięki za podpowiedź.bzr lp:ubuntu/wily/hello
ale z jakiegoś powodu nie maxenial
wersji? I żaden nie pojawia się na: code.launchpad.net/ubuntu/+source/hello Go.