問題:
? 我想將所有已安裝軟件包的列表輸出到一個(gè)文本文件中芥挣,這樣我可以查看它膳汪,并且在另一個(gè)系統(tǒng)上進(jìn)行批量安裝,我該怎么做九秀?
? 回答 1:
Ubuntu 14.04和更高版本的apt工具使得這非常容易遗嗽。
apt list --installed
舊版本
? 要獲取在本地安裝的軟件包列表,請(qǐng)?jiān)谀愕慕K端中執(zhí)行這個(gè)操作:
dpkg --get-selections | grep -v deinstall
(-v標(biāo)記"反轉(zhuǎn)"grep返回不匹配行)
? 要獲取安裝的特定軟件包的列表:
dpkg --get-selections | grep postgres
要將列表保存到你的桌面上名為packages的文本文件里鼓蜒,請(qǐng)?jiān)谀愕慕K端中執(zhí)行這個(gè)操作 :
dpkg --get-selections | grep -v deinstall > ~/Desktop/packages
? 或者痹换,只需使用
dpkg -l
(你不需要作為超級(jí)用戶運(yùn)行命令,所以不需要sudo)都弹,
? 回答 2:
? 要獲得明確安裝的(不只是安裝為依賴項(xiàng))包娇豫,你可以運(yùn)行,
aptitude search '~i!~M'
然而另一個(gè)方法是復(fù)制文件/var/lib/apt/extended_states畅厢,它是這種格式的文本文件數(shù)據(jù)庫(kù):
Package: grub-common
Architecture: amd64
Auto-Installed: 0
Package: linux-headers-2.6.35-22-generic
Architecture: amd64
Auto-Installed: 1
Auto-Installed: 0指示軟件包已明確安裝冯痢,并且不只是一個(gè)依賴項(xiàng)。
? 回答 3:
? 創(chuàng)建當(dāng)前安裝的軟件包的備份:
dpkg --get-selections > list.txt
? 然后(在另一個(gè)系統(tǒng)上)從該列表還原安裝:
dpkg --clear-selections
sudo dpkg --set-selections < list.txt
? 要?jiǎng)h除過(guò)時(shí)的軟件包:
sudo apt-get autoremove
要在備份時(shí)安裝(例如框杜,要安裝由dpkg --set-selections設(shè)置的軟件包):
sudo apt-get dselect-upgrade
? 回答 4:
? 要按apt命令列出有意安裝的所有軟件包浦楣,請(qǐng)運(yùn)行以下命令:
(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null |
egrep '^(Start-Date:|Commandline:)' |
grep -v aptdaemon |
egrep '^Commandline:'
? 這提供了基于時(shí)間的反向視圖,其中列出了較早的命令:
Commandline: apt-get install k3b
Commandline: apt-get install jhead
...
? 安裝數(shù)據(jù)也顯示了synaptic使用情況咪辱,但是沒有詳細(xì)信息(安裝日期相同):
(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null |
egrep '^(Start-Date:|Commandline:)' |
grep -v aptdaemon |
egrep -B1 '^Commandline:'
? 提供以下內(nèi)容:
Start-Date: 2012-09-23 14:02:14
Commandline: apt-get install gparted
Start-Date: 2012-09-23 15:02:51
Commandline: apt-get install sysstat
...
? 回答 5:
apt-mark showmanual
? 要將結(jié)果輸出到文本文件中振劳,請(qǐng)執(zhí)行以下操作:
apt-mark showmanual >list-installed.txt
? 回答 6:
dpkg-query(代替dpkg --get-selections,它列出了一些未安裝的包)如下:
dpkg-query -W -f='${PackageSpec} ${Status}n' | grep installed | sort -u | cut -f1 -d > installed-pkgs
? 或者:
dpkg -l | grep ^ii | sed 's_ _t_g' | cut -f 2 > installed-pkgs
? 回答 7:
? 列出所有已安裝的軟件包油狂,
dpkg -l |awk '/^[hi]i/{print $2}' > 1.txt
? 或者
aptitude search -F '%p' '~i' > 1.txt
? 或者
dpkg --get-selections > 1.txt
? 備注: 你將在主文件夾中得到結(jié)果1.txt文件历恐,或者你可以指定自己的路徑。
? 回答 8:
? 你可以使用Synaptic保存已安裝軟件包的當(dāng)前狀態(tài)专筷,在Synaptic中弱贼,選擇"file/save markings",輸入要保存狀態(tài)的文件名磷蛹,并選中 "Save full state ,not only changes"吮旅。
? 保存的文件可以加載到一臺(tái)新機(jī)器中,使用Synaptic"file/read markings"進(jìn)行加載弦聂。
? 回答 9:
我建議使用blueprint鸟辅,即使它是為服務(wù)器設(shè)計(jì)的,在桌面也可以使用莺葫,它將創(chuàng)建一個(gè)script/chef/puppet匪凉,你可以使用它來(lái)安裝所有軟件包。
? 回答 10:
? 你需要一個(gè)"ubuntu account."(在重新安裝之前創(chuàng)建它捺檬,以便你的系統(tǒng)同步再层。),
? 轉(zhuǎn)到軟件中心,在文件菜單下查找"在計(jì)算機(jī)之間同步..."選項(xiàng)聂受。
? 點(diǎn)擊它蒿秦,你會(huì)看到你注冊(cè)的電腦和你電腦上所有應(yīng)用的列表。
? 安裝新計(jì)算機(jī)時(shí)蛋济,計(jì)算機(jī)將被視為新計(jì)算機(jī)棍鳖。
? 點(diǎn)擊它,你會(huì)得到所有應(yīng)用的列表碗旅。