Ich gehe davon aus, dass alle über installierten Anwendungen apt-get
Open Source sind. aber für diejenigen, die auf diese Weise verfügbar sind, wo kann ich den Quellcode für diese Anwendungen erhalten sowie sie aktualisieren?
Ich verwende regelmäßig einige Anwendungen, die nicht mehr aktiv entwickelt werden, und möchte Funktionen hinzufügen. Wohin sollte ich gehen, um die Rechte zum Aktualisieren dieser Anwendungen zu erhalten?
In diesem Fall beziehe ich mich speziell auf das hellanzb- Paket
apt-get
unterstützt auch Closed-Source-Programme, sodass Ihre ursprüngliche Annahme falsch ist.Antworten:
Verwenden Sie den Befehl
apt-get source <package>
(verwenden Sie nicht sudo), um die Quelle eines Pakets herunterzuladen.Von
man apt-get
:Um ein Paket aus dem Quellcode zu erstellen, installieren Sie zuerst die Build-Abhängigkeiten:
Verwenden Sie dann
dpkg-buildpackage
, um eine.deb
Datei zu erstellen . Aus dem APT- und Dpkg-Schnellreferenzblatt :In einem Terminal
cd
in das Verzeichnis mit der Paketquelle (zB~/code/hellanzb-0.13
) und führen Sie den folgenden Befehl aus:Wenn der Build erfolgreich ist, befindet sich eine
.deb
Datei im übergeordnetenVerzeichnis (z
~/code/hellanzb_0.13-6.1_all.deb
. B. ).quelle
.deb
Pakets aus dem Quellcode. Um Ihr modifiziertes Paket in die Repositories zu bekommen, sollten Sie mit einer MOTU darüber sprechen .sudo apt-get build-dep <package>
installieren die Abhängigkeiten als Binärdateien? In diesem Fall handelt es sich nicht um eine vollständige Erstellung aus dem Quellcode. Wie macht man Build-Dep-Installationsabhängigkeiten von der Quelle?Im Allgemeinen können Sie die Quelle eines installierten Pakets wie folgt abrufen:
Aktivieren Sie die Quellrepositorys. Öffnen Sie das Dashboard (Schaltfläche oben links) und suchen Sie nach
sources
. Das sollte dasSoftware & Updates
Programm aufrufen, ausführen und sicherstellen, dass die Option "Quellcode" ausgewählt ist:Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus:
Dadurch werden die Quellen von vlc in Ihr aktuelles Verzeichnis heruntergeladen, und Sie können sie nach Belieben anzeigen.
Natürlich
vlc
können Sie sie auch direkt von der videolan.org-Website herunterladen: https://www.videolan.org/vlc/download-sources.htmlquelle
Sie können
apt-get source --compile
direkt verwenden:Hat für mich gearbeitet. Die .deb-Datei wird in dem Verzeichnis gespeichert, in dem Sie den Befehl ausgeführt haben.
quelle
sudo dpkg -i <package>.deb
Weitere Informationen zu einem Paket, einschließlich der Upstream-URL und der Projekt- / Programmkontakte, finden Sie in der Copyright-Datei (auf die unter packages.debian.org verwiesen wird ).
Wenn das Paket enthalten und auf Ihrem System installiert ist, können Sie die Copyright-Datei auch direkt unter lesen
/usr/share/doc/$package_or_program_name/copyright
.Sehen Sie, wie Sie den Quellcode des Debian-Pakets herunterladen können? .
quelle
Minimales Beispiel mit dem
hello
PaketAll dies und mehr finden Sie unter: https://www.debian.org/doc/manuals/maint-guide/build.en.html
Lassen Sie uns zuerst ein Beispielpaket zum Ändern der Quelle für Folgendes erhalten:
Ausgänge:
Jetzt lass es uns hacken. Holen Sie sich die Quelle:
und offen:
und ändern Sie die Nachricht zu:
Machen Sie dasselbe beim Test, sonst schlägt der nervige Test fehl:
Dann wieder aufbauen mit:
Gegen Ende der Ausgabe heißt es:
Also erstellte es die .deb im übergeordneten Verzeichnis, wie kann ich es wagen. Als letztes installieren und testen wir das modifizierte Paket:
und los geht's, es gibt die neue Nachricht aus:
Getestet unter Ubuntu 18.04.
Alte
bzr
AntwortTODO: Auf Ubuntu 16.04 Xenial funktionierte dies nicht mehr
bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/hello/".
.bzr branch lp:ubuntu/wily/hello
funktioniert undbzr branch lp:ubuntu/xenial/hello
fällt wieder aus. Aus irgendeinem Grund zeigt https://code.launchpad.net/ubuntu/+source/hello Xenial nicht an: https://web.archive.org/save/https://code.launchpad.net/ubuntu/+source /HalloWie unter https://askubuntu.com/a/81889/52975 erwähnt, gibt es auch einen Ubuntu-spezifischen Ansatz mit
bzr
.Die neueste Version bekommen:
Spezifische Version:
Sie können auch verwenden
pull-lp-source
:Dann können Sie es bearbeiten:
Erstellen Sie es neu:
Und installiere es:
Der Ubuntu-Verpackungsleitfaden ist eine gute Informationsquelle.
quelle
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/".
Ubuntu-Verpackungshandbuch , insbesondere 4.2. Immer die Quelle sagt:bzr branch ubuntu:lightdm lightdm.quickswitch bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/lightdm/".
Was für ein Durcheinander. :-(pull-lp-source
stattdessen verwendet, aber dann erhalten wir kein bzr-Repository.bzr bd -- -b -us -uc
sagtbzr: ERROR: Not a branch: "/org/gourichon/localdata/SG/projects/sysadmin/sysadmin_ergozel/2016/2016-08-15/blouarp/lightdm-1.18.3/".
: - / Danke für jeden Hinweis.bzr lp:ubuntu/wily/hello
aber aus irgendeinem Grund gibt es keinexenial
Version? Und keiner zeigt auf: code.launchpad.net/ubuntu/+source/hello Go figure.