ස්ථාපනයකින් තොරව ඩේබියන් පැකේජයක ගොනු ලැයිස්තුගත කරන්නේ කෙසේද


301

මෙම විධානයට ස්ථාපනය කළ හැකි පැකේජවල අන්තර්ගතය පමණක් ලැයිස්තු ගත කළ හැකිය,

dpkg -L PACKAGENAME

නමුත් ස්ථාපනය නොකළ පැකේජයක අන්තර්ගතය ලැයිස්තුගත කරන්නේ කෙසේද, පැකේජය පෙරදසුන් කිරීමට / පරීක්ෂා කිරීමට?


Answers:


366

dpkg -c(හෝ --contents) .deb පැකේජ ගොනුවක අන්තර්ගතය ලැයිස්තුගත කරයි (එය ඉදිරිපස අන්තයකි dpkg-deb.)

dpkg -c package_file.deb

පැකේජ ලිපිගොනු වලට වඩා පැකේජ නාම සමඟ කෙලින්ම වැඩ කිරීමට, ඔබට භාවිතා කළ හැකිය apt-file. (ඔබට apt-fileපළමුව පැකේජය ස්ථාපනය කිරීමට අවශ්‍ය විය හැකිය .)

sudo apt-file update        
apt-file list package_name

පළමු විවරණයේ සඳහන් කර ඇති පරිදි, ඔබ දැනටමත් වින්‍යාස කර ඇති Apt ගබඩාවල ඇති පැකේජ සඳහා apt-file ලැයිස්තුගත කරයි. කිසියම් විශේෂිත පැකේජයක් ස්ථාපනය කර තිබේද නැද්ද යන්න අදාළ නොවේ.


17
apt-file ද යාවත්කාලීන කළ යුතුය ( sudo apt-file update), සහ දැනටමත් වින්‍යාස කර ඇති Apt ගබඩාවල ඇති පැකේජ සඳහා අන්තර්ගතයන් පමණක් ලැයිස්තුගත කරයි.
quack quixote

1
ackquackquixote: උබුන්ටු 12.04 හි එය ස්වයංක්‍රීයයි
confiq

1
dpkg -cහොඳයි!
d -_- b

2
Apt-file පිළිතුර උපකල්පනය කරන්නේ ඔබේ පැකේජය පැමිණෙන්නේ .debඔබ වෙනම බාගත කළ ගොනුවක් වෙනුවට වින්‍යාස කරන ලද ගබඩාවකින් බවයි. මුල් ප්‍රශ්නය අපැහැදිලි ය.
සෝරඩේච්

5
@confiq, මගේ පරීක්ෂණයෙන් නොවේ. මම 12.04.4 ධාවනය කරන අතර එය තවමත් පවසන්නේ "ඊ: හැඹිලිය හිස් ය. ඔබ මුලින්ම 'apt-file update' ධාවනය කළ යුතුය."
මැතිව් ෆ්ලැෂෙන්

58

--contentsඒ වෙනුවට භාවිතා කරන්න -L:

dpkg --contents PACKAGENAME

මේ ආකාරයට භාවිතා කරන විට, dpkgඉදිරිපස කෙළවරක් ලෙස ක්‍රියා කරයි dpkg-deb, එබැවින් man dpkg-debසියලු විකල්ප බැලීමට භාවිතා කරන්න.

පැකේජයේ අන්තර්ගතය බැලීමට ඔබට සංරක්ෂිත බ්‍රව්සරයක් භාවිතා කළ හැකිය.


3
මම මුලින් එය ස්ථාපනය කර එය අස්ථාපනය නොකරන්නේ නම් මෙය ක්‍රියා නොකරයි.
Xiè Jìléi

3
ඔබ .deb ගොනුවක් තර්කයක් ලෙස ලබා දෙන්නේ නම් එය හොඳින් ක්‍රියාත්මක විය යුතුය (PACKAGENAME වෙනුවට, එයට PACKAGE-DEB-FILE දෙන්න).
quack quixote

3
මෙම පිළිතුර වැරදිය. ඔබ මුලින්ම පැකේජය ස්ථාපනය කළ යුතුය. ඔබ එය ස්ථාපනය කර නොමැති නම්, ඔබට .deb ගොනුවක් නොමැත.
නීල්

මෙම විධානය මට වැඩ කරයි. උදාහරණයක් ලෙස, මම ගූගල් වෙතින් google-chrome-static_current_amd64.deb බාගත කළෙමි. ඉන්පසු විධානය නිකුත් කරන ලදි: dpkg --contents google-chrome-stable_current_amd64.debතවද එය ස්ථාපනය කරන සියලුම ලිපිගොනු ලැයිස්තුගත කර ඇත (බොහෝ දුරට /opt/google/chrome), මම මේ ටයිප් කරන විට ඒ කිසිවක් දැනට මගේ පද්ධතියේ ස්ථාපනය කර නොමැත. (එය වැදගත් නම් මම
Xubuntu

11
E නීල්, පිළිතුර වැරදියි. ඔබ සතුව ඩෙබ් ගොනුවක් ඇති බැවින් එය ස්ථාපනය කර ඇති බවක් අදහස් නොවේ. apt-file සඳහා සම්පූර්ණ ගොඩනැගීමේ අත්‍යවශ්‍ය පැකේජය අවශ්‍ය වේ. OO
d -_- b

24

dpkg --contentsඅස්ථාපනය කළ පැකේජය දෙස බැලීමට ඔබට ඉඩ සලසයි. .Deb තවමත් ඔබේ පද්ධතියේ නොමැති නම්, කරන්න

apt-get --download-only install pkgname

පැකේජය බාගත කර /var/cache/apt/archivesස්ථාපනය කර නැත.


4
බාගත නොකර අන්තර්ගතය ලැයිස්තු ගත කළ හැකිද? මම ඉතා මන්දගාමී සම්බන්ධතාවයක නම්, සහ පැකේජය බාගත කිරීමට නොහැකි තරම් විශාල නම්. .Deb ගොනුවේ අන්තර්ගත ලැයිස්තුවක් යන ලිපිගොනු ශීර්ෂයක් තිබේ නම්, මම හිතන්නේ සම්පූර්ණ පැකේජය බාගත කිරීම අවශ්‍ය නොවනු ඇත. මෙය කළ හැකිද?
Xiè Jiléi

15

හොඳම ක්‍රමය වනුයේ පැකේජ ගබඩාව කෙලින්ම ගවේෂණය කිරීමයි:

http://packages.debian.org/[distro name]/all/[package name]/filelist

උදාහරණයක්:

http://packages.debian.org/wheezy/all/transmission-common/filelist


ටර්මිනලය හැර යාම වළක්වා ගැනීම සඳහා, ඔබට උදා lynx -dump -nolist http://packages.debian.org/wheezy/all/transmission-common/filelist | grep ^/(ඔබ lynxස්ථාපනය කර ඇත්නම්) භාවිතා කළ හැකිය .
රුස්ලාන්

8

මම @ බැල්ඩොස්ගේ http අදහස ගෙන එය උබුන්ටු සහ ඩෙබියන් සඳහා සාමාන්‍යකරණය කර, ටිකක් එකතු කර sedඑය එක් ලයිනර් බැෂ් ශ්‍රිතයකට ඔතා:

function deb_list () { curl -s $(lsb_release -si | sed -e 's Ubuntu https://packages.ubuntu.com ' -e 's Debian https://packages.debian.org ')/$(lsb_release -sc)/all/$1/filelist | sed -n -e '/<pre>/,/<\/pre>/p' | sed -e 's/<[^>]\+>//g' -e '/^$/d'; }

භාවිතය:

$ deb_list curl
/usr/bin/curl
/usr/share/doc/curl/changelog.Debian.gz
/usr/share/doc/curl/copyright
/usr/share/doc/curl/NEWS.Debian.gz
/usr/share/man/man1/curl.1.gz

බහුවිධ රේඛාවල එකම ශ්‍රිතය:

function deb_list () {
    curl -s $(lsb_release -si \
                | sed -e 's Ubuntu https://packages.ubuntu.com ' \
                      -e 's Debian https://packages.debian.org '
              )/$(lsb_release -sc)/all/$1/filelist \
      | sed -n -e '/<pre>/,/<\/pre>/p' \
      | sed -e 's/<[^>]\+>//g' -e '/^$/d';
}

පැහැදිලි කළේ:

  1. lsb_release -si ආපසු "උබුන්ටු" හෝ "ඩේබියන්" එය පදනම් url සමඟ ප්‍රතිස්ථාපනය කරයි https://packages.ubuntu.comහෝhttps://packages.debian.org
  2. lsb_Release -sc මඟින් කේත නාමය ලබා දෙයි (උදා: "විශ්වාසදායක", "සිද්", ආදිය) සම්පූර්ණ URL එක සෑදීම සඳහා එය භාවිතා කරන්න: https://packages.ubuntu.com/trusty/all/curl/filelist
  3. එම URL එක curl සමඟ ලබාගෙන html sed විධානයන් තුනක් හරහා නල කරන්න. පළමුව ග්‍රහණය කරගන්නේ ගොනු ලැයිස්තුව පමණි (අතර ඇති දේ <pre>සහ </pre>ටැග්); දෙවන තීරු ඕනෑම html ටැග් ඉවත් කරයි; තෙවනුව හිස් රේඛා ඉවත් කරයි.

සටහන: එය PPAs සොයන්නේ නැත, විකල්ප යෝග්‍ය ප්‍රභව ගබඩාවන් වන අතර ඔබ ධාවනය කරන ඩෙබියන් / උබුන්ටු මුදා හැරීම සඳහා ඇති නිල පැකේජ පමණක් විමසයි.


එය ක්‍රියාත්මක කිරීමට මට රුබී අවශ්‍යද?
අන්වර්

1
N අන්වර්, මම මුලින් රූබි භාවිතා කළේ කම්මැලි නිසා සහ බහු රේඛීය රීජෙක්ස් sed / awk / grep වලින් උරා බොන බැවිනි. නමුත් මම එය නැවත ලියා ඇත්තේ sed විධාන දෙකක් භාවිතා කිරීමටයි, රූබි අවශ්‍ය නොවේ.
නොට්පීටර්

හොඳයි! මම සොයන පිළිතුර මෙයයි
අන්වර්

5

2017 ජනවාරි මාසයේදී මෙම ගැටලුව තවමත් විසඳා ගත හැකි සියලු පුද්ගලයින් සඳහා, කිසිවක් බාගත නොකර ඩේබියන් 8.5 හි මෑත කාලීන apt සහ dpkg සංස්කරණ සමඟ සිසිල් දේවල් ලබා ගත හැකිය.

බාගත කිරීමකින් තොරව ඩෙබ් ගොනුවේ අන්තර්ගතය ලැයිස්තුගත කරන්න:

පළමුව ඩෙබ් ගොනුවේ සම්පූර්ණ url එක සොයා ගන්න:

root@debian:apt-get --print-uris download yade
'http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb' yade_2016.06a-7_amd64.deb 1621148 SHA256:26c0d84484a92ae9c2828edaa63243eb764378d79191149970926aa3ec40cdd4

PS: --print-uris ස්විචය ඩෙබ් පැකේජයේ url මුද්‍රණය කරන නමුත් ඩෙබ් බාගත නොකෙරේ.

පසුව ඩෙබ් පැකේජයේ අන්තර්ගතය බාගත නොකර ප්‍රදර්ශනය කරන්න:

root@debian:curl -sL -o- "http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb" |dpkg-deb -c /dev/stdin
drwxr-xr-x root/root         0 2016-12-10 22:18 ./
drwxr-xr-x root/root         0 2016-12-10 22:18 ./usr/
drwxr-xr-x root/root         0 2016-12-10 22:18 ./usr/bin/
-rwxr-xr-x root/root     13184 2016-12-10 22:18 ./usr/bin/yade
.........................more files listed bellow ......................

PS: එකම ප්‍රති result ල ලබා ගත හැකිය

root@debian:dpkg -c <(curl -sL -o- "http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb")

බාගත කිරීමකින් තොරව ඉහත ඩෙබ් පැකේජයෙන් ගොනුවක් උපුටා ගන්න.
උදාහරණයක් ලෙස මෙම පැකේජය ස්ථාපනය නොකර ඩෙබ් පැකේජය බාගත නොකර පැකේජ යේඩ්ගේ මෑන් පිටුව කියවීමට අපට අවශ්‍යය.

උපදෙස් ලෙස deb පැකේජ තුළ මිනිසා පිටුවේ ගොනු dpkg -cකියන්නේ./usr/share/man/man1/yade.1.gz

පියාසර කරන මිනිසාගේ පිටුව කියවීමට:

root@debian:curl -sL -o- "http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb" |dpkg-deb --fsys-tarfile /dev/stdin |tar -xO ./usr/share/man/man1/yade.1.gz |man /dev/stdin

man යෙදුම නිවැරදිව man යෙදුම භාවිතයෙන් දර්ශනය වේ.

PS: ඉහත පයිප්ප ar විධානය සමඟ ක්‍රියා නොකරයි.

root@debian:apt --version --> apt 1.4~beta2 (amd64)
root@debian:dpkg --version --> Debian 'dpkg' package management program version 1.18.18 (amd64).
root@debian:man --version --> man 2.7.6.1
root@debian:tar --version --> tar (GNU tar) 1.29

මෙම විස්තරය ක්‍රියාත්මක වන්නේ "apt" පමණක් භාවිතා කරන සහ පැරණි "apt-x" විධානයන් නොමැති පද්ධති සඳහාය!
ජෝන් වට්

2

උත්සාහ කරන්න:

apt-get download packages-name
dpkg --contents *.deb

1

පළමුව එය ස්ථාපනය කිරීමට හෝ .debගොනුවෙන් ලැයිස්තුව උපුටා ගැනීමට පෙර එය කළ නොහැකි බව පෙනේ .

පහත විධානය උත්සාහ කරන්න:

dpkg --contents <(curl -s $(apt-get install --yes --no-download --reinstall --print-uris language-pack-en | tail -n1 | grep -o "http[^']\+"))

language-pack-enඔබගේ පැකේජයේ නම සමඟ වෙනස් කරන්න.

එය මූලික වශයෙන් .debඋපුටා ගත් ගොනුව කියවා එය මත curlධාවනය dpkg --contents FILEකරයි.


පැකේජ ගොනුව බාගත නොකර ඔබට අන්තර්ගතය පරීක්ෂා කළ හැකිය.

එබැවින් ඔබ .debගොනුවේ URL දන්නේ නම් , පහත දැක්වෙන shell විධානය මඟින් සියලුම පැකේජ ගොනු ලැයිස්තුගත කරනු ඇත:

dpkg -c <(curl -sL "http://httpredir.debian.org/debian/pool/main/a/avis/avis_1.2.2-4_all.deb")

Curl params: -s- නිහ silent, -L- ගෙන ගිය සබැඳි අනුගමනය කරන්න.

ඔබ URL නොදන්නේ නම්, ලබා ගන්න:, apt --print-urisඋදා

apt --print-uris install avis | grep avis
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.