Answers:
නවීන අනුවාද apt
සඳහා මේ සඳහා නිශ්චිත ස්විචයක් ඇත:
apt list --upgradeable
පැරණි apt-get
විධානය සඳහා -u
ස්විචය යාවත්කාලීන කිරීම සඳහා ඇති පැකේජ ලැයිස්තුවක් පෙන්වයි:
# apt-get -u upgrade --assume-no
සිට apt-get
man පිටුව :
-u
- ෂෝ -උත්ශ්රේණිගත කරන ලද නවීකරණය කරන ලද පැකේජ පෙන්වන්න; යාවත්කාලීන කළ යුතු සියලුම පැකේජ ලැයිස්තුවක් මුද්රණය කරන්න. වින්යාස කිරීමේ අයිතමය: APT :: Get :: Show-Upgraded.
--assume-no සියලු විමසුමට ස්වයංක්රීය “නැත”. <== එය ස්ථාපනය කිරීම වැළැක්වීම සඳහා
-u
යනු පෙරනිමි විකල්පයකිapt-get
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
එය වෙනත් කෙනෙකුට උපකාර කරනු ඇතැයි අපේක්ෂා කරමු,
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
තවත් විකල්පයක්, එන්සෝටිබ් විසින් දේවානුභාවයෙන්:
aptitude search '~U' | wc -l
මෙම විධානය මඟින් නව පැකේජ ප්රතිදානය කිරීමට යෝග්යතාවය භාවිතා කරන අතර පසුව රේඛා ගණන් කිරීමට wc භාවිතා කරයි.
එක් පැත්තකින්, එන්සෝටිබ්ගේ විසඳුම වටා එක් උපුටා දැක්වීමක් නොමැතිව ~U
මට වැඩ නොකරන බව මට පෙනී ගියේය. (Wheezy, ZSH, aptitude 0.6.8.2)
යාවත්කාලීන කිරීම:
නව යෝග්යතාවයෙන් ඔබට කළ හැක්කේ:
apt list --upgradeable
පහසුම දේ:
apt list --upgradeable
ඔබට දුවන්න පුළුවන්
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 }'
dist-upgrade
භාවිතා කිරීමට අවශ්ය සමහර පැකේජ නැති කර ගැනීමට උත්සාහ කළ නමුත් නැති වී ගියේය aptitude
. aptitude install $(apt-get -s dist-upgrade | awk '/^Inst/ { print $2 }')
උපක්රමය කළා!
"ඇප්ටිකෝන්" පැකේජය දෙස බලන්න:
apticron - අපේක්ෂිත පැකේජ යාවත්කාලීන කිරීම් ගැන තැපැල් කිරීමට සරල මෙවලමක්
ඇප්ටිකෝන් යනු සරල පිටපතක් වන අතර එය ආරක්ෂක යාවත්කාලීනයන් වැනි අපේක්ෂිත පැකේජ යාවත්කාලීනයන් ගැන දිනපතා විද්යුත් තැපැල් යවයි.
apt-get update && apt-get -s upgrade
සත්ය වශයෙන්ම ස්ථාපනය නොකර පවතින යාවත්කාලීන කිරීම් ලැයිස්තුගත කරයි.
පළමු විධානය මඟින් පැකේජ දර්ශක ලිපිගොනු යාවත්කාලීන කිරීමට පෙර යාවත්කාලීන වේ (මේ අනුව -s) යාවත්කාලීන කිරීම. "-s" විසින් ස්ථාපනය කරන ලද නමුත් ඇත්ත වශයෙන්ම කිසිවක් ස්ථාපනය නොකරන පැකට් පෙන්වන අනුකරණය කරන ලද යාවත්කාලීන කිරීමක් කරනු ඇත.
ඊට පටහැනිව, "-s" වෙනුවට "-u" සත්ය වශයෙන්ම තහවුරු කිරීමෙන් පසුව ස්ථාපනය වේ.
-s, --simulate, --just-print, --dry-run, --recon, --no-act
, නැවත සකස් කිරීම සහ වියළීම මගේ පුද්ගලික ප්රියතමයන් වේ.
හැකි වැඩිදියුණු කිරීම් පිළිබඳ සම්පූර්ණ අනුවාද තොරතුරු මට අවශ්ය විය, එබැවින් මම ජේසන්ව්රියන්ගේ පිළිතුර වෙනස් කිරීමක් භාවිතා කළෙමි:
apt-get -V -u upgrade
එය සරල හා IMO සාධාරණ ලෙස ආකෘතිගත කළ නිමැවුමකි.
හි ප්රතිදානය පෙරීම කරන්න
apt-get update && apt-get -s -V -u upgrade
ඔබගේ ලොගයේ කැමති තොරතුරු පමණක් තබා ගැනීමට.
බොහෝ දුරට, ඔබට පේළියෙන් පසු ලස්සන කොටස අවශ්ය වනු ඇත
...
පහත පැකේජ යාවත්කාලීන කරනු ලැබේ:
...
එයට ආරම්භයේ අවකාශ කිහිපයක් ඇත.
මෙම පිළිතුරෙන් ආනුභාව ලත් තවත් ලයිනර් යානයක් ජෙට් කරන්න :
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)
apt-get update > /dev/null && apt-get --just-print upgrade | grep "Inst "
ක්රෝන් ඊමේල් සඳහා වඩාත් සරල ය; පරිශීලක පුනරාවර්තනයක් නොමැත, සහ යාවත්කාලීන කිරීම් නොමැති නම් ප්රතිදානයක් නොමැත.
@ ජේසන්ව්රියන්ගේ පිළිතුරට අනතුරු ඇඟවීමක් ලිවීමෙන් පසු, මට මගේම විසඳුමක් ලබා දීමට අවශ්යයි:
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
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
විචල්යතාවයක් ලෙස මම පහත සඳහන් දෑ භාවිතා කරමි:
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
වරප්රසාද ලත් ප්රවේශයකින් ඔබට තවමත් ඇමතිය යුතුය.
මෙම තියෙනවා apt-show-versions
මෙවලමක්. පවතින යාවත්කාලීනයන් ක්රියාත්මක වන බව පෙන්වීමට:
apt-show-versions -u
මම මෙය භාවිතා කිරීමට කැමතියි:
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])
ලබා ගත හැකි යාවත්කාල කිරීම් තිබේ නම් සහ කිසිවක් නොමැති නම්. මේ ආකාරයෙන් ඔබට එය අධීක්ෂණ විසඳුමක් සමඟ සම්බන්ධ කළ හැකිය.