මගේ සේවාදායකයේ පැකේජයක් ස්ථාපනය කර ඇත්දැයි පරීක්ෂා කරන්නේ කෙසේද?


201

මම මෑතකදී උබුන්ටු සර්වර් සංස්කරණය 13.10 (සෝසි සලාමන්ඩර්) ස්ථාපනය කළෙමි. නමුත් මම ටිකක් ගැටලුවකට මුහුණ දී සිටිමි.

ස්ථාපනය අවසානයේදී, එය ඔබට අවශ්‍යද නැද්ද යන්න අමතර පැකේජ කිහිපයක් ඉල්ලයි, එනම් OpenSSH සේවාදායකය සහ අථත්‍ය යන්ත්‍ර සත්කාරක වැනි. මෙන්න මම බලන්නේ:

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

දැන්, මගේ ගැටළුව වන්නේ මම "අතථ්‍ය යන්ත්‍ර සත්කාරක" පිරික්සුම් කොටුව පරීක්ෂා කර ඇත්දැයි මට මතක නැත. මගේ සේවාදායකයට අනුරූප පැකේජ තිබේදැයි පරීක්ෂා කරන්නේ කෙසේද?

අතථ්‍ය යන්ත්‍ර සත්කාරක සමඟ එන පැකේජ මොනවාද?


2
$ apt-cache policy <package-name>, උදා$ apt-cache policy dillo
ඩැනියෙල්

Answers:


255

විකල්ප සහිත සියලුම dpkg විධානයන් ගැන දැන ගැනීමට ඔබ සොයනවාද? පහත සබැඳියෙන් කියවන්න.

ඩේබියන් පදනම් කරගත් ලිනක්ස් සේවාදායක කළමනාකරණය කිරීමට 15 dpkg විධාන

සියලුම ස්ථාපිත පැකේජ ලැයිස්තුගත කිරීමට

මෙන්න "අඩු" යනු දැනට පවතින පර්යන්ත කවුළුව තුළ විවෘත වන නව බෆරයක ඇති පැකේජ ලැයිස්තුව හරහා අනුචලනය කිරීමට භාවිතා කරන සරල පෙළ කියවනයකි. ලැයිස්තුව වෙනත් පර්යන්ත විධාන සහ ප්‍රතිදානය සමඟ මිශ්‍ර නොවනු ඇත. ටර්මිනල් විමසුමට ආපසු යාමට 'q' ඔබන්න. වැඩි විස්තර සඳහා "මිනිසා අඩු" බලන්න.

dpkg -l | less

පැකේජයක් ස්ථාපනය කර තිබේද නැද්ද යන්න පරීක්ෂා කිරීම සඳහා:

dpkg -l {package_name}
dpkg -l vlc

පැකේජය ස්ථාපනය කර තිබේද නැද්ද යන්න පරීක්ෂා කිරීම සඳහා (උදාහරණයක් ලෙස vlc). ස්ථාපනය කර ඇත්නම්, පැකේජය දියත් කරන්න:

dpkg -l | grep vlc

පැකේජය ස්ථාපනය කර ඇති ස්ථානය පෙන්වන්න. "-S" (ප්‍රාග්ධන එස්) යනු "සෙවීම" යන්නයි.

sudo dpkg -S {package_name}
sudo dpkg -S skype

සෙවීමට ග්‍රෙප් භාවිතා කිරීමට:

dpkg -l | grep {keywords}
dpkg -l | grep pdf

1
මෙය සහ dpkg-query -l "packagename"
heypaleblue

7
dpkg -l packagenameපැකේජය සම්පූර්ණයෙන් ස්ථාපනය කර නොමැති වුවද එය 0 පිටවීමේ කේතයක් සමඟ ආපසු යා හැකි බැවින් පිටවීමේ කේතය මත රඳා නොසිටින්න - බලන්න: github.com/bitrise-io/bitrise/issues/433
වික්ටර් බෙනී

dpkg -l | cut -d " " -f 3 | grep "^vlc"ඇරඹෙන සියලුම පැකේජ නම් පෙන්වීමටvlc
anatoly techtonik

FYI, මෙටා පැකේජ dpkg සමඟ කෙලින්ම සහසම්බන්ධ නොවන බැවින් මෙය ක්‍රියා නොකරයි. ඔබගේ ප්‍රතිචාරය ඇසූ පරිදි ප්‍රශ්නයට පිළිතුරු සපයයි.
mtalexan

@heypaleblue ඒවා සමානයි. සිට අත්පොත පිටුව : " dpkgdpkg-deb (1) ඉදිරි-අන්තයක් හා dpkg-විමසුම් (1) ලෙස ද භාවිතා කළ හැක සහාය ක්රියා ලැයිස්තුව ක්රියාවන් කොටසේ මත පසුව සොයා ගත හැකි එවැනි කිසිදු ක්රියාමාර්ගයක් මුහුණ නම්.. dpkgදුවන්න dpkg-debහෝ dpkg-queryඑයට ලබා දී ඇති පරාමිතීන් සමඟ ... "
ෆ්‍රැන්ක්ලින් යූ

45

apt -qq list PACKAGE පැකේජය ස්ථාපනය කර ඇත්දැයි පරීක්ෂා කිරීම සඳහා ද භාවිතා කළ හැකිය.

ස්ථාපනය කර ඇත්නම් එය වැනි දෙයක් මුද්‍රණය කරයි ( [installed]රේඛාවේ අවසානයේ):

$ apt -qq list awscli
awscli/stable,now 1.4.2-1 all [installed]

ස්ථාපනය කර නොමැති නම් ප්‍රතිදානය වනුයේ:

$ apt -qq list awscli
awscli/stable 1.4.2-1 all

1
ආදේශක කාඩ්පතක් සඳහා පැකේජයේ නම අවසානයේ ඔබට තරුවක් තැබිය හැකිය.
බ්‍රැනන්

4
ඇත්ත වශයෙන්ම ස්ථාපනය කර ඇති ගැලපීම් වලට සීමා කිරීම සඳහා ඔබට එම විධානය සඳහා --installed විකල්පය භාවිතා කළ හැකිය.
mtalexan

2
කුමක් සඳහා ද -qq? එය නොමැතිව එක හා සමානව ක්‍රියා කරන බව පෙනේ, එම විකල්පය අත්පොතෙහි නොමැතman apt
ගේබ්‍රියෙල් ස්ටැපල්ස්

5
AbGabrielStaples apt listවිධානය තවමත් සම්පූර්ණයෙන් ලේඛනගත කර නොමැති බව පෙනේ . 16.04 හි සමහර ක්ෂණික පරීක්ෂණ මඟින් -qඑය --quietවිකල්පය සඳහා සමාන පදයක් බව පෙනේ . පළමුවැන්න -q"කර ඇත" යන වචනය මුද්‍රණය කිරීම වළක්වයි. දෙවැන්න "ලැයිස්තුගත කිරීම ..." මුද්‍රණය කිරීමෙන් වළක්වයි.
ඇන්තනි ජෝජෙගන්

බයෝනික් මත වුවද, apt listතවමත් "ඩබ්ලිව්අයිපී" ලෙස පෙනේ. කෙසේ හෝ අන්තර්ක්‍රියාකාරී භාවිතය සඳහා එය කාර්යය ඉටු කරයි. මම හිතන්නේ සාමාන්‍ය aptපවුල තුළ තිර රචනය සඳහා අදහස් නොකෙරේ, එවැනි අවස්ථාවකදී ඔබට තවමත් අවශ්‍ය වනු dpkgඇත.
ෆ්‍රැන්ක්ලින් යූ

40

භාවිත dpkg

මෙම විධානය ඩෙබියන් පැකේජ කළමනාකරු වේ.

ස්ථාපනය කර ඇති සියලුම පැකේජ සමඟ ඔබට ලැයිස්තු ගත කළ හැකිය

dpkg -l

සමඟ නිශ්චිත පැකේජයක් සඳහා විස්තර ඔබට දැක ගත හැකිය

dpkg -p packagename

එය ස්ථාපනය කර ඇත්දැයි දැන ගැනීමට භාවිතා කරන්න

dpkg -s packagename | grep Status

ඔබට අවශ්‍ය මෘදුකාංගය අඩංගු පැකේජය කුමක්දැයි ඔබට ඉගෙන ගත හැකිය

apt-cache search name*  

ඔබේ නඩුවේදී ඔබට අවශ්‍ය පැකේජයේ නම සෙවීමට මෙම විධානය භාවිතා කළ යුතුය

apt-cache search virtual machine host 

apt-cache show <pkg_name>පැකේජයක් ස්ථාපිත හා ස්ථාපනය අනුවාද ගැන සවිස්තරාත්මක තොරතුරු පෙන්වන්න.
රොකලයිට්

14

පැකේජ ස්ථාපනය සඳහා dpkg-query විධානයක් සහ පයිප්ප නොමැතිව පරීක්ෂා කිරීමට මම ක්‍රමයක් සොයාගෙන ඇත.

පිළිතුරු සැපයිය හැකි ක්‍රීඩා පොත සඳහා කාර්යයක් ලිවීමේදී මම එවැනි විසඳුමක් සෙව්වෙමි.

ඉතින්, ඔබට මේ වගේ දෙයක් කළ හැකිය:

/usr/bin/dpkg-query --show --showformat='${db:Status-Status}\n' '<your package name>'

මෙය කළ හැකි තවත් ක්‍රමයක් පමණි.


shellමොඩියුලය සමඟ පිළිතුරු සැපයිය හැකි පයිප්ප භාවිතා කළ හැකිය .
sjas

6

මම නව පිළිතුරක් ලියන්නේ ටැස්කල් 'කාර්ය නාම' ලෙස නොපෙන්වන dpkgහෝ aptවිමසීම් නොකරන්න . අනෙක් පිළිතුරු අසම්පූර්ණයි (හෝ වැරදි).

"මට මතක නැත මම 'අතථ්‍ය යන්ත්‍ර ධාරක' පිරික්සුම් කොටුව පරීක්ෂා කර ඇත්නම් .."

නැවත ධාවනය කිරීමෙන් පසු නමින් තරු ලකුණක් තිබේදැයි පරීක්ෂා කරන්න sudo tasksel.
(හෝ ධාවනය වන්නේ නම් ' මම ' tasksel --list-tasks).

ඔබ මෙය නොදකිනවා නම්, ඔබට බොහෝ විට 'කාර්ය සාධක මෙටා පැකේජය ' ස්ථාපනය කර නොමැත.


".. මගේ සේවාදායකයට අනුරූප පැකේජ තිබේදැයි මම පරීක්ෂා කරන්නේ කෙසේද?"

අතථ්‍ය යන්ත්‍ර ධාරක කාර්ය සාධක මෙටා පැකේජය යටතේ ස්ථාපනය කර ඇති දේ සොයා ගැනීමට ඔබට අවශ්‍ය නම්:

tasksel --list-tasks

(ඔබගේ නඩුවේ tasksel --list-tasks | grep virtප්රමාණවත්ය)

මෙය නිසි කාර්ය නාමය සහ එය ස්ථාපනය කර ඇත්ද යන්න පිළිබඳ ඇඟවීමක් ලබා දෙයි .

ඔබේ නඩුවේදී මෙම කාර්ය නාමය වේ virt-host.


"අතථ්‍ය යන්ත්‍ර සත්කාරක සමඟ එන පැකේජ මොනවාද?"

අවසාන විධානයෙන්, කාර්ය සාධක කාර්යයේ නම සොයා ගන්න.
ඊළඟ විධානය සඳහා මෙය අවශ්‍ය වේ:

tasksel --task-packages virt-host

මෙමඟින් නම සෑදී ඇති තනි කාර්ය සාධක මෙටා පැකේජය (එකතු කරන ලද '^' මගින් දක්වනු ලැබේ).
ඔබේ නඩුවේ එය එයයි virt-host^.

නිසි මෙටා-නම සොයාගත් පසු ඔබට apt භාවිතා කළ හැකිය:

 apt show virt-host^ | grep "Package:"

(හෝ ක්‍රියා නොකරන්නේ apt-cache show ...නම් apt show.)

දී ඇති මෙටා පැකේජය සෑදෙන සියලුම පැකේජ මෙයින් පෙන්වනු ඇත.

ඉන්පසු:

 dpkg -l {each individual pkg name listed above}

තනි පැකේජය ස්ථාපනය කර තිබේද / අස්ථාපනය කර ඇත්දැයි මෙය ඔබට කියනු ඇත (2 වන අකුරින් සටහන් කර ඇත: 'i' තත්වය යනු ස්ථාපනය කර ඇති බවයි). කාර්යය / මෙටා පැකේජය යටතේ ලැයිස්තුගත කර ඇති සියලුම පැකේජ සඳහා මෙය කරන්න.

මෙය මුල් ප්‍රශ්න වලට පිළිතුරු සැපයිය යුතුය.

පැති සටහන: /usr/share/tasksel/descs/ubuntu-tasks.desc ද Tasksel මෙටා පැකේජ පිළිබඳ විස්තර දරයි. ඔබ නම්: grep "virt" /usr/share/tasksel/descs/ubuntu-tasks.descඑය නිසි APT මෙටා පැකේජයේ නම පෙන්වනු ඇත. (ඔබේ නඩුවේ මෙයයි ubuntu-virt-server). ඔබට aptමෙම මෙටා නාමය සමඟ විධාන භාවිතා කළ හැකිය .

ඔබට කාර්ය සාධක පැකේජ ඉවත් කිරීමට අවශ්‍ය නම්, මෙය වල් පැලෑටි වලට ටිකක් ඇතුල් වේ. කරුණාකර https://askubuntu.com/a/88897/169878 හෝ වෙනත් පිළිතුරු ගණනක් විමසන්න .

"මෙටා" යෝග්‍ය පැකේජ කාර්ය සාධක පැකේජ නාමයන්ට නොගැලපෙන බව කරුණාවෙන් සලකන්න. වැඩි විස්තර සඳහා කරුණාකර Tasksel ප්‍රජා පිටුව බලන්න.


1
ප්‍රශ්න දෙකටම නිවැරදිව පිළිතුරු සපයයි. ඔබ අවතක්සේරු කරන්නේ නම්, හේතුවක් දෙන්න, නැතහොත් ඔවුන් එසේ නොවන්නේ මන්දැයි මට කියන්න.
bshea

5

කාර්ය සාධනය භාවිතා කරන්න ( sudo apt-get install taskselඔබට දැනටමත් එය නොමැති නම්) ධාවනය කරන්න tasksel --list-tasks.

කාර්යයන් මඟින් කාර්ය ලැයිස්තුවක් මුද්‍රණය කරනු ඇති අතර, iස්ථාපනය කර uඇති සෑම කාර්යයක් සඳහාම ඊළඟට සහ ස්ථාපනය නොකරන ලද එක් එක් කාර්යයට ඊළඟට ඇත.

ඔබට කාර්යය ස්ථාපනය කිරීමට අවශ්‍ය නම්, භාවිතා කරන්න tasksel install <task>. ඔබ සොයන කාර්යයේ නම virt-host.

මෘදුකාංග තෝරා ගැනීමේ අයිතම "කාර්යයන්" ලෙස හැඳින්වේ.


කාර්යයේ නම මට පැවසීම ගැන ස්තූතියි, එය මගේ එක් ගැටලුවක් විය, කුමන පැකේජයක් සෙවිය යුතුදැයි විශ්වාස නැත.
D.Zou

4

සරල විසඳුම:

apt listස්ථාපිත ඇසුරුම් ලැයිස්තුගත කරන විධානයක් දැන් තිබේ . ඔබට නිශ්චිත පැකේජයක් සමඟ සෙවිය හැකිය

apt list <package>

වැඩි විස්තර man aptසඳහා බලන්න . ඔබ නිශ්චිත පැකේජයේ නම නොදන්නේ නම්, ඔබට apt searchඅදාළ පැකේජ ලැයිස්තුවක් බැලීමට එහි කොටසක් අනුගමනය කළ හැකිය .



2

යමෙකු උනන්දුවක් දක්වන්නේ නම්, මම ඔබට කුඩා පිටපතක් නිර්මාණය කර ඇති අතර එමඟින් ඔබට ස්වයංක්‍රීයව ඇසුරුම් හෝ යෙදුම් ලැයිස්තුවකින් ස්ථාපනය කළ හැකිය, නැතහොත් ඒවා දැනටමත් ස්ථාපනය කර ඇත්දැයි පරීක්ෂා කරන්න:

#!/bin/bash
apt -qq list YOUR_LIST_GOES_HERE | grep -v "installed" | awk -F/ '{print $1}' > /root/list.txt
packages=$(cat /root/list.txt)
grep -q '[^[:space:]]' < /root/list.txt
CHECK_LIST=$?
if [[ $CHECK_LIST -eq 1 ]]; then
echo "Your packages are already installed"
else
echo "Installing packages"
apt-get  install -y $packages
fi

එය යමෙකුට උපකාරී වේ යැයි සිතමි.


aptස්ක්‍රිප්ට් වල භාවිතා නොකළ යුතුය, විධානය සැමවිටම පවසයි.
ස්මාර්

0

තවත් (අවශ්‍යයෙන්ම වඩා හොඳ නොවේ): ක්ෂේත්‍රය APT-Manual-Installedදිස්වන්නේ දැයි බලන්න apt show <pkgname>. එය නොමැති නම් පැකේජය ස්ථාපනය කර නැත. අවාසනාවට එය පෙන්වා නැත apt-cache show <pkgname>.

සෑම විටම මෙන්, aptමෙය අන්තර්ක්‍රියාකාරී භාවිතය සඳහා වන අතර ස්ක්‍රිප්ටින් සඳහා නිර්දේශ නොකරයි.


0

සමහර පැකේජ ස්ථාපනය කර ඇත්දැයි පරීක්ෂා කර නැතිවූ ඒවා වෙනත් ආකාරයකින් ස්ථාපනය කරන්න

pkgs='qemu-user pandoc'
if ! dpkg -s $pkgs >/dev/null 2>&1; then
  sudo apt-get install $pkgs
fi

වැඩි විස්තර සඳහා: /programming/1298066/check-if-an-apt-get-package-is-installed-and-then-install-it-if-its-not-on-linu/ 54239534 # 54239534

මීට පෙර සඳහන් කළ සමාන තාක්‍ෂණය: https://askubuntu.com/a/1102572/52975

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.