it-swarm-eu.dev

Jak získám a upravím zdrojový kód balíčků nainstalovaných prostřednictvím apt-get?

Předpokládám, že všechny aplikace nainstalované prostřednictvím apt-get jsou open source; ale pro ty, které jsou tímto způsobem dostupné, kde mohu získat zdrojový kód pro tyto aplikace a také je aktualizovat?

Mám několik aplikací, které pravidelně používám a které se již aktivně nevyvíjejí, a rád bych přidal funkce. Kam bych šel získat práva na aktualizaci těchto aplikací?

V tomto případě konkrétně odkazuji na balíček hellanzb

174
myusuf3

Použijte příkaz apt-get source <package> (nepoužívejte s ním Sudo) ke stažení zdroje balíčku.

Z man apt-get:

   source
       source causes apt-get to fetch source packages. APT will examine the
       available packages to decide which source package to fetch. It will then
       find and download into the current directory the newest available version of
       that source package while respect the default release, set with the option
       APT::Default-Release, the -t option or per package with the pkg/release
       syntax, if possible.

       Source packages are tracked separately from binary packages via deb-src type
       lines in the sources.list(5) file. This means that you will need to add such
       a line for each repository you want to get sources from. If you don't do
       this you will properly get another (newer, older or none) source version
       than the one you have installed or could install.

       If the --compile option is specified then the package will be compiled to a
       binary .deb using dpkg-buildpackage, if --download-only is specified then
       the source package will not be unpacked.

       A specific source version can be retrieved by postfixing the source name
       with an equals and then the version to fetch, similar to the mechanism used
       for the package files. This enables exact matching of the source package
       name and version, implicitly enabling the APT::Get::Only-Source option.

       Note that source packages are not tracked like binary packages, they exist
       only in the current directory and are similar to downloading source tar
       balls.

Chcete-li sestavit balíček ze zdroje, nejprve nainstalujte závislosti na sestavení:

Sudo apt-get build-dep <package>  

Poté použijte dpkg-buildpackage vytvořte .deb soubor. Od Rychlý referenční list APT a Dpkg :

dpkg-buildpackage Vytvoří balíček Debianu ze zdrojového stromu Debianu. Aby to fungovalo, musíte být v hlavním adresáři zdrojového stromu. Příklad použití:

 dpkg-buildpackage -rfakeroot -uc -b

Kde -rfakeroot dá pokyn, aby použil program fakeroot k simulaci oprávnění root (pro účely vlastnictví), -uc je zkratka „Nepokládejte kryptograficky podepsat changelog“ a -b znamená „Pouze sestavení binárního balíčku“

V terminálu cd do adresáře obsahujícího zdroj balíčku (např. ~/code/hellanzb-0.13) a spusťte následující příkaz:

dpkg-buildpackage -rfakeroot -uc -b

Pokud je sestavení úspěšné, bude k dispozici .deb soubor umístěn v nadřazené
adresář (např. ~/code/hellanzb_0.13-6.1_all.deb).

191
Isaiah

Zdroj nainstalovaného balíčku můžete obecně získat následujícím postupem:

  1. Povolit zdrojové úložiště. Otevřete řídicí panel (levé horní tlačítko) a vyhledejte sources. To by mělo vyvolat Software & Updates program, spusťte jej a ujistěte se, že máte vybranou možnost "Zdrojový kód":

    enter image description here

  2. Otevřete terminál a spusťte tento příkaz:

    apt-get source vlc
    

Tím se stáhnou zdroje vlc do vašeho aktuálního adresáře a můžete si je prohlédnout ve svém volném čase.

Samozřejmě v případě vlc si je můžete také stáhnout přímo z webu videolan.org: https://www.videolan.org/vlc/download-sources.html =

23
terdon

Můžeš použít apt-get source --compile přímo:

Sudo apt-get build-dep <package>
Sudo apt-get source --compile <package>

Pracoval pro mě. .Deb se ukončí v adresáři, ze kterého jste příkaz spustili.

17
kaleissin

Chcete-li získat více informací o balíčku včetně upstream URL a kontaktů na projekt/program, můžete se podívat na soubor autorských práv (odkazováno na packages.debian.org ).

Pokud je balíček součástí a nainstalován ve vašem systému, můžete si také přečíst soubor autorských práv přímo na /usr/share/doc/$package_or_program_name/copyright.

Viz jak stáhnout zdrojový kód balíčku Debian? .

3
ypid

Minimální příklad s balíčkem hello

To vše a další je popsáno na: https://www.debian.org/doc/manuals/maint-guide/build.cs.html

Nejprve získáme ukázkový balíček pro úpravu zdroje pro:

Sudo apt-get install hello
hello

výstupy:

Hello, world!

Teď to pojďme. Získejte zdroj:

apt-get source hello
cd hello-*

a otevřít:

vim src/hello.c

a upravte zprávu na:

Hello, world hacked!

Poté proveďte totéž při testu, jinak se nepříjemný test začne nezdařit:

vim tests/greeting-1

Poté znovu vytvořte pomocí:

Sudo apt-get install devscripts
Sudo apt-get build-dep hello
debuild -b -uc -us

Na konci výstupu se uvádí:

dpkg-deb: building package 'hello' in '../hello_2.10-1build1_AMD64.deb'.

tak to vytvořilo .deb v nadřazeném adresáři, jak se opovažuje. Nakonec tedy nainstalujeme a otestujeme upravený balíček:

Sudo dpkg -i ../hello_2.10-1build1_AMD64.deb
hello

a tam to jde, vydá novou zprávu:

Hello, world hacked!

Testováno na Ubuntu 18.04.

Stará bzr odpověď

TODO: toto přestalo fungovat na Ubuntu 16.04 Xenial, selhalo s: bzr: ERROR: Not a branch: "bzr+ssh://Bazaar.launchpad.net/+branch/ubuntu/hello/".. bzr branch lp:ubuntu/wily/hello funguje a bzr branch lp:ubuntu/xenial/hello opět selže. Z nějakého důvodu https://code.launchpad.net/ubuntu/+source/hello nezobrazuje Xenial: https://web.archive.org/save/https:/ /code.launchpad.net/ubuntu/+source/hello

Jak je uvedeno na https://askubuntu.com/a/81889/52975 , existuje také přístup specifický pro Ubuntu s bzr.

Získejte nejnovější verzi:

bzr branch lp:ubuntu/hello

Specifická verze:

bzr branch lp:ubuntu/trusty/hello

Můžete také použít pull-lp-source:

Sudo apt-get install ubuntu-dev-tools
pull-lp-source hello

Pak to budete moci upravit:

cd hello
vim some_file

Znovu sestavit:

dch -i 
debcommit
bzr bd -- -b -us -uc

A nainstalovat:

Sudo dpkg -i ../hello.deb

buntu Package Guide je dobrý zdroj informací.