سؤال كيف يمكنني الحصول على الكود المصدري للطرود المثبتة من خلال apt-get وتعديله؟


أفترض أن جميع التطبيقات مثبتة من خلال apt-get مفتوحة المصدر ولكن بالنسبة لتلك المتاحة بهذه الطريقة ، أين يمكنني الحصول على رمز المصدر لهذه التطبيقات وكذلك تحديثها؟

لديّ بعض التطبيقات التي أستخدمها بانتظام والتي لم يتم تطويرها بشكلٍ نشط بعد الآن وأود إضافة ميزات. أين أذهب للحصول على حقوق تحديث هذه التطبيقات؟

في هذه الحالة على وجه التحديد ، أنا أشير إلى hellanzb صفقة


147
2018-02-27 22:52


الأصل


apt-get يدعم البرامج ذات المصدر المفتوح أيضًا ، لذا فإن افتراضك الأولي غير صحيح. - Flimm


الأجوبة:


استخدم الأمر apt-get source <package> (لا تستخدم sudo معها) لتنزيل مصدر الحزمة.

من عند 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.

لإنشاء حزمة من المصدر ، قم أولاً بتثبيت تبعيات البناء:

sudo apt-get build-dep <package>  

ثم استخدام dpkg-buildpackage لخلق .deb ملف. من عند ورقة مرجعية سريعة APP و Dpkg:

نظام إدارة حزم دبيان-buildpackage ينشئ حزمة Debian من شجرة مصدر Debian. يجب أن تكون في الدليل الرئيسي لشجرة المصدر حتى يعمل هذا. استخدام العينة:

 dpkg-buildpackage -rfakeroot -uc -b

أين -rfakeroot يكلفه باستخدام برنامج fakeroot لمحاكاة امتيازات الجذر (لأغراض الملكية) ، -uc لتقف على "لا تشفيريا علامة تشانجليوج"، و -b لتقف على "بناء الحزمة الثنائية فقط"

في المحطة ، cd في الدليل الذي يحتوي على مصدر الحزمة (على سبيل المثال ~/code/hellanzb-0.13) وقم بتشغيل الأمر التالي:

dpkg-buildpackage -rfakeroot -uc -b

إذا كان البناء ناجحًا ، فسيكون هناك .deb الملف الموجود في الأصل
 الدليل (على سبيل المثال ~/code/hellanzb_0.13-6.1_all.deb).


172
2018-02-27 23:01



كيف يمكنني التثبيت من المصدر المعدل. فضلا عن ارتكابها مرة أخرى للمستخدمين الآخرين لاستخدامها. شكر! - myusuf3
dustyprogrammer تحديث إجابتي مع تعليمات حول إنشاء .deb حزمة من التعليمات البرمجية المصدر. أما بالنسبة إلى الحصول على حزمة معدلة في المستودعات ، يجب عليك التحدث إلى موتو عن ذلك. - Isaiah
DoR هل هناك طريقة لإنشاء تصحيح يتم تثبيته افتراضيًا في دليل مخصص؟ بنفس الطريقة التي يمكننا بها التثبيت باستخدام - prefix أثناء عملية التهيئة؟ في الواقع لا أستطيع العثور على tarballs لمصدر المكتبة ، ولهذا السبب لا أستطيع تكوين - prefix ، وجعل تثبيته .. ولكن هذا المصدر pakages متاح من خلال apt ، لذلك كنت أفكر في تثبيت حزمة المصدر في البادئة المطلوبة . - ashishsony
إذا كنت لا ترغب في استخدام مصدر apt-get (على سبيل المثال ، عند إنشاء حزمة مأخوذة من توزيعة أخرى) ، قم بتنزيل الملفات المصدر الثلاثة واستخدم 'dpkg-source -x [fine] .dsc' لاستخراج الملفات وتطبيقها فرق قبل dpkg-buildpackage. (ftp.debian.org/debian/doc/source-unpack.txt) - Shlomi Loubaton
هل sudo apt-get build-dep <package> تثبيت التبعيات كما ثنائيات؟ إذا كان الأمر كذلك ، فهذه ليست بنية كاملة من المصدر. كيف يقوم أحد بتثبيت اعتمادات build-dep من المصدر؟ - Hello World


بشكل عام ، يمكنك الحصول على مصدر الحزمة المثبتة باتباع هذا الإجراء:

  1. تمكين مستودعات المصدر. افتح لوحة التحكم (أعلى الزر الأيسر) وابحث عن sources. يجب أن تبرز Software & Updates برنامج ، وتأكد من أن لديك خيار "رمز المصدر" المحدد:

    enter image description here

  2. افتح الطرفية وقم بتشغيل هذا الأمر:

    apt-get source vlc
    

سيؤدي ذلك إلى تنزيل مصادر vlc إلى دليلك الحالي ويمكنك مشاهدتها في وقت فراغك.

بالطبع ، في حالة vlc، يمكنك أيضًا تنزيلها مباشرة من موقع videolan.org: https://www.videolan.org/vlc/download-sources.html


19
2018-03-18 20:03



لا يجب عليك استخدام sudo مع "apt-get source" - Squidly
MrBones argh! لا ، بالطبع لا ، قوة العادة. شكرا لتوجيهها. - terdon♦
في المحطة: software-properties-gtk <--- التي ستطلق لوحة واجهة المستخدم الرسومية "البرامج والتحديثات". (لم تظهر في البحث عن لوحة القيادة لي لأي سبب من الأسباب.) - pestophagous


يمكنك استخدام apt-get source --compile مباشرة:

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

عملت بالنسبة لي. يختفي .deb في الدليل الذي قمت بتشغيل الأمر منه.


16
2017-08-21 07:37



عملت لي أيضا ، شكرا. واحد فقط من التفاصيل الإضافية: يمكنك تثبيت .deb مع sudo dpkg -i <package>.deb - waldyrious
أفضل حل باستثناء أن apt سيعود إلى إصدار المستودع لأنك نسيت أن توثق التغيير مع "dch -i". - Futal


للحصول على مزيد من المعلومات حول الحزمة بما في ذلك عناوين URL المنبع واتصالات المشروع / البرنامج ، يمكنك إلقاء نظرة على ملف حقوق التأليف والنشر (المشار إليها من packages.debian.org).

عندما يتم تضمين الحزمة وتثبيتها على نظامك ، يمكنك أيضًا قراءة ملف حقوق الطبع والنشر مباشرة على /usr/share/doc/$package_or_program_name/copyright.

نرى كيفية تنزيل شفرة مصدر حزمة دبيان؟.


3
2017-08-01 12:52





كما ذكر في https://askubuntu.com/a/81889/52975 هناك أيضا نهج Ubuntu محددة مع bzr.

احصل على أحدث نسخة:

bzr branch lp:ubuntu/hello

TODO: توقف هذا عن العمل على Ubuntu 16.04 Xenial ، مع فشل: bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/hello/".. bzr branch lp:ubuntu/wily/hello يعمل و bzr branch lp:ubuntu/xenial/helloفشل مرة أخرى. لسبب ما https://code.launchpad.net/ubuntu/+source/hello لا تظهر Xenial: https://web.archive.org/save/https://code.launchpad.net/ubuntu/+source/hello

إصدار محدد:

bzr branch lp:ubuntu/trusty/hello

تستطيع ايضا استخذام pull-lp-source:

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

ثم ستتمكن من تعديلها:

cd hello
vim some_file

إعادة بناءه:

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

وتثبيته:

sudo dpkg -i ../hello.deb

ال دليل التعبئة أوبونتو هو مصدر جيد للمعلومات.


1
2018-05-17 06:57



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/".  دليل التعبئة أوبونتو، على وجه التحديد 4.2. الحصول على المصدر يقول: bzr branch ubuntu:lightdm lightdm.quickswitch bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/lightdm/".  ما هذه الفوضى. :-( - Stéphane Gourichon
مستخدم pull-lp-source بدلا من ذلك ، ولكن بعد ذلك لا نحصل على مستودع bzr. bzr bd -- -b -us -uc يقول bzr: ERROR: Not a branch: "/org/gourichon/localdata/SG/projects/sysadmin/sysadmin_ergozel/2016/2016-08-15/blouarp/lightdm-1.18.3/". : - / شكرا على أي تلميح. - Stéphane Gourichon
@ StéphaneGourichon hummm، I reproduce you on Ubuntu 16.04 Xenial. إضافة إصدار محدد يعمل: bzr lp:ubuntu/wily/hello، ولكن لسبب ما لا يوجد xenial الإصدار؟ ولا يظهر في: code.launchpad.net/ubuntu/+source/hello إذهب واستنتج. - Ciro Santilli 新疆改造中心 六四事件 法轮功
شكرا لرعاية الاستنساخ. نوع من اختار بطاقة خاطئة ، ثم. افتتح bugs.launchpad.net/ubuntu/+source/bzr/+bug/1614053 ذكر هذه الصفحة. - Stéphane Gourichon
أكثر ملاءمة من بعض الطرق الأخرى. وشكرا على نصائح من الداخل الآخرين :) - nealmcb