පවතින යාවත්කාලීන කිරීම් ලැයිස්තුගත කරන්න, නමුත් ඒවා ස්ථාපනය නොකරන්න


234

මගේ පැකේජ සඳහා යාවත්කාලීනයන් තිබේ නම් මගේ ක්‍රෝන්-ධාවන වාර්තාකරණ පිටපත මට දැනුම් දීමට මට අවශ්‍යය. apt-getලබා ගත හැකි යාවත්කාලීනයන් ලැයිස්තුවක් මට ලබා දීමට ක්‍රමයක් නමුත් වැඩි යමක් නොකරන්නේද?

Answers:


258

apt

නවීන අනුවාද aptසඳහා මේ සඳහා නිශ්චිත ස්විචයක් ඇත:

apt list --upgradeable

apt-get

පැරණි apt-getවිධානය සඳහා -uස්විචය යාවත්කාලීන කිරීම සඳහා ඇති පැකේජ ලැයිස්තුවක් පෙන්වයි:

# apt-get -u upgrade --assume-no

සිට apt-getman පිටුව :

-u
-
 ෂෝ -උත්ශ්‍රේණිගත කරන ලද නවීකරණය කරන ලද පැකේජ පෙන්වන්න; යාවත්කාලීන කළ යුතු සියලුම පැකේජ ලැයිස්තුවක් මුද්‍රණය කරන්න. වින්‍යාස කිරීමේ අයිතමය: APT :: Get :: Show-Upgraded.
--assume-no  සියලු විමසුමට ස්වයංක්‍රීය “නැත”. <== එය ස්ථාපනය කිරීම වැළැක්වීම සඳහා


19
ඔබ "Y" ටයිප් කර Enter යතුර ඔබන්න නම්, මෙම විධානය මඟින් යාවත්කාල කිරීම් ස්ථාපනය කරනු ඇත . "-S" එකතු කිරීමට මම අනිවාර්යයෙන්ම නිර්දේශ කරමි, එසේ
නොමැතිනම්

5
මේ එය ඉතා ආදානය සඳහා (අමතර විකල්ප තොරව) නිසා විධානය බොත්තමක් ඔබා එය වැරදි පිළිතුර හා පරිශීලක වැරදි ආදාන ඇතුල් නම්, ඇසුරුම, ස්ථාපනය කරනු පද්ධතිය නව්යන කරන නො වන එම විශ්රාම වැටුප් (මගේ පද්ධතිය මත සිදු) අවශ්ය දේ
ඩැනියෙල් ඇල්ඩර්

සහ btw: -uයනු පෙරනිමි විකල්පයකිapt-get
ඩැනියෙල් ඇල්ඩර්

1
OrThorSummoner '-s' ඔබට අවශ්‍ය දේ කර මුල නොමැතිව ක්‍රියා කරයි
නෙවෙලිස්

68
apt-get --just-print upgrade

පහසුවෙන් කියවිය නොහැකි නම්, පහත දැක්වෙන්නේ apt-get හි ප්‍රතිදානය විග්‍රහ කිරීම සඳහා පර්ල් වන් ලයිනර් ය:

apt-get --just-print upgrade 2>&1 | perl -ne 'if (/Inst\s([\w,\-,\d,\.,~,:,\+]+)\s\[([\w,\-,\d,\.,~,:,\+]+)\]\s\(([\w,\-,\d,\.,~,:,\+]+)\)? /i) {print "PROGRAM: $1 INSTALLED: $2 AVAILABLE: $3\n"}'

මෙය මෙවැනි දෙයක් ප්‍රතිදානය කළ යුතුය:

PROGRAM: grub-pc INSTALLED: 1.99-21ubuntu3.1 AVAILABLE: 1.99-21ubuntu3.9

එය වෙනත් කෙනෙකුට උපකාර කරනු ඇතැයි අපේක්ෂා කරමු,


1
හිනාව සඳහා: apt-get -s upgra | awk -F '[] [()] +' '/ ^ Inst / {printf "Prog:% s \ tcur:% s \ tavail:% s \ n", $ 2, $ 3, $ 4}'
tink

8
මේ ආකාරයට භාවිතා කරන්නේ නම් එය වඩාත් ලස්සන පෙනුමක් ද විය හැකිය column:apt-get --just-print upgrade 2>&1 | perl -ne 'if (/Inst\s([\w,\-,\d,\.,~,:,\+]+)\s\[([\w,\-,\d,\.,~,:,\+]+)\]\s\(([\w,\-,\d,\.,~,:,\+]+)\)? /i) {print "PROGRAM: $1 INSTALLED: $2 AVAILABLE: $3\n"}' | column -s " " -t
ඇන්ටෝනියෝ

1
Nt ඇන්ටෝනියෝක් විශිෂ්ටයි!
nick

1
මෙම පර්ල් කේතය මගේ යන්ත්‍රය හැක් කරනු ඇතැයි මම බිය වෙමි ...;)
ක්‍රිස්

Nt ඇන්ටෝනියෝකේ ඔබ වැඩසටහන් වල අකාරාදී පිළිවෙලට වර්ග කරන්නේ කෙසේද?
රිචී

35

තවත් විකල්පයක්, එන්සෝටිබ් විසින් දේවානුභාවයෙන්:

aptitude search '~U' | wc -l

මෙම විධානය මඟින් නව පැකේජ ප්‍රතිදානය කිරීමට යෝග්‍යතාවය භාවිතා කරන අතර පසුව රේඛා ගණන් කිරීමට wc භාවිතා කරයි.

එක් පැත්තකින්, එන්සෝටිබ්ගේ විසඳුම වටා එක් උපුටා දැක්වීමක් නොමැතිව ~Uමට වැඩ නොකරන බව මට පෙනී ගියේය. (Wheezy, ZSH, aptitude 0.6.8.2)

යාවත්කාලීන කිරීම:

නව යෝග්‍යතාවයෙන් ඔබට කළ හැක්කේ:

apt list --upgradeable


මේ සඳහා ස්තූතියි, apt list විධානය මට අවශ්‍ය දේම විය.
dvorak

මෙම විසඳුම සමඟ ඔබට සුඩෝ / රූට් අවශ්‍ය නොවේ.
ගුනි

27

පහසුම දේ:

apt list --upgradeable


මින්ට් මත ක්‍රියා නොකරයි.
ychaouche

1
වැඩිදියුණු කිරීම් තිබේද නැද්ද යන්න මත පදනම්ව මෙය විවිධ පිටවීමේ කේත ලබා නොදීම ලැජ්ජාවකි. මෙය ස්ක්‍රිප්ට් එකක භාවිතා කිරීමට හැකිවීම සතුටක් වනු ඇත.
ඩේල් ඇන්ඩර්සන්

20

ඔබට දුවන්න පුළුවන්

aptitude -F%p --disable-columns search ~U

හෝ ලේඛනගත නොකළ

/usr/lib/update-notifier/apt-check -p; echo

apt-getසමාකරණයක් භාවිතා කරන තවත් ක්‍රමයක් :

apt-get -s dist-upgrade | awk '/^Inst/ { print $2 }'

1
මෙම යෝග්‍යතා විධානය මට බෙහෙවින් ප්‍රයෝජනවත් වූ අතර මූල අවශ්‍ය නොවීය
ජේම්ස්සීඩබ්ලිව්

apt-get -s dist
update

ඔබට ස්තුතියි! මෙය තරමක් යැපීමේ නිරයෙන් ඉවත් විය. dist-upgradeභාවිතා කිරීමට අවශ්‍ය සමහර පැකේජ නැති කර ගැනීමට උත්සාහ කළ නමුත් නැති වී ගියේය aptitude. aptitude install $(apt-get -s dist-upgrade | awk '/^Inst/ { print $2 }')උපක්‍රමය කළා!
ජේන්

11

"ඇප්ටිකෝන්" පැකේජය දෙස බලන්න:

apticron - අපේක්ෂිත පැකේජ යාවත්කාලීන කිරීම් ගැන තැපැල් කිරීමට සරල මෙවලමක්

ඇප්ටිකෝන් යනු සරල පිටපතක් වන අතර එය ආරක්ෂක යාවත්කාලීනයන් වැනි අපේක්ෂිත පැකේජ යාවත්කාලීනයන් ගැන දිනපතා විද්‍යුත් තැපැල් යවයි.

https://packages.debian.org/buster/apticron


ඔබේ සබැඳිය කැඩී ඇත ...
ඇලෙක්සිස් විල්කේ

10
apt-get update && apt-get -s upgrade

සත්‍ය වශයෙන්ම ස්ථාපනය නොකර පවතින යාවත්කාලීන කිරීම් ලැයිස්තුගත කරයි.

පළමු විධානය මඟින් පැකේජ දර්ශක ලිපිගොනු යාවත්කාලීන කිරීමට පෙර යාවත්කාලීන වේ (මේ අනුව -s) යාවත්කාලීන කිරීම. "-s" විසින් ස්ථාපනය කරන ලද නමුත් ඇත්ත වශයෙන්ම කිසිවක් ස්ථාපනය නොකරන පැකට් පෙන්වන අනුකරණය කරන ලද යාවත්කාලීන කිරීමක් කරනු ඇත.

ඊට පටහැනිව, "-s" වෙනුවට "-u" සත්‍ය වශයෙන්ම තහවුරු කිරීමෙන් පසුව ස්ථාපනය වේ.


2
ඕනෑම දෙයකින් අනුකරණ විකල්පය අවුලුවාලිය හැකිය -s, --simulate, --just-print, --dry-run, --recon, --no-act, නැවත සකස් කිරීම සහ වියළීම මගේ පුද්ගලික ප්‍රියතමයන් වේ.
ThorSummoner

9

හැකි වැඩිදියුණු කිරීම් පිළිබඳ සම්පූර්ණ අනුවාද තොරතුරු මට අවශ්‍ය විය, එබැවින් මම ජේසන්ව්රියන්ගේ පිළිතුර වෙනස් කිරීමක් භාවිතා කළෙමි:

apt-get -V -u upgrade

එය සරල හා IMO සාධාරණ ලෙස ආකෘතිගත කළ නිමැවුමකි.


3

හි ප්‍රතිදානය පෙරීම කරන්න

apt-get update && apt-get -s -V -u upgrade

ඔබගේ ලොගයේ කැමති තොරතුරු පමණක් තබා ගැනීමට.

බොහෝ දුරට, ඔබට පේළියෙන් පසු ලස්සන කොටස අවශ්ය වනු ඇත

...

පහත පැකේජ යාවත්කාලීන කරනු ලැබේ:

...

එයට ආරම්භයේ අවකාශ කිහිපයක් ඇත.


හායි සහ වෙබ් අඩවියට සාදරයෙන් පිළිගනිමු. එය පවතින ආකාරයට, ඔබේ පිළිතුර මූලික වශයෙන් පවත්නා ඒවා නැවත සකස් කිරීමක් වන අතර එමඟින් අලුත් කිසිවක් එකතු නොවේ. නිදසුනක් ලෙස, ප්‍රතිදානය පෙරහන් කරන්නේ කෙසේද යන්න පැහැදිලි කිරීම, විවිධ ස්විචයන් කරන්නේ කුමක්ද යන්න පිළිබඳ පැහැදිලි කිරීමක් එකතු කිරීමෙන් ඔබට එය වැඩිදියුණු කළ හැකිය
terdon

2

මෙම පිළිතුරෙන් ආනුභාව ලත් තවත් ලයිනර් යානයක් ජෙට් කරන්න :

function a { read input;dpkg -l ${input} | grep " ${input} " | awk '{$1=$2=$3=$4="";print $0}' | sed 's/^ *//';unset input;};{ apt-get --just-print upgrade 2>&1 | perl -ne 'if (/Inst\s([\w,\-,\d,\.,~,:,\+]+)\s\[([\w,\-,\d,\.,~,:,\+]+)\]\s\(([\w,\-,\d,\.,~,:,\+]+)\)? /i) {print "$1 (\e[1;34m$2\e[0m -> \e[1;32m$3\e[0m)\n"}';} | while read -r line; do echo -en "$line $(echo $line | awk '{print $1}' | a )\n"; done;

ප්‍රතිදානය මේ වගේ (පාට):

locales (2.13-38+deb7u7 -> 2.13-38+deb7u8) Embedded GNU C Library: National Language (locale) data [support]
linux-headers-3.2.0-4-amd64 (3.2.65-1+deb7u1 -> 3.2.65-1+deb7u2) Header files for Linux 3.2.0-4-amd64
linux-headers-3.2.0-4-common (3.2.65-1+deb7u1 -> 3.2.65-1+deb7u2) Common header files for Linux 3.2.0-4
sudo (1.8.5p2-1+nmu1 -> 1.8.5p2-1+nmu2) Provide limited super user privileges to specific users

ඔබට කෙටි විස්තරය අවශ්‍ය නැතිනම් මෙය භාවිතා කරන්න:

{ apt-get --just-print upgrade 2>&1 | perl -ne 'if (/Inst\s([\w,\-,\d,\.,~,:,\+]+)\s\[([\w,\-,\d,\.,~,:,\+]+)\]\s\(([\w,\-,\d,\.,~,:,\+]+)\)? /i) {print "$1 (\e[1;34m$2\e[0m -> \e[1;32m$3\e[0m)\n"}';} | while read -r line; do echo -en "$line\n"; done;

ප්‍රතිදානය:

locales (2.13-38+deb7u7 -> 2.13-38+deb7u8)
linux-headers-3.2.0-4-amd64 (3.2.65-1+deb7u1 -> 3.2.65-1+deb7u2)
linux-headers-3.2.0-4-common (3.2.65-1+deb7u1 -> 3.2.65-1+deb7u2)
sudo (1.8.5p2-1+nmu1 -> 1.8.5p2-1+nmu2)

එක් ලයිනර් ඉතා අපූරු ය, එය සමහර පැකේජවල විස්තරය ප්‍රතිදානය නොකරයි.
ychaouche

2
apt-get update > /dev/null && apt-get --just-print upgrade | grep "Inst "

ක්‍රෝන් ඊමේල් සඳහා වඩාත් සරල ය; පරිශීලක පුනරාවර්තනයක් නොමැත, සහ යාවත්කාලීන කිරීම් නොමැති නම් ප්‍රතිදානයක් නොමැත.


1

@ ජේසන්ව්රියන්ගේ පිළිතුරට අනතුරු ඇඟවීමක් ලිවීමෙන් පසු, මට මගේම විසඳුමක් ලබා දීමට අවශ්‍යයි:

apt-get dist-upgrade --assume-no

අවාසනාවකට මෙන්, මෙය ඩෙබියන් වීසි සමඟ ක්‍රියා නොකරන අතර මට තවමත් යාවත්කාලීන කර නොමැති lxc බහාලුම් කිහිපයක් පරීක්ෂා කිරීමට සිදු විය. මෙම පෝරමය සැමවිටම ක්‍රියාත්මක වනු ඇත:

apt-get dist-upgrade </dev/null

අවසාන වශයෙන්, ප්‍රතිදානය නැවත ආකෘතිකරණය කිරීමට මට අවශ්‍ය විය. මම ඇමතුම නැවත වෙනස් කිරීමට තෝරා ගත්තෙමි ( --dry-runසියලු අතිරේක ප්‍රතිදානයන් භාවිතා කිරීම නමුත් නොසලකා හැරීම) එය වඩාත් ආරක්ෂිත යැයි හැඟෙන නිසා:

apt-get --dry-run dist-upgrade | awk '
BEGIN{p=0}
/^The/{p=1;t=$0}
/no longer required/{p=0}
#optional: /been kept back/{p=0}
p && t{print t;t=""}
/^  / && p{print $0}
'

ප්‍රතිලාභ:

The following packages have been kept back:
  iproute
The following packages will be upgraded:
  unzip

1

apt-check බොහෝ විට වඩාත්ම කාර්යක්ෂම ස්ක්‍රිප්ටින් ක්‍රමය වේ.

/usr/lib/update-notifier/apt-check 2>&1 | cut -d ';' -f 1

ඉතා කුඩා වෙනස් කිරීමක් මඟින් ඔබට පෙන්වන්නේ ආරක්ෂක යාවත්කාලීන කිරීම් පමණි.

/usr/lib/update-notifier/apt-check 2>&1 | cut -d ';' -f 2

0

විචල්‍යතාවයක් ලෙස මම පහත සඳහන් දෑ භාවිතා කරමි:

apt-get -V -s dist-upgrade \
    |grep -E "^   .*=>.*" \
    |awk 'BEGIN {
        ul=sprintf("%*s",40,""); gsub(/ /,"-",ul);
        printf "%-30s %-30s %-30s\n", "Package", "Installed", "Available";
        printf "%-30.30s %-30.30s %-30.30s\n", ul, ul, ul;
     }
     {
        printf "%-30s %-30s %-30s\n",
               $1,
               substr($2,2),
               substr($4,1,length($4)-1)
     }'

නම් කරන ලද ස්ක්‍රිප්ටයකට එය ඇලවීම මඟින් පරිශීලකයා නොසලකා සියලු යාවත්කාලීන කිරීම් ලැයිස්තුවක් ලබා ගැනීමට apt-updatesඔබට ඇමතිය හැකිය apt-updates.

apt-get updateවරප්‍රසාද ලත් ප්‍රවේශයකින් ඔබට තවමත් ඇමතිය යුතුය.


ප්‍රතිදානය පෙන්වන්නේ පැකේජයේ නම පමණි (පළමු තීරුව), දෙවන තීරුව සෑම විටම "=" මුද්‍රණය කරන අතර තෙවන තීරුව සෑම විටම හිස් ය. මම මින්ට් මත සිටිමි.
ychaouche

0

මෙම තියෙනවා apt-show-versionsමෙවලමක්. පවතින යාවත්කාලීනයන් ක්‍රියාත්මක වන බව පෙන්වීමට:

apt-show-versions -u

0

මම මෙය භාවිතා කිරීමට කැමතියි:

apt-get -qq update && apt-get -qq -s upgrade

ඔබට මේ වගේ ප්‍රතිදානයක් ලැබේ:

Inst linux-base [3.5] (4.5~deb8u1 Debian-Security:8/oldstable [all])
Conf linux-base (4.5~deb8u1 Debian-Security:8/oldstable [all])

ලබා ගත හැකි යාවත්කාල කිරීම් තිබේ නම් සහ කිසිවක් නොමැති නම්. මේ ආකාරයෙන් ඔබට එය අධීක්ෂණ විසඳුමක් සමඟ සම්බන්ධ කළ හැකිය.

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.