vim支持gbk
sudo vi /etc/vim/vimrc
set fileencodings=utf-8,gb18030,big5
dpkg -l | grep ibus
dpkg -L ibus-pinyin
什么是apt-get
apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。
apt-get命令一般需要root权限执行,所以一般跟着sudo命令
例
sudo apt-get xxxx[]
apt命令用法 apt-get update
在修改
/etc/apt/sources.list或/etc/apt/preferences之後运行该命令。此外您需要定期运行这一命令以确保您的软件包列表是最新的。
apt-get install packagename
安装一个新软件包(参见下文的
aptitude)
apt-get remove packagename
卸载一个已安装的软件包(保留配置文档)
apt-get --purge remove packagename
卸载一个已安装的软件包(删除配置文档)
dpkg --force-all --purge packagename
有些软件很难卸载,而且还阻止了别的软件的应用,就能够用这个,但是有点冒险。
apt-get autoclean apt
会把已装或已卸的软件都备份在硬盘上,所以假如需要空间的话,能够让这个命令来删除您已删掉的软件
apt-get clean
这个命令会把安装的软件的备份也删除,但是这样不会影响软件的使用。
apt-get upgrade
更新任何已安装的软件包
apt-get dist-upgrade
将系统升级到新版本
apt-cache search string
在软件包列表中搜索字符串
dpkg -l package-name-pattern
列出任何和模式相匹配的软件包。假如您不知道软件包的全名,您能够使用“*package-name-pattern*”。
aptitude
周详查看已安装或可用的软件包。和apt-get类似,aptitude能够通过命令行方式调用,但仅限于某些命令——最常见的有安装和卸载命令。由于
aptitude比apt-get了解更多信息,能够说他更适合用来进行安装和卸载。
apt-cache showpkg pkgs
显示软件包信息。
apt-cache dumpavail
打印可用软件包列表。
apt-cache show pkgs
显示软件包记录,类似于dpkg –print-avail。
apt-cache pkgnames
打印软件包列表中任何软件包的名称。
dpkg -S file
这个文档属于哪个已安装软件包。
dpkg -L package
列出软件包中的任何文档。
apt-file search filename
查
找包含特定文档的软件包(不一定是已安装的),这些文档的文档名中含有指定的字符串。apt-file是个单独的软件包。您必须先使用apt-get
install来安装他,然後运行apt-file update。假如apt-file search
filename输出的内容太多,您能够尝试使用apt-file search filename | grep -w
filename(只显示指定字符串作为完整的单词出现在其中的那些文档名)或类似方法,例如:apt-file search filename |
grep /bin/(只显示位于诸如/bin或/usr/bin这些文档夹中的文档,假如您要查找的是某个特定的执行文档的话,这样做是有帮助的)。
* apt-get autoclean
定
期运行这个命令来清除那些已卸载的软件包的.deb文档。通过这种方式,您能够释放大量的磁盘空间。假如您的需求十分迫切,能够使用apt-get
clean以释放更多空间。这个命令会将已安装软件包裹的.deb文档一并删除。大多数情况下您不会再用到这些.debs文档,因此假如您为磁盘空间不足
而感到焦头烂额,这个办法也许值得一试。
apt-get
软
件包管理是区分不同发行版的一大特征,如RedHat使用RPM软件包来管理软件,Debian使用Deb软件包来管理软件。apt-get是
Debian的Deb软件包管理工具,它的最低底层还是调用dpkg包管理程序,通过apt-get工具可使我们很好地解决软件包的依赖关系,方便软件的
安装和升级。它是Debian发行版的最大特色,一定要好好掌握。
要使用好apt-get就要配置好一个名为sources.list的资
源列表,资源列表指向Debian系统的软件库,apt-get会从该软件库安装各种软件包。sources.list文件位于/etc/apt目录下,
下面是Sarge、Etch和Sid三个版本的写法,你可任选一种,最好不要多版本混用:
#sources.list for Sarge(stable):
deb stable main contrib non-free
deb stable/non-US main contrib non-free
deb http://security.debian.org stable/updates main contrib non-free
#Uncomment if you want the apt-get source function to work
#deb-src stable main contrib non-free
#deb-src stable/non-US main contrib non-free
#sources.list for Etch(testing):
deb testing main contrib non-free
deb testing/non-US main contrib non-free
deb http://security.debian.org testing/updates main contrib non-free
#Uncomment if you want the apt-get source function to work
#deb-src testing main contrib non-free
#deb-src testing/non-US main contrib non-free
#sources.list for Sid(unstable):
deb ftp://ftp.us.debian.org/debian unstable main contrib non-free
deb ftp://non-us.debian.org/debian-non-US unstable/non-US main contrib non-free
#Uncomment if you want the apt-get source function to work
#deb-src unstable main contrib non-free
#deb-src unstable/non-US main contrib non-free
sources.list文件的内容决定了Debian的版本。安全更新只存在于stable和testing版中,unstable
没有安全更新。进入stable的软件都经过严格的依赖测试和安全测试,所以如果你想系统稳定,用于工作,最好使用stable,如果你想使用最新版的软
件,就使用testing或unstable。Woody、Sarge和Sid是Debian
3.x三个版本中的代号,我们一般都是以代号来称呼debian不同版本。所有Debian发行版的代号全都取自电影Toy
Story,Woody是那个牛仔,Sarge是绿色塑胶军队的领导,Sid是破坏玩具的小孩。
apt-get update
更
新软件包信息库。在Debian中,软件包是通过一个数据库来管理的,通过这个数据库中可跟踪你系统中已安装、没有安装和现在可安装的软件包信息。
apt-get安装软件包时就是依靠这个数据库来解决软件包间的依赖关系,从而可自动安装相关软件。我们需定期运行该命令,从而保持数据库的信息为最新。
apt-get install package_name1 package_name2 package_name3 ...
安
装软件包。如果软件包需其它软件包支持,apt-get会通过搜索软件包数据库找到这种依赖关系,一起下载相关软件。在一个命令行中可同时安装多个软件
包,中间用空格隔开即可。安装的软件包默认会存放在/var/cache/apt/archives目录下,以便以后重新安装。如果已安装的软件包损坏
了,你可通过--reinstall选项来重新安装。如:
# apt-get --reinstall install package_name
|
|
---|
在需安装的软件包名后加一个减号会删除软件包,如:apt-get install package_name-。 |
只是下载软件,不解包和安装使用-d选项,如:
# apt-get -d install package_name
使用--dry-run选项可使apt-get在安装软件包前进行测试,如:
# apt-get install package_name --dry-run
Debian软件包的名字和软件名不同,所以在安装前如不知道软件包的名字,可到Debian的官方软件库查询,网址是:。或者用下面介绍的apt-cache search package_name命令来查询。
apt-get remove package_name1 package_name2 package_name3 ...
删除软件包。如果你想删除没用的软件包,只要使用该命令即可。如果你想把该软件的配置文件也删除,可以用--purge选项,如:
# apt-get --purge remove package_name
|
|
---|
类似地,在删除软件包名后加一个加号会安装软件包,如:apt-get remove package_name+。 |
apt-get source package_name1 package_name2 package_name3
下载软件包的的源码版本。
apt-get upgrade package_name1 package_name2 package_name3 ...
软
件包升级功能是APT系统这么成功的主要原因。通过该命令,我们就可把软件升级到最版本。在使用该命令前,最好先运行apt-get
update命令,以更新软件包数据库。但该方案不是更新系统最好的方法,一些包会因为包依赖问题而保留(kept
back)一些旧的软件包。Debian提供了一个更好的升级方案,就是用dis-upgrade。下面一节会详细介绍。
apt-get dist-upgrade
更新整个Debian系统。可从网络或本地更新整个系统。它会重新安排好包的依赖性。如果有些包由于一些原因实在不能更新,我们可通过以下命令查询原因:
# apt-get -o Debug::pkgProblemResolver=yes dist-upgrade
|
|
---|
用apt-show-versions -u可获得可升级软件包的列表。该命令还有一些有用的选项,可用-h选项查看详细帮助,了解更多功能。 |
apt-get clean
删除下载了的软件包,当我们通过apt-get安装软件包时,APT会把软件包下载到本地/var/cache/apt/archives/目录。该命令会删除该文件夹内的除锁住外的所有软件包。
apt-get autoclean
删除已下载的旧版本的软件包。该命令类似于上面的命令,但它会有选择地删除旧版本的软件包。
apt-get dselect-upgrade
通过dselect的“建议”和“推荐”功能更新系统。dselect是Debian中一个功能强大的包管理工具。它可帮助用户选择软件包来安装,其中一个有用功能是它会建议和推荐安装其它相关软件包。我们可在APT中使用它这个功能。
apt-get check
检查系统中已安装软件包的依赖性。
|
|
---|
apt-get是命令行方式的dpkg前台程序,不喜欢命令行方式的朋友也可以试试aptitude和synaptic这两个软件包。aptitude是一个字符界面的dpkg前端程序,synaptic是一个GTK界面的dpkg前端程序。 |
apt-cache
apt-cache是一个apt软件包管理工具,它可查询apt的二进制软件包缓存文件。通过它我们可查询软件包的状态信息。
apt-cache show package_name
显示软件的信息,包括版本号,安装状态和包依赖关系等。
apt-cache search package_name
搜索软件包,可用正则表达式。
apt-cache showpkg package_name
显示软件包的依赖关系信息。
apt-cache policy package_name
显示软件包的安装状态和版本信息。
apt-cache depends package_name
显示指定软件包所依赖的软件包。
apt-cache rdepends package_name
显示软件包的反向依赖关系,即有什么软件包需依赖你所指定的软件包。
apt-fileapt-file是一个软件包查找工具,可以查到软件包所含的文件和安装的位置。
apt-file update
更新软件包的文件库,第一次使用或apt-get update后都需运行一次。
apt-file search file_name
查找该文件存在于哪些软件包中。
apt-file list package_name
显示该软件包的文件
apt-key
apt-key是Debian软件包的安全管理工具。每个发布的deb包,都是通过密钥认证的,apt-key用来管理密钥。
apt-cache search # ------(package 搜索包)
apt-cache show #------(package 获取包的相关信息,如说明、大小、版本等)
sudo apt-get install # ------(package 安装包)
sudo apt-get install # -----(package - - reinstall 重新安装包)
sudo apt-get -f install # -----(强制安装?#"-f = --fix-missing"当是修复安装吧...)
sudo apt-get remove #-----(package 删除包)
sudo apt-get remove - - purge # ------(package 删除包,包括删除配置文件等)
sudo apt-get autoremove --purge # ----(package 删除包及其依赖的软件包+配置文件等(只对6.10有效,强烈推荐))
sudo apt-get update #------更新源
sudo apt-get upgrade #------更新已安装的包
sudo apt-get dist-upgrade # ---------升级系统
sudo apt-get dselect-upgrade #------使用 dselect 升级
apt-cache depends #-------(package 了解使用依赖)
apt-cache rdepends # ------(package 了解某个具体的依赖?#当是查看该包被哪些包依赖吧...)
sudo apt-get build-dep # ------(package 安装相关的编译环境)
apt-get source #------(package 下载该包的源代码)
sudo apt-get clean && sudo apt-get autoclean # --------清理下载文件的存档 && 只清理过时的包
sudo apt-get check #-------检查是否有损坏的依赖
apt-get install
下载 以及所有倚赖的包裹,同时进行包裹的安装或升级。如果某个包裹被设置了 hold (停止标志,就会被搁在一边(即不会被升级)。更多 hold 细节请看下面。
apt-get remove [--purge]
移除 以及任何倚赖这个包裹的其它包裹。
--purge 指明这个包裹应该被完全清除 (purged) ,更多信息请看 dpkg -P。
apt-get update
升级来自 Debian 镜像的包裹列表,如果你想安装当天的任何软件,至少每天运行一次,而且每次修改了
/etc/apt/sources.list 后,必须执行。
apt-get upgrade [-u]
升级所以已经安装的包裹为最新可用版本。不会安装新的或移除老的包裹。如果一个包改变了倚赖关系而需要安装一个新的包裹,那么它将不会被升级,而是标志为
hold。apt-get update 不会升级被标志为 hold 的包裹 (这个也就是 hold 的意思)。请看下文如何手动设置包裹为
hold。我建议同时使用 '-u' 选项,因为这样你就能看到哪些包裹将会被升级。
apt-get dist-upgrade [-u]
和 apt-get upgrade 类似,除了 dist-upgrade 会安装和移除包裹来满足倚赖关系。因此具有一定的危险性。
apt-cache search
搜索满足 的包裹和描述。
apt-cache show
显示 的完整的描述。
apt-cache showpkg
显示 许多细节,以及和其它包裹的关系。
dselect
console-apt
aptitude
gnome-apt
APT 的几个图形前端(其中一些在使用前得先安装)。这里 dselect 无疑是最强大的,也是最古老,最难驾驭。
普通 Dpkg 用法
dpkg -i
安装一个 Debian 包裹文件,如你手动下载的文件。
dpkg -c
列出 的内容。
dpkg -I
从 中提取包裹信息。
dpkg -r
移除一个已安装的包裹。
dpkg -P
完全清除一个已安装的包裹。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。
dpkg -L
列出 安装的所有文件清单。同时请看 dpkg -c 来检查一个 .deb 文件的内容。
dpkg -s
显示已安装包裹的信息。同时请看 apt-cache 显示 Debian 存档中的包裹信息,以及 dpkg -I 来显示从一个 .deb 文件中提取的包裹信息。
dpkg-reconfigure
重新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提供了一个统一的配制界面)。你能够重新配制
debconf 它本身,如你想改变它的前端或提问的优先权。例如,重新配制 debconf,使用一个 dialog 前端,简单运行:
dpkg-reconfigure --frontend=dialog debconf (如果你安装时选错了,这里可以改回来哟:)
echo " hold" | dpkg --set-selections
设置 的状态为 hlod (命令行方式)
dpkg --get-selections ""
取的 的当前状态 (命令行方式)
支持通配符,如:
Debian:~# dpkg --get-selections *wine*
libwine hold
libwine-alsa hold
libwine-arts hold
libwine-dev hold
libwine-nas hold
libwine-print hold
libwine-twain hold
wine hold
wine+ hold
wine-doc hold
wine-utils hold
例如:
大家现在用的都是 gaim-0.58 + QQ-plugin,为了防止 gaim 被升级,我们可以采用如下方法:
方法一:
Debian:~# echo "gaim hold" | dpkg --set-selections
然后用下面命令检查一下:
Debian:~# dpkg --get-selections "gaim"
gaim hold
现在的状态标志是 hold,就不能被升级了。
如果想恢复怎么办呢?
Debian:~# echo "gaim install" | dpkg --set-selections
Debian:~# dpkg --get-selections "gaim"
gaim install
这时状态标志又被重置为 install,可以继续升级了。
同志们会问,哪个这些状态标志都写在哪个文件中呢?
在 /var/lib/dpkg/status 里,你也可以通过修改这个文件实现 hold。
有时你会发现有的软件状态标志是 purge,不要奇怪。
如:事先已经安装了 amsn,然后把它卸了。
apt-get remove --purge amsn
那么状态标志就从 install 变成 purge。
方法二:
在/etc/apt 下手动建一个 preferences 文件
内容:
Package: gaim
Pin: version 0.58*
保存
dpkg -S
在包裹数据库中查找 ,并告诉你哪个包裹包含了这个文件。(注:查找的是事先已经安装的包裹)