අතින් ස්ථාපනය කර ඇති පැකේජ ලැයිස්තුවක් ලබා ගැනීමට apt
හෝ පැකේජයක් අතින් හෝ ස්වයංක්රීයව ස්ථාපනය කර aptitude
ඇත්දැයි සොයා ගැනීමට මා කැමතිය foobar
. විධාන රේඛාවෙන් එය කිරීමට පිළිවෙලක් තිබේද?
අතින් ස්ථාපනය කර ඇති පැකේජ ලැයිස්තුවක් ලබා ගැනීමට apt
හෝ පැකේජයක් අතින් හෝ ස්වයංක්රීයව ස්ථාපනය කර aptitude
ඇත්දැයි සොයා ගැනීමට මා කැමතිය foobar
. විධාන රේඛාවෙන් එය කිරීමට පිළිවෙලක් තිබේද?
Answers:
ඔබට මෙම එක්-ලයිනර් දෙකෙන් එකක් භාවිතා කළ හැකිය. දෙකම මගේ යන්ත්රයේ එකම ප්රතිදානය ලබා දෙන අතර මේ දක්වා (2014 ජූලි 6) මේ දක්වා යෝජනා කර ඇති සියලු විසඳුම් වලට වඩා නිරවද්ය ය.
භාවිතා කිරීම apt-mark
:
comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)
භාවිතා කිරීම aptitude
:
comm -23 <(aptitude search '~i !~M' -F '%p' | sed "s/ *$//" | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)
මම මේ සැක නමුත් පැකේජ ඉතා සුළු තවමත්, සිදුරු තුලින් වැටී ඇත ඇත්තටම Totem ලැබෙන codec ස්ථාපකය මඟින් හෝ අයිතිය ස්ථාපනය කළ පසුව භාෂා ප්රාදේශීයකරණය පිහිටුවීම් හෝ උදා: හරහා, පරිශීලක විසින් ස්ථාපනය කරන ලදි. එසේම, ලිනක්ස්-හෙඩර් අනුවාදයන් සමුච්චය වී ඇති බව පෙනේ, මම ස්ථාපනය කර ඇත්තේ අනුවාද-විශේෂිත නොවන මෙටා පැකේජය පමණි. උදාහරණ:
libreoffice-help-en-gb
openoffice.org-hyphenation
gstreamer0.10-fluendo-mp3
linux-headers-3.13.0-29
එය ක්රියාත්මක වන්නේ කෙසේද:
sed
තීරු රේඛාවේ අවසානයේ ඉතිරිව ඇති හිස් අවකාශය ඉවත් කරයි.වෙනත් හැකියාවන් ද ක්රියාත්මක නොවේ:
ubuntu-14.04-desktop-amd64.manifest
ගොනුව භාවිතා කිරීම ( මෙහි උබුන්ටු 14.04 සඳහා) වෙනුවට /var/log/installer/initial-status.gz
. තවත් පැකේජ ඒවා නොමැති වුවද අතින් ස්ථාපනය කර ඇති බව පෙන්වයි.apt-mark showauto
වෙනුවට භාවිතා කිරීම /var/log/installer/initial-status.gz
. apt-mark
උදාහරණයක් ලෙස xserver-xorg පැකේජය ඇතුළත් නොවන අතර අනෙක් ගොනුවට ඇතුළත් වේ.මම වෙනත් විවිධ ස්ටැක්එක්ස්චේන්ජ් පෝස්ට් යොමු ලෙස භාවිතා කළෙමි, කෙසේ වෙතත් කිසිවක් ක්රියාත්මක නොවන අතර ඉහත විසඳුම:
දෙකම ඉහත විසඳුමට වඩා වැඩි පැකේජ ලැයිස්තුගත කරයි.
සංස්කරණය කරන්න: ඔබ කලින් නිකුතුවකින් යාවත්කාලීන කර ඇත්නම් කුමක් කළ යුතුද:
ඔබ උබුන්ටු එක් නිකුතුවක සිට තවත් නිකුතුවකට යාවත්කාලීන කර ඇත්නම්, ඔබට මෙම ක්රියාවලිය සකස් කිරීමට අවශ්ය වනු ඇත. එවැනි අවස්ථාවකදී, වත්මන් නිකුතුවෙන් ආරම්භක-status.gz ගොනුවට අමතරව නව නිකුතුවේ මැනිෆෙස්ට් ගොනුව (ඉහත බලන්න) පරීක්ෂා කරමි. වෙනත් සංසන්දනයක් එකතු කිරීමෙන් ඔබට එය පහසුවෙන් කළ හැකිය. මැනිෆෙස්ට් ගොනුව අවාසනාවන්ත ලෙස ආරම්භක_ස්ටැටස්.ජී.එස් ගොනුව කරන සෑම දෙයක්ම අඩංගු නොවන බැවින් මැනිෆෙස්ට් ගොනුව භාවිතා කිරීම ක්රියා නොකරනු ඇත (මම පරීක්ෂා කළෙමි).
/var/log/installer/initial-status.gz
මෙය මට වැඩ කළේ නැත . එසේම මෙය දැන ගැනීම සඳහා යෝග්ය ලකුණු කිරීම මත රඳා පවතීද නැද්ද යන්න දැන ගැනීමට මට අවශ්යද manual
?
showmanual
විධානය ක්රියාත්මක කළෙමි (පහළ). comm
(වර්ග කළ) ලැයිස්තු දෙක සංසන්දනය කිරීමට භාවිතා කරන්න. මෙම showmanual
ප්රතිඵලය මට 1.840 දුන් තවත් සිට අද්විතීය පැකේජ apt-mark showmanual
මෙම ක්රමය මගින් පෙන්වා නැත. මෙම comm
විධාන ප්රතිදානයට කිසිදු පැකේජයක් අද්විතීය නොවීය. මගේ පරිගණකය සඳහා පැකේජ 894 ක් ප්රති .ල දෙකෙහිම ලැයිස්තුගත කර ඇති බව සටහන් කිරීම වඩාත් සිත්ගන්නා සුළු යැයි මම සිතමි . මෙතරම් විශාල විෂමතාවයක් ඇත්තේ මන්දැයි නිශ්චිතවම කිව නොහැක. සමහර (බොහෝ?) පැකේජ විශේෂිත නිකුතුවක් ලෙස පෙනේ. XOrg, GTK සංරචක වැනි lib*
දේවල් යාවත්කාලීන විය හැකිය. කෙසේ හෝ මෙම පිළිතුර ඉතා හොඳ ආරම්භයකි.
apt-mark showmanual
. වෙනස්කම් කොපමණ ප්රමාණයක් දැකිය හැකිද යන්න සිත්ගන්නා කරුණකි. ඔබේ ලැයිස්තුවේ පැකේජ 238 ක් ඇති අතර ප්රදර්ශනමය පැකේජ 1717 ක් ලබා දෙයි. ස්ථාපනය කර ඇති පැකේජ 2179 අතුරින් ලැයිස්තු දෙකෙහිම ඇත්තේ 223 ක් පමණි, 15 ක් ඇත්තේ ඔබගේ පමණි (උදාහරණ: nodejs, lightdm) සහ 223 ප්රදර්ශන අත්පොතෙහි පමණි (උදාහරණ: xserver-xorg, උබුන්ටු-ඩෙස්ක්ටොප්). ඔබේ ලැයිස්තුව වඩාත් ප්රයෝජනවත් යැයි හැඟේ, නමුත් මෙම වෙනස්කම් පැමිණෙන්නේ කොහෙන්දැයි නොදැන එය තීරණය කිරීම පහසු නැත ... (නමුත් මට විශ්වාසයි මම එන්ජින්එක්ස් සහ ලයිට් ඩීඑම් අතින් ස්ථාපනය කර ඇති බව ...) [සමාවෙන්න මම ලිව්වා ද;)]
zenity
), 2) මා අසා ඇති නමුත් මූලික ක්රියාකාරිත්වය (වැනි acpi-support
), 3) දේවල් එය මට 100% ක් printer-driver-xxx
thunderbird-locale-en
පැකේජයේ නවතම අනුවාද වල, apt-mark විධානය ද ඇත
apt-mark showmanual
linux-image-3.11.0-*-generic
ආදිය අත්පොත ලෙස සැලකීමට මගේ පද්ධතියේ කිසිදු හේතුවක් නැත
linux-image-3.13.0-24-generic
අත්පොත නමුත් ධාරාව linux-image-3.13.0-27-generic
ස්වයංක්රීයයි. යොමු කිරීමේ පැකේජයක් උත්ශ්රේණිගත කිරීම (මෙම අවස්ථාවේ දී linux-image-generic
, පරායත්තයන් වෙනස් කළ), අතින් සලකුණ ස්වයංක්රීයව සකසා ඇති බව පෙනේ
apt-get autoremove
. මෙය නියත වශයෙන්ම ඔබට අවශ්ය දේ නොවේ.
උබුන්ටු 16.04 සඳහා, ලොග් ගොනුව බලන්න /var/log/apt/history.log
.
උදාහරණයක් වශයෙන්:
zgrep 'Commandline: apt' /var/log/apt/history.log /var/log/apt/history.log.*.gz
එය පරිපූර්ණ නොවේ, නමුත් මා අතින් ස්ථාපනය කර ඇති දේ හරියටම පැහැදිලි කිරීම ඉතා හොඳයි. -B 1
එය ස්ථාපනය කර ඇත්තේ කවදාදැයි බැලීමට grep එක මත තබන්න .
නිදර්ශන ප්රතිදානය
Commandline: apt install postgresql-9.5-plv8
Commandline: aptdaemon role='role-install-file' sender=':1.85'
Commandline: apt install task
Commandline: apt autoremove
Commandline: apt install atom
Commandline: apt upgrade
Commandline: apt-get install asciinema
Commandline: apt install iperf3
Commandline: apt upgrade
Commandline: apt-get install chromium-browser
Commandline: apt install joe cpanminus build-essential postgresql libdbd-pg-perl libcrypt-openssl-bignum-perl libcrypt-openssl-rsa-perl libio-socket-ssl-perl libnet-ssleay-perl libssl-dev
Commandline: aptdaemon role='role-commit-packages' sender=':1.2314'
Commandline: apt install git
Commandline: apt install sqlite
Commandline: apt install whois
Commandline: apt install libdbd-pg-perl
Commandline: apt install perl-doc
Commandline: apt upgrade
මෙය එන්නේද නැද්ද යන්න නිශ්චිත aptitude
නැත. එය උබුන්ටු මෘදුකාංග ඩෙස්ක්ටොප් යෙදුමෙන් ස්ථාපනය කර ඇති බවක් නොපෙනේ.
apt-mark showauto | grep -iE '^foobar$'
පැකේජය ස්වයංක්රීයව ස්ථාපනය කර ඇත්නම් "foobar" ප්රතිදානය කරනු ඇත, වෙනත් කිසිවක් නැත.
aptitude search '!~M ~i'
ස්වයංක්රීයව ස්ථාපනය කර නොමැති ඇසුරුම් ලැයිස්තුගත කරයි. 10.10 සිට උබුන්ටු ඩෙස්ක්ටොප් පරිගණකයේ පෙරනිමි ස්ථාපනයෙහි කොටසක් නොවනු ඇත.
aptitude search
සියලුම පැකේජයන් අතින් ස්ථාපනය කර ඇති ඒවා පමණක් නොවේ (OP ට අවශ්ය වූයේ එය යැයි මම සිතමි)
aptitude search '!~M ~i'
අතර එය පැකේජ 1043 ක් ලැයිස්තුගත කරයි. මම බොහෝ පැකේජ අතින් ස්ථාපනය කර ඇති ක්රමයක් නොමැත.
පහත දැක්වෙන ස්ක්රිප්ට් මඟින් ස්වයංක්රීය ස්ථාපනය සඳහා සකසා නොමැති සියලුම පැකේජ මුද්රණය කරනු ඇත.
#!/usr/bin/python
try:
import apt_pkg
except ImportError:
print "Error importing apt_pkg, is python-apt installed?"
sys.exit(1)
apt_pkg.init()
STATE_FILE = apt_pkg.config.find_dir("Dir::State") + "extended_states"
auto = set()
tagfile = apt_pkg.TagFile(open(STATE_FILE))
while tagfile.step():
pkgname = tagfile.section.get("Package")
autoInst = tagfile.section.get("Auto-Installed")
if not int(autoInst):
auto.add(pkgname)
print "\n".join(sorted(auto))
එය පදනම් වී ඇත්තේ ස්වයංක්රීයව ස්ථාපනය කර ඇති පැකේජයන් apt-mark මුද්රණය කරන්නේ කෙසේද යන්න මතය.
sys.exit(1)
නොමැතිව භාවිතා කිරීමෙන් import sys
පයිතන්ගේ නවතම අනුවාද වල දෝෂයක් ඇතිවිය හැකිය. එක්කෝ import sys
හෝ භාවිතා කරන්න exit(1)
.
සියලුම පැකේජ ලැයිස්තුවක් ලබා ගැනීම සඳහා (ස්ථාපනය කර නැත, පරිශීලකයා විසින් ස්ථාපනය කර හෝ පෙරනිමියෙන් ස්ථාපනය කර ඇත, සියලු PPA හරහා), apt
පහත දැක්වෙන ක්රමය භාවිතා කරයි:
apt list [option]
මේ සඳහා ප්රයෝජනවත් විය හැකි විකල්ප:
--installed
පද්ධතියේ ස්ථාපනය කර ඇති පැකේජ පමණක් පෙන්වීමට (50,000+ ක් පමණ)
--manual-installed
විධානයක් මගින් පැහැදිලිව ස්ථාපනය කර ඇති පැකේජයන් සෘජුව හෝ පරායත්තයන් ලෙස ලැයිස්තු ගත කිරීමට.
විකල්පයක් ලෙස, ඔබට කළ හැක්කේ:
apt list --manual-installed | grep -F \[installed\]
පරිශීලක විධාන සහ ඒවායේ පරායත්තතාවයන්ගෙන් පමණක් ඇති වූ පැකේජ ලැයිස්තුවක් ලබා ගැනීමට සහ අනුවාදය සහ ගෘහ නිර්මාණ සහාය වැනි අමතර තොරතුරු ලබා ගැනීමට (x86, x86_64, amd64, සියල්ල, ආදිය)
කිහිප දෙනෙකු අදහස් දක්වා ඇති පරිදි, apt-mark showmanual ටිකක් දෝෂ සහිත බව පෙනේ (මම එය දෝෂ 727799 ලෙස වාර්තා කළෙමි ). මම එය භාවිතා කරන විට, එය ඇත්ත වශයෙන්ම / var / lib / apt / extended_states (මෙය ගබඩා කළ යුතු තැන) තුළ පවා ලොග් වී නැති බොහෝ දේ වාර්තා කරයි, සහ apt-get මඟින් ස්ථාපනය කර ඇති ආකාරයට ලොග් නොවේ / var / lib / apt / extended_states (/ var / lib / dpkg / තත්වයෙන් පමණි). ඉහත txwikinger විසින් රචිත පයිතන් ස්ක්රිප්ට් / var / lib / apt / extended_states වෙතින් කෙලින්ම ඇද ගන්නා නමුත් ඔබ අද එය භාවිතා කරන්නේ නම් සින්ටැක්ස් ක්රියා නොකරනු ඇත (මගේ කුබුන්ටු 13.10 සමඟ දෝෂ ජනනය කිරීමට පටන් ගෙන ඇත). යාවත්කාලීන කළ වාක්ය ඛණ්ඩය:
#!/usr/bin/python
import sys
try:
import apt_pkg
except ImportError:
print "Error importing apt_pkg, is python-apt installed?"
sys.exit(1)
apt_pkg.init()
STATE_FILE = apt_pkg.config.find_dir("Dir::State") + "extended_states"
auto = set()
tagfile = apt_pkg.TagFile(open(STATE_FILE))
while tagfile.step():
pkgname = tagfile.section.get("Package")
autoInst = tagfile.section.get("Auto-Installed")
if not int(autoInst):
auto.add(pkgname)
print "\n".join(sorted(auto))
මට නම් මෙය ඉතා නිවැරදි අයිතම 5 කින් යුත් ඉතා කෙටි ලැයිස්තුවකි.
sys.exit(1)
නොමැතිව භාවිතා කිරීමෙන් import sys
පයිතන්ගේ නවතම අනුවාද වල දෝෂයක් ඇතිවිය හැකිය. එක්කෝ import sys
හෝ භාවිතා කරන්න exit(1)
.
මම GUI විසඳුමක් දීමට කැමතියි.
විවෘත Synaptic Package Manager
යන්න Status
ක්ලික් කරන්න Installed (manual)
එය අතින් හෝ යෝග්යතාවයෙන් අතින් ස්ථාපනය කර ඇති පැකේජ ලැයිස්තුවක් ලබා දෙනු ඇත.
අවාසනාවකට පැකේජයක් අතින් හෝ ස්වයංක්රීයව ස්ථාපනය කර Custom Filters
ඇත්දැයි සොයා බැලීමට මට වෙනත් විකල්පයක් සොයාගත නොහැකි විය foobar
.
පැකේජය යටතේ ඇති Installed
නමුත් යටින් නොමැති Installed (manual)
නම් එය ස්වයංක්රීයව ස්ථාපනය කර ඇත. පැකේජය යටතේ තිබේ Installed (manual)
නම් එය අතින් ස්ථාපනය කර ඇත.
Apr-something විධානයක් භාවිතයෙන් කිසිවෙකු ඔබට හොඳ පිළිතුරක් ලබා නොදෙන්නේ නම් ඔබට එය දුෂ්කර ආකාරයකින් කළ හැකිය හැකිය. Apt-get එහි තොරතුරු / var / lib / apt / extended_states තුළ ගබඩා කරයි. ස්වයංක්රීයව ස්ථාපනය කර ඇති ඕනෑම ගොනුවක් මෙම ගොනුවට එකතු වේ. ඔබ දැනටමත් මෙම ගොනුවේ අතින් පැකේජයක් ස්ථාපනය කරන්නේ නම්, පැකේජය මෙම ගොනුවේ පවතිනු ඇති නමුත් ස්වයංක්රීයව ස්ථාපනය කර ඇත: 0 දෙවන පේළියේ. එය මකා නැත.
සටහන: අපේක්ෂිත පරිදි වඩා හොඳ පිළිතුරු ගොනු ස්ථානගත කිරීම් වෙනස් වී ඇත්නම් ක්රියා කිරීමට ඉඩ ඇත. ලිපිගොනු පිහිටීම පිළිබඳ තොරතුරු ප්රයෝජනවත් නම් මම මගේ තබා ගන්නෙමි.
apt-get install liferea
අතර එය ස්ථාපනය නොකළ නමුත් මට ප්රතිදානය ලැබුනේ එය “අතින් ස්ථාපනය කර ඇති ලෙස සලකුණු” කරමිනි. ඊලඟ පේළියට a 0
වෙනුවට ආදේශකයක් හැරෙන්නට දැන් ලයිෆ්රියා තවමත් ගොනුවේ ඇත 1
. එසේම, ඔබ ඔබේ රීජෙක්ස් රටාව " foobar$"
සාධාරණ ලෙස වෙනුවට වෙනස් කළ යුතුය foobar
.
ගොඩක් ගූගල් කිරීමෙන් පසුව, මම මෙම පිටපත එකලස් කිරීමට සමත් වී සිටිමි. එය මට හොඳින් ක්රියාත්මක වේ:
# List of all packages currently installed
current=$(dpkg -l | awk '{print $2}' | sort | uniq)
# List of all packages that were installed with the system
pre=$(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort | uniq)
# List of packages that don't depend on any other package
manual=$(apt-mark showmanual | sort | uniq)
# (Current - Pre) ∩ (Manual)
packages=$(comm -12 <(comm -23 <(echo "$current") <(echo "$pre")) <(echo "$manual") )
for pack in $packages; do
packname=$(echo $pack | cut -f 1 -d ":")
desc=$(apt-cache search "^$packname$" | sed -E 's/.* - (.*)/\1/')
date=$(date -r /var/lib/dpkg/info/$pack.list)
echo "# $desc"
echo "# $date"
echo "sudo apt-get install $pack"
echo -e ""
done
sort -u
ඒ වෙනුවට ඔබට භාවිතා කළ හැකිය sort | unique
. apt-mark
ගෘහ නිර්මාණ ශිල්පය නොපෙන්වන පරිදි , ඔබ එය සැකසීමට පෙර (හෝ භාවිතා කිරීමට dpkg-query -W -f='${Package}\n'
) dpkg හි ප්රතිදානයෙන් ඉවත් කළ යුතුය . මීට අමතරව, දැනට ස්ථාපනය කර නොමැති සමහර පැකේජ dpkg ලැයිස්තුගත කළ හැකිය. "ඩෙස්ක්" සඳහා, ඔබට `dpkg-query -W -f = '# $ inary ද්විමය: සාරාංශය} \ n' $ ඇසුරුම භාවිතා කළ හැකිය, එය වේගවත්ය.
apt-mark
සමහර පැකේජ සඳහා ගෘහ නිර්මාණ ශිල්පය ප්රදර්ශනය කළ හැකි නමුත් බොහෝ දෙනෙකුට නොවේ dpkg -l
.
apt-cache search
මන්දගාමී වේ. Help.ubuntu.com/community/ListInstaledPackagesByDate වැනි දෙයක් භාවිතා කර කල්තියාම ස්ථාපනය කරන ලද දිනයන් ලැයිස්තුවක් ලබා ගැනීම වඩාත් කාර්යක්ෂම විය හැකිය
ලී ලො පැවසූ පරිදි, apt-mark showauto
ස්වයංක්රීයව ස්ථාපනය කර ඇති දේවල් පිළිබඳ මේද ලැයිස්තුවක් ඔබට ලබා දිය යුතුය.
දැන් අතින් ස්ථාපනය කර ඇති දේවල් පෙන්වීමට, යෝග්යතාව සඳහා සුන්දර සරල සෙවුම් විකරණකාරකයක් ඇති බව පෙනේ. නමුත් ඔබට එය කිරීමට අවශ්ය නැත. ඔබට රොකට් විද්යාවක් කරන විශාල බාෂ් විධානයක් ලිවීමට අවශ්යයි.
සටහන: මෙය ඔබගේ සියලු මිතුරන්ට දැවැන්ත බැෂ් විධාන කඩ කිරීම කෙතරම් සිසිල්ද යන්න පිළිබඳ නිදර්ශනයකි.
comm -3 <(dpkg-query --show -f '${Package} ${Status}\n' | \n
grep "install ok installed" | cut --delimiter=' ' -f 1) <(apt-mark showauto)
කියවීමේ හැකියාව සඳහා මම එය පේළි දෙකකට කඩා දැමුවෙමි. මෙය කරන්නේ කුමක්ද?
apt-mark
comm -3 <(dpkg -l | grep '^ii' | cut -d \ -f 3|sort) <(apt-mark showauto|sort)
නිසි ලෙස වඩා හොඳය;)
මෙය ප්රයෝජනවත් දැයි විශ්වාස නැත, නමුත් වර්තමාන පරිශීලකයා විසින් මෑතකදී අතින් ස්ථාපනය කරන ලද පැකේජ සොයා ගැනීමට, ඉතිහාසය සොයන්න. උදා, සඳහා bash
:
$ history | egrep '\bapt\b'
විශේෂිත පැකේජ සඳහා පරීක්ෂා කිරීම සඳහා grep වෙනස් කරන්න.
මෙය අතින් ස්ථාපනය කර ඇති සියලුම පැකේජ ලැයිස්තුගත නොකරනු ඇත: පරායත්තතා, අස්ථාපනය කළ පැකේජ, පද්ධති ස්ථාපනය අතරතුර ස්ථාපනය කර ඇති පැකේජ.
unopts() {
in=`cat`
echo "$in" | sed -r 's/ --[^ ]+//g;s/ -[^ ]+//g'
}
list() {
cat '/var/log/apt/history.log' |
grep --color=never -v '\-o APT::Status-Fd=4 \-o APT::Keep-Fds::=5 \-o APT::Keep-Fds::=6' |
egrep --color=never "Commandline: apt-get.* $1" |
sed -r "s/Commandline: apt-get//;s/ $1//" |
unopts |
tr ' ' '\n' |
sed '/^$/d'
}
hapt() {
tmp=`mktemp -d`
installed=$tmp/installed
deleted=$tmp/deleted
dpkg=$tmp/dpkg
list 'install' > $installed
list '(remove|purge|autoremove)' > $deleted
dpkg --get-selections |
grep -v 'deinstall' |
cut -f 1 > $dpkg
while read package
do
sed -i "0,/$package/{//d;}" $installed
done < $deleted
while read package
do
if [ -z "`grep --color=never "^$package$" $dpkg`" ]
then
sed -i "0,/$package/{//d;}" $installed
fi
done < $installed
cat $installed
rm -r $tmp
}