我刚买了一个 VPS,使用 ubuntu 12.04 镜像,我注意到它开箱即用,占用 10% 的内存。然后我继续运行这个:
dpkg-query -Wf '${Package;-40}${Priority}\n' | sort -b -k2,2 -k1,1
然后得到了这个巨大的列表。我一眼就能看出其中 97% 的包我都不需要,但是我需要花上大半天的时间才能浏览每个包并将其删除。有什么方法可以从这个列表中选择所有可选/额外的包并将其删除,而不会导致我无法通过 SSH 访问我的 VPS?我已经从列表中删除了所有标记为必需和重要的包,因为没人关心。
db-util extra
diff extra
ia32-libs extra
ia32-libs-multiarch extra
iputils-arping extra
klogd extra
libavc1394-0 extra
libcapi20-3 extra
libdb4.8 extra
libjson0 extra
libnfnetlink0 extra
librtmp0 extra
lsb-release extra
lynx extra
lynx-cur extra
makedev extra
mktemp extra
oss-compat extra
rmail extra
sendmail extra
sendmail-base extra
sendmail-bin extra
sendmail-cf extra
sendmail-doc extra
sensible-mda extra
sysklogd extra
xinetd extra
acl optional
apache2 optional
apache2-doc optional
apache2-mpm-prefork optional
apache2-utils optional
apache2.2-bin optional
apache2.2-common optional
bind9 optional
bind9utils optional
binutils optional
bluez optional
bluez-alsa optional
busybox-initramfs optional
bzip2 optional
ca-certificates optional
cifs-utils optional
console-common optional
console-data optional
console-tools optional
console-tools-dev optional
cracklib-runtime optional
db5.1-util optional
dbus optional
dbus-x11 optional
dconf-gsettings-backend optional
dconf-service optional
debconf-utils optional
defoma optional
dmsetup optional
dselect optional
ed optional
esound-common optional
expat optional
fetchmail optional
finger optional
fontconfig optional
fontconfig-config optional
gawk optional
gconf-service optional
gconf-service-backend optional
gconf2 optional
gconf2-common optional
gettext optional
glib-networking optional
glib-networking-common optional
glib-networking-services optional
gsettings-desktop-schemas optional
gstreamer0.10-plugins-base optional
gstreamer0.10-plugins-good optional
gtk2-engines optional
gtk2-engines-murrine optional
gtk2-engines-oxygen optional
gtk2-engines-pixbuf optional
gvfs optional
gvfs-common optional
gvfs-daemons optional
gvfs-libs optional
gvfs-libs optional
ibus-gtk optional
initramfs-tools optional
initramfs-tools-bin optional
insserv optional
iputils-tracepath optional
iso-codes optional
klibc-utils optional
ldap-utils optional
libaa1 optional
libaio1 optional
libao-common optional
libao4 optional
libapr1 optional
libaprutil1 optional
libaprutil1-dbd-sqlite3 optional
libaprutil1-ldap optional
libasn1-8-heimdal optional
libasn1-8-heimdal optional
libasound2 optional
libasound2-plugins optional
libasyncns0 optional
libatasmart4 optional
libatk1.0-0 optional
libatk1.0-data optional
libaudio2 optional
libaudiofile1 optional
libavahi-client3 optional
libavahi-client3 optional
libavahi-common-data optional
libavahi-common-data optional
libavahi-common3 optional
libavahi-common3 optional
libbsd0 optional
libcaca0 optional
libcairo-gobject2 optional
libcairo2 optional
libcanberra-gtk-module optional
libcanberra-gtk0 optional
libcanberra0 optional
libcap-ng0 optional
libcdparanoia0 optional
libconsole optional
libcrack2 optional
libcroco3 optional
libcroco3 optional
libcups2 optional
libcups2 optional
libcupsimage2 optional
libcurl3 optional
libdatrie1 optional
libdbus-1-3 optional
libdbus-1-3 optional
libdbus-glib-1-2 optional
libdbus-glib-1-2 optional
libdconf0 optional
libdevmapper-event1.02.1 optional
libdrm-intel1 optional
libdrm-nouveau1a optional
libdrm-radeon1 optional
libdrm2 optional
libdrm2 optional
libdv4 optional
libelf1 optional
libesd0 optional
libexif12 optional
libexpat1 optional
libexpat1 optional
libffi6 optional
libffi6 optional
libfile-copy-recursive-perl optional
libflac8 optional
libfontconfig1 optional
libfontconfig1 optional
libfontenc1 optional
libfreetype6 optional
libfreetype6 optional
libgail-common optional
libgail18 optional
libgconf-2-4 optional
libgconf-2-4 optional
libgd2-xpm optional
libgdk-pixbuf2.0-0 optional
libgdk-pixbuf2.0-common optional
libgdu0 optional
libgeoip1 optional
libgettextpo0 optional
libgettextpo0 optional
libgl1-mesa-glx optional
libgl1-mesa-glx optional
libglapi-mesa optional
libglapi-mesa optional
libglib2.0-0 optional
libglib2.0-0 optional
libglu1-mesa optional
libgnome-keyring-common optional
libgnome-keyring0 optional
libgnome-keyring0 optional
libgomp1 optional
libgomp1 optional
libgphoto2-2 optional
libgphoto2-port0 optional
libgssapi3-heimdal optional
libgssapi3-heimdal optional
libgstreamer-plugins-base0.10-0 optional
libgstreamer0.10-0 optional
libgtk2.0-0 optional
libgtk2.0-common optional
libhcrypto4-heimdal optional
libhcrypto4-heimdal optional
libheimbase1-heimdal optional
libheimbase1-heimdal optional
libheimntlm0-heimdal optional
libheimntlm0-heimdal optional
libhx509-5-heimdal optional
libhx509-5-heimdal optional
libibus-1.0-0 optional
libice6 optional
libice6 optional
libiec61883-0 optional
libieee1284-3 optional
libisccc80 optional
libisccfg82 optional
libjack-jackd2-0 optional
libjasper1 optional
libjpeg-turbo8 optional
libjpeg8 optional
libklibc optional
libkrb5-26-heimdal optional
libkrb5-26-heimdal optional
liblcms1 optional
libltdl7 optional
libltdl7 optional
liblvm2app2.2 optional
libmad0 optional
libmikmod2 optional
libmng1 optional
libmpg123-0 optional
libnl-3-200 optional
libnl-genl-3-200 optional
libnspr4 optional
libnss3 optional
libodbc1 optional
libodbc1 optional
libogg0 optional
libopenal-data optional
libopenal1 optional
liborc-0.4-0 optional
libpango1.0-0 optional
libpaper1 optional
libparted0debian1 optional
libpcap0.8 optional
libpciaccess0 optional
libperl5.14 optional
libpixman-1-0 optional
libplymouth2 optional
libpng12-0 optional
libpng12-0 optional
libpolkit-gobject-1-0 optional
libproxy1 optional
libproxy1 optional
libpulse-mainloop-glib0 optional
libpulse0 optional
libpulsedsp optional
libpython2.7 optional
libqt4-dbus optional
libqt4-declarative optional
libqt4-designer optional
libqt4-network optional
libqt4-opengl optional
libqt4-qt3support optional
libqt4-script optional
libqt4-scripttools optional
libqt4-sql optional
libqt4-svg optional
libqt4-test optional
libqt4-xml optional
libqt4-xmlpatterns optional
libqtcore4 optional
libqtgui4 optional
libqtwebkit4 optional
libraw1394-11 optional
libroken18-heimdal optional
libroken18-heimdal optional
librsvg2-2 optional
librsvg2-common optional
libsamplerate0 optional
libsane optional
libsane-common optional
libsdl-image1.2 optional
libsdl-mixer1.2 optional
libsdl-net1.2 optional
libsdl-ttf2.0-0 optional
libsdl1.2debian optional
libsensors4 optional
libsgutils2-2 optional
libshout3 optional
libsigsegv2 optional
libsm6 optional
libsm6 optional
libsndfile1 optional
libsnmp-base optional
libsnmp15 optional
libsoup-gnome2.4-1 optional
libsoup2.4-1 optional
libspeex1 optional
libspeexdsp1 optional
libstdc++5 optional
libtag1-vanilla optional
libtag1c2a optional
libtalloc2 optional
libtdb1 optional
libtdb1 optional
libthai-data optional
libthai0 optional
libtheora0 optional
libtiff4 optional
libunistring0 optional
libunistring0 optional
libv4l-0 optional
libv4lconvert0 optional
libvisual-0.4-0 optional
libvorbis0a optional
libvorbisenc2 optional
libvorbisfile3 optional
libwavpack1 optional
libwbclient0 optional
libwind0-heimdal optional
libwind0-heimdal optional
libwrap0 optional
libwrap0 optional
libx11-6 optional
libx11-6 optional
libx11-data optional
libx11-xcb1 optional
libx11-xcb1 optional
libxau6 optional
libxau6 optional
libxaw7 optional
libxaw7 optional
libxcb-glx0 optional
libxcb-glx0 optional
libxcb-render0 optional
libxcb-shape0 optional
libxcb-shm0 optional
libxcb1 optional
libxcb1 optional
libxcomposite1 optional
libxcomposite1 optional
libxcursor1 optional
libxdamage1 optional
libxdamage1 optional
libxdmcp6 optional
libxdmcp6 optional
libxext6 optional
libxext6 optional
libxfixes3 optional
libxfixes3 optional
libxft2 optional
libxft2 optional
libxi6 optional
libxi6 optional
libxinerama1 optional
libxinerama1 optional
libxmu6 optional
libxmu6 optional
libxmuu1 optional
libxp6 optional
libxpm4 optional
libxpm4 optional
libxrandr2 optional
libxrender1 optional
libxrender1 optional
libxslt1.1 optional
libxss1 optional
libxt6 optional
libxt6 optional
libxtst6 optional
libxtst6 optional
libxv1 optional
libxv1 optional
libxxf86dga1 optional
libxxf86vm1 optional
libxxf86vm1 optional
memtester optional
mtools optional
odbcinst optional
odbcinst1debian2 optional
odbcinst1debian2 optional
openssh-blacklist optional
openssh-server optional
openssl optional
openssl-blacklist optional
plymouth optional
procinfo optional
psmisc optional
psutils optional
pwgen optional
python-dbus optional
python-dbus-dev optional
python2.7 optional
python2.7-minimal optional
quota optional
rsync optional
samba optional
samba-common optional
samba-common-bin optional
sasl2-bin optional
screen optional
shared-mime-info optional
sharutils optional
smbfs optional
snmp optional
sound-theme-freedesktop optional
ssl-cert optional
sudo optional
syslinux optional
syslinux-common optional
tcpdump optional
tcsh optional
tofrodos optional
ttf-dejavu optional
ttf-dejavu-core optional
ttf-dejavu-extra optional
ttf-freefont optional
udisks optional
unixodbc optional
unzip optional
update-inetd optional
uuid-runtime optional
vim optional
vim-runtime optional
wide-dhcpv6-client optional
x11-common optional
x11-utils optional
xaw3dg optional
bind9-host standard
bsd-mailx standard
file standard
ftp standard
gettext-base standard
less standard
libbind9-80 standard
libcap2 standard
libcap2 standard
libclass-isa-perl standard
libdb5.1 standard
libdb5.1 standard
libdns81 standard
libedit2 standard
libgcrypt11 standard
libgcrypt11 standard
libgnutls26 standard
libgnutls26 standard
libgpg-error0 standard
libgpg-error0 standard
libgpm2 standard
libgpm2 standard
libgssapi-krb5-2 standard
libgssapi-krb5-2 standard
libgssglue1 standard
libidn11 standard
libidn11 standard
libisc83 standard
libk5crypto3 standard
libk5crypto3 standard
libkeyutils1 standard
libkeyutils1 standard
libkrb5-3 standard
libkrb5-3 standard
libkrb5support0 standard
libkrb5support0 standard
libldap-2.4-2 standard
libldap-2.4-2 standard
liblockfile-bin standard
liblockfile1 standard
liblwres80 standard
libmagic1 standard
libp11-kit0 standard
libp11-kit0 standard
libsasl2-2 standard
libsasl2-2 standard
libsqlite3-0 standard
libsqlite3-0 standard
libswitch-perl standard
libtasn1-3 standard
libtasn1-3 standard
libtirpc1 standard
libxml2 standard
libxml2 standard
lsof standard
m4 standard
make standard
mime-support standard
mlocate standard
multiarch-support standard
ncurses-term standard
openssh-client standard
perl standard
perl-modules standard
procmail standard
rpcbind standard
telnet standard
ucf standard
whois standard
我不敢相信他们会默认安装这么多垃圾!
感谢您的任何建议
答案1
已安装的软件包不会消耗任何 RAM - 只有正在运行的程序才会消耗 RAM。列表中的大多数软件包都不会安装任何作为消耗 RAM 的服务运行的东西 - 例如,diff
控制台bzip2
命令除非您从控制台调用它们,否则不会运行。删除它们将为您节省几千字节的磁盘空间和零字节的 RAM。
虽然我确实可以看到 VPS 上并非严格要求的软件包(ttf-dejavu?libsane?),但也有python
、sudo
和openssh
列为“可选”。我不建议您删除这些。
相反,看看运行服务并停用那些您不需要的程序 - 例如,如果您不打算使用它们,请卸载 Apache 和 sendmail。
答案2
您可以通过停止不需要的服务来减少 RAM 使用量:用于service --status-all
查看所有服务的状态并sudo stop <servicename>
暂时停止服务。您可以使用永久卸载可打包程序sudo apt-get remove <packagename>
答案3
Bash 脚本和一些 Python 字符串魔法
这是我用来生成脚本的 Python: http://paste.ubuntu.com/7966133/
以下是您可以运行的脚本: http://paste.ubuntu.com/7966136/
只需确保在命令行中运行它即可。如果出现错误,请告诉我,以便我可以删除此帖子 :P