apt-get ile yüklenen paketlerin kaynak kodunu nasıl alabilirim ve değiştirebilirim?

146

apt-get aracılığıyla yüklenen tüm uygulamaların açık kaynak olduğunu varsayalım; ancak bu şekilde mevcut olanlar için, bu uygulamaların kaynak kodunu nereden alabilirim ve güncelleyebilirim?

Düzenli olarak kullanılmayan ve artık aktif olarak geliştirilmeyen birkaç uygulama var ve özellikler eklemek istiyorum. Bu uygulamaları güncelleme haklarını nereden alabilirim?

Bu durumda, özellikle hellanzb paketine başvuruyorum

    
sordu myusuf3 27.02.2011 23:52

5 cevap

172

Bir paketin kaynağını indirmek için apt-get source <package> komutunu (sudo kullanmayın) kullanın.

man apt-get 'den:

   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.

Kaynaktan bir paket oluşturmak için önce yapı bağımlılıklarını yükleyin:

sudo apt-get build-dep <package>  

Ardından dpkg-buildpackage dosyasını oluşturmak için .deb değerini kullanın. APT ve Dpkg Hızlı Referans Sayfası 'dan:

  

dpkg-buildpackage Debian kaynak ağacından bir Debian paketi oluşturur. Bunun çalışması için kaynak ağacın ana dizininde olmalısınız. Örnek kullanım:

 dpkg-buildpackage -rfakeroot -uc -b
     

-rfakeroot 'si, root ayrıcalıklarını simüle etmek için sahte yazılım programını kullanmasını söylerse (sahiplik amacıyla), -uc "changelog'u kriptografik olarak imzalama" ve -b "İkili paketi oluşturma" anlamına gelir. yalnızca "

Bir terminalde, paket kaynağını içeren dizine cd (ör. ~/code/hellanzb-0.13 ) ve aşağıdaki komutu çalıştırın:

dpkg-buildpackage -rfakeroot -uc -b

Yapı başarılı olursa, üstte bulunan .deb dosyası bulunur.  dizin (ör. ~/code/hellanzb_0.13-6.1_all.deb ).

    
verilen cevap Isaiah 28.02.2011 00:01
19

Genel olarak, bu yordamı izleyerek yüklü bir paketin kaynağını alabilirsiniz:

  1. Kaynak depolarını etkinleştirin. Gösterge tablosunu açın (sol üstteki düğme) ve sources araması yapın. Bu Software & Updates programını açmalı, onu çalıştırmalı ve "Kaynak kodu" seçeneğinin seçildiğinden emin olmalısınız:

  2. Bir terminal açın ve şu komutu çalıştırın:

    apt-get source vlc
    

Bu, vlc'nin kaynaklarını geçerli dizininize indirecek ve bunları boş zamanlarınızda görüntüleyebilirsiniz.

Tabii ki, vlc durumunda, bunları doğrudan videolan.org web sitesinden de indirebilirsiniz: İşte

    
verilen cevap terdon 18.03.2014 21:03
16

apt-get source --compile doğrudan kullanabilirsiniz:

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

Benim için çalıştı. .Deb komutu çalıştırdığınız dizinde açılır.

    
verilen cevap kaleissin 21.08.2013 09:37
3

Yukarı URL ve proje / program kişileri dahil olmak üzere bir paket hakkında daha fazla bilgi almak için copyright dosyası ( packages.debian.org adresinden başvurulan) .

Paket sisteme dahil edildiğinde ve sisteminize yüklendiğinde, telif hakkı dosyasını doğrudan /usr/share/doc/$package_or_program_name/copyright adresinden de okuyabilirsiniz.

Debian paketinin kaynak kodunu nasıl indirebilirim? konusuna bakın.

    
verilen cevap ypid 01.08.2015 14:52
1

İşte de bahsedildiği gibi, bzr ile Ubuntu'ya özgü bir yaklaşım da vardır.

En son sürümü edinin:

bzr branch lp:ubuntu/hello

TODO: Bu Ubuntu 16.04 Xenial üzerinde çalışmayı durdurdu, başarısız: bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/hello/". . bzr branch lp:ubuntu/wily/hello çalışır ve bzr branch lp:ubuntu/xenial/hello tekrar başarısız olur. Bazı nedenlerle İşte , Xenial’i göstermez: İşte

Özel sürüm:

bzr branch lp:ubuntu/trusty/hello

Ayrıca pull-lp-source kullanabilirsiniz:

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

Ardından düzenleyebileceksiniz:

cd hello
vim some_file

Yeniden oluşturun:

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

Ve yükleyin:

sudo dpkg -i ../hello.deb

Ubuntu ambalaj rehberi iyi bir bilgi kaynağıdır.

    

Etiketlerdeki diğer soruları oku