Apt-get හරහා ස්ථාපනය කර ඇති පැකේජවල ප්‍රභව කේතය ලබා ගන්නේ කෙසේද සහ වෙනස් කරන්නේ කෙසේද?


174

මම උපකල්පනය කරන්නේ ස්ථාපනය කර ඇති සියලුම යෙදුම් apt-getවිවෘත මූලාශ්‍ර බවයි; නමුත් ඒ ආකාරයෙන් ලබා ගත හැකි අය සඳහා, මෙම යෙදුම් සඳහා ප්‍රභව කේතය ලබා ගැනීමට සහ ඒවා යාවත්කාලීන කිරීමට මට හැක්කේ කොතැනින්ද?

මා නිතිපතා භාවිතා කරන යෙදුම් කිහිපයක් මා සතුව ඇති අතර ඒවා තවදුරටත් සක්‍රියව සංවර්ධනය නොවන අතර විශේෂාංග එක් කිරීමට මම කැමැත්තෙමි. මෙම යෙදුම් යාවත්කාලීන කිරීමේ අයිතිය ලබා ගැනීමට මා යන්නේ කොතැනටද?

මෙම අවස්ථාවේ දී විශේෂයෙන්, මම යොමු කරන්නේ හෙලන්ස්බ් පැකේජය වෙත ය


7
apt-getසංවෘත මූලාශ්‍ර වැඩසටහන් සඳහාද සහාය දක්වයි, එබැවින් ඔබේ ආරම්භක උපකල්පනය වැරදිය.
Flimm

Answers:


191

apt-get source <package>පැකේජයක ප්‍රභවය බාගත කිරීම සඳහා විධානය භාවිතා කරන්න (එය සමඟ සුඩෝ භාවිතා නොකරන්න).

සිට 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කරන්න. සිට APT සහ Dpkg ඉක්මන් විමර්ශන පත්රය :

dpkg-buildpackage ඩේබියන් ප්‍රභව ගසකින් ඩේබියන් පැකේජයක් සාදයි . මෙය ක්‍රියාත්මක කිරීම සඳහා ඔබ ප්‍රභව ගසේ ප්‍රධාන නාමාවලියෙහි සිටිය යුතුය. නියැදි භාවිතය:

 dpkg-buildpackage -rfakeroot -uc -b

-rfakerootමූල වරප්‍රසාද (හිමිකාරීත්ව අරමුණු සඳහා) අනුකරණය කිරීම සඳහා ව්‍යාජ රූට් වැඩසටහන භාවිතා කිරීමට උපදෙස් දෙන තැන, “මාර්‍ගගතව -ucගුප්ත විද්‍යාත්මකව අත්සන් නොකරන්න” -bයන්නෙන් අදහස් කරන්නේ සහ “ද්විමය පැකේජය පමණක් ගොඩනඟන්න” යන්නයි.

ටර්මිනලයක, cdපැකේජ ප්‍රභවය (උදා ~/code/hellanzb-0.13) අඩංගු නාමාවලිය තුළට ගොස් පහත විධානය ක්‍රියාත්මක කරන්න:

dpkg-buildpackage -rfakeroot -uc -b

ගොඩනැගීම සාර්ථක නම්, .debමව්
නාමාවලියෙහි ගොනුවක් ඇත (උදා ~/code/hellanzb_0.13-6.1_all.deb).


නවීකරණය කරන ලද ප්‍රභවයෙන් මා ස්ථාපනය කරන්නේ කෙසේද? අනෙක් පරිශීලකයින්ට භාවිතා කිරීම සඳහා එය නැවත කැප කරන්න. ස්තූතියි!
myusuf3

1
ustdustyprogrammer .debප්‍රභව කේතයෙන් පැකේජයක් සෑදීම පිළිබඳ උපදෙස් සමඟ මගේ පිළිතුර යාවත්කාලීන කරන ලදි . ඔබගේ නවීකරණය කරන ලද පැකේජය ගබඩාවලට ලබා ගැනීම සඳහා, ඔබ ඒ පිළිබඳව MOTU සමඟ කතා කළ යුතුය .
යෙසායා

අභිරුචි නාමාවලියක පෙරනිමියෙන් ස්ථාපනය කරන ඩෙබ් එකක් සෑදීමට ක්‍රමයක් තිබේද? වින්‍යාස කිරීමේ ක්‍රියාවලියේදී --prefix භාවිතා කර අපට ස්ථාපනය කළ හැකි ආකාරයටම? ඇත්ත වශයෙන්ම මට පුස්තකාලයක ප්‍රභවය සඳහා ටාර්බෝල් සොයාගත නොහැක, ඒ නිසා මට --prefix වින්‍යාස කර එය ස්ථාපනය කළ නොහැක .. නමුත් එම පැකේජ ප්‍රභවය apt හරහා ලබා ගත හැකිය, එබැවින් මම සිතුවේ ප්‍රභව පැකේජය අපේක්ෂිත උපසර්ගය තුළ ස්ථාපනය කිරීමට ය .
ashishsony

2
ඔබට apt-get ප්‍රභවය භාවිතා කිරීමට අවශ්‍ය නැතිනම් (නිදසුනක් ලෙස වෙනත් ඩිස්ට්‍රෝ වෙතින් ලබාගත් පැකේජයක් ගොඩනඟන විට) ප්‍රභව ගොනු 3 බාගත කර 'dpkg-source -x [fine] .dsc' භාවිතා කර ලිපිගොනු උපුටා ගෙන අයදුම් කරන්න dpkg-buildpackage ට පෙර වෙනස් වේ. ( ftp.debian.org/debian/doc/source-unpack.txt )
ෂ්ලෝමි ලුබාටන්

නැත sudo apt-get build-dep <package>ද්විමය ගොනු ලෙස පරායත්තයන් ස්ථාපනය? එසේ නම්, මෙය ප්‍රභවයෙන් සම්පුර්ණ ගොඩනැගීමක් නොවේ. යමෙකු බිල්ඩ්-ඩෙප් ප්‍රභවයෙන් පරායත්තයන් ස්ථාපනය කරන්නේ කෙසේද?
හෙලෝ වර්ල්ඩ්

23

පොදුවේ ගත් කල, මෙම ක්‍රියා පටිපාටිය අනුගමනය කිරීමෙන් ඔබට ස්ථාපිත පැකේජයක ප්‍රභවය ලබා ගත හැකිය:

  1. ප්‍රභව ගබඩාවන් සක්‍රීය කරන්න. උපකරණ පුවරුව විවෘත කරන්න (ඉහළ වම්පස බොත්තම) සොයන්න sources. එමඟින් Software & Updatesවැඩසටහන ගෙන ඒමට , එය ක්‍රියාත්මක කර "මූලාශ්‍ර කේතය" විකල්පය තෝරාගෙන ඇති බවට වග බලා ගන්න:

    රූප විස්තරය මෙහි ඇතුළත් කරන්න

  2. ටර්මිනලයක් විවෘත කර මෙම විධානය ක්‍රියාත්මක කරන්න:

    apt-get source vlc
    

එමඟින් vlc හි ප්‍රභවයන් ඔබගේ වර්තමාන නාමාවලියට බාගත වන අතර ඔබට ඒවා ඔබේ විවේකයේදී නැරඹිය හැකිය.

ඇත්ත වශයෙන්ම, vlcඔබට ඒවා videolan.org වෙබ් අඩවියෙන් කෙලින්ම බාගත කළ හැකිය: https://www.videolan.org/vlc/download-sources.html


1
ඔබට 'apt-get source' සමඟ sudo භාවිතා කිරීමට අවශ්‍ය නොවිය යුතුය
Squidly

RMrBones argh! නැත, ඇත්ත වශයෙන්ම ඔබ පුරුද්දෙන් බල කරන්නේ නැත. එය පෙන්වා දීමට ස්තූතියි.
ටර්ඩන්

පර්යන්තය තුළ: මෘදුකාංග-ගුණාංග- gtk <--- එය "මෘදුකාංග සහ යාවත්කාලීන" GUI පැනලය දියත් කරනු ඇත. (එය කිසිදු හේතුවක් නිසා මා සෙවීමේ උපකරණ
පුවරුවේ නොපෙන්වයි

17

ඔබට apt-get source --compileකෙලින්ම භාවිතා කළ හැකිය :

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

මා වෙනුවෙන් වැඩ කළා. ඔබ විධානය ක්‍රියාත්මක කළ නාමාවලියෙහි .deb සුළං හමයි.


9
මා වෙනුවෙන් වැඩ කළා, ස්තූතියි. එක් අමතර විස්තරයක්: ඔබට .deb සමඟsudo dpkg -i <package>.deb
waldyrious

"Dch -i" සමඟ චේන්ජ්ලොග් ලේඛනගත කිරීමට ඔබට අමතක වූ නිසා, ඇප්ට් නිධිය අනුවාදය වෙත ආපසු යනු ඇත.
Futal

3

උඩු යටිකුරු URL සහ ව්‍යාපෘති / වැඩසටහන් සම්බන්ධතා ඇතුළු පැකේජයක් පිළිබඳ වැඩි විස්තර ලබා ගැනීම සඳහා ඔබට ප්‍රකාශන හිමිකම් ගොනුව බැලීමට හැකිය ( packages.debian.org වෙතින් යොමු කර ඇත ).

පැකේජය ඔබේ පද්ධතියට ඇතුළත් කර ස්ථාපනය කළ විට, ඔබට ප්‍රකාශන හිමිකම් ගොනුව කෙලින්ම කියවිය හැකිය /usr/share/doc/$package_or_program_name/copyright.

ඩේබියන් පැකේජයේ ප්‍රභව කේතය බාගත කරන්නේ කෙසේදැයි බලන්න ? .


2

helloපැකේජය සමඟ අවම උදාහරණය

මේ සියල්ල සහ තවත් බොහෝ දේ විස්තර කර ඇත්තේ: https://www.debian.org/doc/manuals/maint-guide/build.en.html

පළමුව මූලාශ්‍රය වෙනස් කිරීම සඳහා නියැදි පැකේජයක් ලබා ගනිමු:

sudo apt-get install hello
hello

ප්‍රතිදානයන්:

Hello, world!

දැන් අපි එය හැක් කරමු. මූලාශ්‍රය ලබා ගන්න:

apt-get source hello
cd hello-*

සහ විවෘත කරන්න:

vim src/hello.c

පණිවිඩය පහත පරිදි වෙනස් කරන්න:

Hello, world hacked!

ඉන්පසු පරීක්ෂණයෙන්ද එසේ කරන්න. එසේ නොමැතිනම් කරදරකාරී පරීක්ෂණය අසමත් වීමට පටන් ගනී:

vim tests/greeting-1

ඉන්පසු නැවත ගොඩනඟන්න:

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

නිමැවුමේ අවසානයට ආසන්නව, එය මෙසේ කියයි:

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

එබැවින් එය මව් නාමාවලියෙහි .deb නිර්මාණය කළේය, එය කෙතරම් ධෛර්ය සම්පන්නද. එබැවින් අවසාන වශයෙන් අපි නවීකරණය කරන ලද පැකේජය ස්ථාපනය කර පරීක්ෂා කරමු:

sudo dpkg -i ../hello_2.10-1build1_amd64.deb
hello

ඔබ එහි ගිය විට, එය නව පණිවිඩය ලබා දෙයි:

Hello, world hacked!

උබුන්ටු 18.04 හි පරීක්ෂා කරන ලදී.

පැරණි bzrපිළිතුර

කිවමනා: මේ සමග අසමත්, උබුන්ටු 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 /හෙලෝ

Https://askubuntu.com/a/81889/52975 හි සඳහන් කර ඇති පරිදි උබුන්ටු විශේෂිත ප්‍රවේශයක් ද ඇත bzr.

නවතම අනුවාදය ලබා ගන්න:

bzr branch lp:ubuntu/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

මෙම උබුන්ටු ඇසුරුම් මග පෙන්වීමක් තොරතුරු හොඳ මූලාශ්රයක් වේ.


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/". මොනතරම් අවුලක්ද. :-(
ස්ටෙෆාන් ගුරිචොන්

භාවිතා 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/".: - / ඕනෑම ඉඟියක් සඳහා ස්තූතියි.
ස්ටෙෆාන් ගුරිචොන්

@ ස්ටෙෆාන් ගුරිචොන් හම්ම්, මම ඔබව උබුන්ටු 16.04 සීනියල් හි ප්‍රතිනිෂ්පාදනය කරමි. විශේෂිත අනුවාදය එකතු කිරීම ක්‍රියා කරයි:, bzr lp:ubuntu/wily/helloනමුත් කිසියම් හේතුවක් නිසා xenialඅනුවාදයක් නොමැත ? කිසිවක් පෙන්වන්නේ නැත: code.launchpad.net/ubuntu/+source/hello Go රූපය.
සිරෝ සැන්ටිලි 冠状 病毒 审查 六四 事件 法轮功

1
ප්‍රජනනය ගැන සැලකිලිමත් වීම ගැන ස්තූතියි. වැරදි කාඩ් පතක් තෝරාගත් ආකාරය. මෙම පිටුව සඳහන් කරමින් bugs.launchpad.net/ubuntu/+source/bzr/+bug/1614053 විවෘත කරන ලදි .
ස්ටෙෆාන් ගුරිචොන්

1
වෙනත් සමහර ප්‍රවේශයන්ට වඩා පහසුය. අනෙක් අභ්‍යන්තර ඉඟි වලට ස්තූතියි :)
nealmcb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.