September 9, 2010
nginx rewrite规则和参考
"\u003cp\u003e推荐参考地址:\nMailing list ARChives 官方讨论区\u003c/p\u003e\n\u003cp\u003eNginx 常见应用技术指南[Nginx Tips]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e本日志内容来自互联网和平日使用经验,整理一下方便日后参考。\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e正则表达式匹配,其中:\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e~ 为区分大小写匹配\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e~* 为不区分大小写匹配\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e!\u003cdel\u003e和!\u003c/del\u003e*分别为区分大小写不匹配及不区分大小写不匹配\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cstrong\u003e文件及目录匹配,其中:\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e-f和!-f用来判断是否存在文件\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e-d和!-d用来判断是否存在目录\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e-e和!-e用来判断是否存在文件或目录\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003e-x和!-x用来判断文件是否可执行\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cstrong\u003eflag标记有:\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003elast 相当于Apache里的[L]标记,表示完成rewrite\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003ebreak 终止匹配, 不再匹配后面的规则\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eredirect 返回302临时重定向 地址栏会显示跳转后的地址\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003epermanent 返回301永久重定向 地址栏会显示跳转后的地址\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cstrong\u003e一些可用的全局变量有,可以用做条件判断(待补全)\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003e$args\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e$content_length\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e$content_type …\u003c/p\u003e\u003c/li\u003e\u003c/ol\u003e"
September 9, 2010
nginx 虚拟目录的配置
"\u003cp\u003enginx貌似没有虚拟目录的说法,因为它本来就是完完全全根据目录来设计并工作的。\u003c/p\u003e\n\u003cp\u003e如果非要给nginx安上一个虚拟目录的说法,那就只有alias标签比较“像”,干脆来说说alias标签和root标签的区别吧。\u003c/p\u003e\n\u003cp\u003e最基本的区别:alias指定的目录是准确的,root是指定目录的上级目录,并且该上级目录要含有location指定名称的同名目录。另外,根据前文所述,使用alias标签的目录块中不能使用rewrite的break。\u003c/p\u003e\n\u003cp\u003e说不明白,看下配置:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003elocation /abc/ {\nalias /home/html/abc/;\n}\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e在这段配置下,http://test/abc/a.html就指定的是/home/html/abc/a.html。这段配置亦可改成\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003elocation /abc/ {\nroot /home/html/;\n}\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e这样,nginx就会去找/home/html/目录下的abc目录了,得到的结果是相同的。\u003c/p\u003e\n\u003cp\u003e但是,如果我把alias的配置改成:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003elocation /abc/ {\nalias /home/html/def/;\n}\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e那么nginx将会 …\u003c/p\u003e"
September 8, 2010
[原创教程]在FreeBSD下安装BIND,提供dns服务
"\u003cp\u003e\u003cstrong\u003e一.用ports方式安装bind9\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e#/usr/ports/dns/bind9\n#make install clean\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e并在/etc/rc.conf文件里添加一行:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003enamed_enable=”YES”\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e作为系统服务启动.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e二.配置BIND\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e1.编辑/etc/namedb/named.conf 文件,在最下面以下两部分\u003c/p\u003e\n\u003cp\u003e#正向解析配置文件\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ezone “haohtml.com” {\ntype master;\nfile “master/haohtml.com”;\n};\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e#反向解析配置文件\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ezone “0.168.192.in-addr.arpa” {\ntype master;\nfile “master/0.168.192.in-addr.arpa”;\n};\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e然后编辑 listen-on {127.0.0.1;}; 的后面添加监听ip地址,如下:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003elisten-on {127.0.0.1; 192.168.0.222;};\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e第个ip后面加一个”;”符号.\u003c/p\u003e\n\u003cp\u003e对于转发一部分,我们暂不进行配置,这里用不到的.\u003c/p\u003e\n\u003cp\u003e============================\n2. …\u003c/p\u003e"
September 8, 2010
Linux中cp总是提示覆盖文件的解决办法
"\u003cp\u003e把a目录下的文件复制到b目录\ncp –r a/* b\n执行上面的命令时,b存在的每个文件都会提示是否覆盖;\ncp –r –f a/* b\n执行上面的命令时,b存在的每个文件都不再会提示;\n这是我们希望的理想状态,但是有时加了 -f了,怎么还会有提示呢?原来一些服务器会默认增加别名 alias cp =’cp -i’,当你执行cp 时, 其实执行的是cp –i。\n在终端执行alias就可以看出来了。\n[root@devdb ~]# alias\nalias cp =’cp -i’\n可以这样解决\n[root@devdb ~]# vi ~/.bashrc\n在alias cp =’cp -i’前加上”#”注释掉这行,:wq!保存退出!\u003c/p\u003e\n\u003cp\u003e然后重新登陆就可以了。\u003c/p\u003e\n\u003cp\u003e如:\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003cem\u003ecp -R -f /home/priceangels/\u003c/em\u003e /usr/ROOT/\u003c/em\u003e*\u003c/p\u003e"
September 8, 2010
原创:解决 cp: omitting directory
"\u003cp\u003elinux下面执行cp命令时提示如下信息:\u003c/p\u003e\n\u003cp\u003ecp: omitting directory\u003c/p\u003e\n\u003cp\u003e可以用下面的办法来解决\u003c/p\u003e\n\u003cp\u003ecp -r orginal_file new_file\u003c/p\u003e"
September 6, 2010
FORCE_PKG_REGISTER参数
"\u003cp\u003e更新ports到最新,然后直接重新 (make install) 编辑安装PHP时提示出错。升级之前就想到这个问题,因为没有卸载旧版本的PHP,新版本的可能没有办法正常安装。但是卸载的话相关的几个包也都要重新安装,很麻烦也很浪费时间。google了一圈也没有结果就只能自己试了。\u003c/p\u003e\n\u003cp\u003e提示是这样的:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e===\u0026gt; php5-5.2.6 is already installed\n You may wish to ``make deinstall\u0026#39;\u0026#39; and install this port again\n by ``make reinstall\u0026#39;\u0026#39; to upgrade it properly.\n If you really wish to overwrite the old port of lang/php5\n without deleting it first, set the variable \u0026#34;FORCE_PKG_REGISTER\u0026#34;\n in your environment or …\u003c/code\u003e\u003c/pre\u003e"
September 6, 2010
[教程]FreeBSD下使用ports安装Nginx + PHP5.2.6 + Php-fpm
"\u003cp\u003e钟情FreeBSD的其中一个原因就是它的方便快捷的ports软件包管理,本文在安装Nginx、PHP、Php-fpm的时候也采用ports方式安装。ports是一个非常优秀的软件包管理器,如果不希望编译安装的话,使用ports安装,几个命令就能全部搞定,这对初学者来说是很有帮助的。\u003c/p\u003e\n\u003cp\u003e事实上,Nginx 和 PHP已经在FreeBSD的ports系统里了,只是Php-fpm没有,不过,简单几个命令就能把Php-fpm添加到FreeBSD的ports中去。下面我们来看看具体的操作步骤:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1. 安装nginx\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e# cd /usr/ports/www/nginx\u003c/p\u003e\n\u003cp\u003e# make install\u003c/p\u003e\n\u003cp\u003e安装过程中要选择安装模块,这里我选择如下几个模块做示范\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHTTP_MODULE\u003c/li\u003e\n\u003cli\u003eHTTP_REWRITE_MODULE\u003c/li\u003e\n\u003cli\u003eHTTP_SSL_MODULE\u003c/li\u003e\n\u003cli\u003eHTTP_STATUS_MODULE\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFreeBSD下的ports安装实在是太简单、方便了,没什么可多说的,下面直接安装php。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2. 安装php\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e# cd /usr/ports/lang/php5\n# make install\u003c/p\u003e\n\u003cp\u003e安装过程中,选择如下模 …\u003c/p\u003e"
September 3, 2010
vmware中freebsd系统同步时间
"\u003cp\u003e先设置时区:\u003c/p\u003e\n\u003cp\u003e# \u003cstrong\u003etzsetup\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e再与国家授时中心服务器对时:\n\u003cstrong\u003e# ntpdate 210.72.145.44\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e以后自动同步:\u003c/p\u003e\n\u003cp\u003e首先修改/etc/rc.conf添加**ntpd_enable=”YES”**到最后一行。\u003c/p\u003e\n\u003cp\u003e然后配置对时服务器:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e# vi /etc/ntp.conf\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eserver 210.72.145.44 prefer\nserver 159.226.154.47\nserver 127.127.1.0\nfudge 127.127.0.1 stratum 5\nrestrict default ignore\nrestrict 127.0.0.0 mask 255.0.0.0\nrestrict 192.168.0.0 mask 255.255.255.0 noquery nopeer notrust\nrestrict 210.72.145.44 noquery\nrestrict 159.226.154.47 noquery\ndriftfile /var/db/ntpd.drift\u003c/p\u003e\n\u003cp\u003e/var/run/xntpd.pid\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e# ntpd -p /var/run/ntpd.pid\n# …\u003c/strong\u003e\u003c/p\u003e"
September 3, 2010
php中抽象类和接口的概念和区别(二)
"\u003col\u003e\n\u003cli\u003e\n\u003cp\u003e一个子类如果implements一个接口,就必须实现接口中的所有方法(不管是否需要);如果是继承一个抽象类,只需要实现需要的方法即可,这是抽象类的一个优点\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e如果一个接口中定义的方法名改变了,那么所有实现此接口的子类显然将无法通过编译,因为它们所实现的方法名已经不存在了,这是接口的一个缺点;而抽象类就不存在这个问题,只是为子类添加了一个新的方法(接口中旧的方法)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e看前面两点,似乎抽象类要比接口有着更多的优点,但它却有着一个难以弥补的缺点:就是一个子类只能有一个父类。A extends B . 这样A就拥有了B的所有方法和功能,但当A还想拥有C的功能的时候。就不能通过 A extends C 来实现, 而需要走一些弯路。目前系统架构的趋势就是由针对抽象(借口,抽象类)而不是具体编程,并且将功能尽可能的细分。 这就需要通过实现多个接口的方式来实现,显然,抽象类无法提供这样的功能。从系统重构的角度来说,一个具体类抽象出接口是十分方便的。只需要写一个接口,里面定义具体类的所有方法,然后在为这个具体类implement这个接口就可以了。而抽象类就要复杂的多,比如说 B extends …\u003c/p\u003e\u003c/li\u003e\u003c/ol\u003e"
September 3, 2010
php中抽象类和接口的概念和区别(一)
"\u003cp\u003einterface a {\n//接口内不可以定义属性\n//所有方法必须为抽象方法(既不实现,只定义)\u003c/p\u003e\n\u003cp\u003epublic function method1($param);\nprotected function method2($param);\n}\u003c/p\u003e\n\u003cp\u003e//接口不可被实现,例如\n$instance = new a; //错误\u003c/p\u003e\n\u003cp\u003e//接口实现类必须实现接口的所有方法,且方法参数也必须相同\n//例如\nclass b implaments a{\n//错误,封装应与接口相同\nprotected function method1($param)\n{\n//somecode here…\n}\u003c/p\u003e\n\u003cp\u003e//错误,参数应与接口定义相同\nprotected function method2()\n{\u003c/p\u003e\n\u003cp\u003e}\n}\u003c/p\u003e\n\u003cp\u003e接口功能是实现类似C++中的多重继承的,但其语法更为明了\u003c/p\u003e"
September 3, 2010
PHP的接口与抽象类
"\u003cp\u003e\u003cstrong\u003ePHP\u003c/strong\u003e的接口:为了实现特定功能而预留的类似类的一种类型。接口的主要目的:提供给类类似于模板的框架,以方便类的构建。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e在PHP****中定义接口\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e在\u003cstrong\u003ePHP\u003c/strong\u003e中定义接口的形式如下:\u003c/p\u003e\n\u003cp\u003eInterface interfaceName\u003c/p\u003e\n\u003cp\u003e{\u003c/p\u003e\n\u003cp\u003eConst 1;\u003c/p\u003e\n\u003cp\u003e……\u003c/p\u003e\n\u003cp\u003eConst 2;\u003c/p\u003e\n\u003cp\u003eFunction methodName1();\u003c/p\u003e\n\u003cp\u003e……\u003c/p\u003e\n\u003cp\u003eFunction methodName2();\u003c/p\u003e\n\u003cp\u003e}\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePHP****中单一接口的实现\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e实现接口的语法如下:\u003c/p\u003e\n\u003cp\u003eClass class_name implements interface_name\u003c/p\u003e\n\u003cp\u003e例如:\u003c/p\u003e\n\u003cp\u003eid = $id;\u003c/p\u003e\n\u003cp\u003e}\u003c/p\u003e\n\u003cp\u003efunction getID()\u003c/p\u003e\n\u003cp\u003e{\u003c/p\u003e\n\u003cp\u003ereturn $this-\u0026gt;id;\u003c/p\u003e\n\u003cp\u003e}\u003c/p\u003e\n\u003cp\u003efunction setName($name)\u003c/p\u003e\n\u003cp\u003e{\u003c/p\u003e\n\u003cp\u003e$this-\u0026gt;name = $name;\u003c/p\u003e\n\u003cp\u003e}\u003c/p\u003e\n\u003cp\u003efunction getName()\u003c/p\u003e\n\u003cp\u003e{\u003c/p\u003e\n\u003cp\u003ereturn $this-\u0026gt;name;\u003c/p\u003e\n\u003cp\u003e}\u003c/p\u003e\n\u003cp\u003efunction otherFunc() //这是一个接口中不存在的方法\u003c/p\u003e\n\u003cp\u003e{\u003c/p\u003e\n\u003cp\u003eecho “Test”;\u003c/p\u003e\n\u003cp\u003e}\u003c/p\u003e\n\u003cp\u003e}\u003c/p\u003e\n\u003cp\u003e?\u0026gt;\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePHP****中多重接口的实现\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e在** \u003ca href=\"http://www.phpdo.net/\" title=\"php\"\u003ePHP …\u003c/a\u003e\u003c/p\u003e"
September 3, 2010
Freebsd 如何_打开_关闭_查看防火墙
"\u003cp\u003e在FreeBSD服务器上调试ipfw防火墙规则的时候,有时候需要临时关闭ipfw防火墙,可以使用如下命令来进行操作:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1)停止ipfw防火墙:\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eipfw disable firewall\u003c/p\u003e\n\u003cp\u003e/etc/rc.d/ipfw stop\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003e2)开启ipfw防火墙:\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eipfw enable firewall\u003c/p\u003e\n\u003cp\u003e/etc/rc.d/ipfw start\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e随机器启动自动启用防火墙方法需要修改/etc/rc.conf文件,参考:第三步.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e3)如何查看ipfw是否在运行\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e方法一:通过ipfw -a list 不断的去看包的数量\u003c/p\u003e\n\u003cp\u003e方法二:sysctl -a | grep net.inet.ip.fw.enable\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e如果状态是1表示是开启,0为关闭.\u003c/p\u003e\n\u003cp\u003eipfw中文手册pdf: \u003ca href=\"http://docs.haohtml.com/download/freebsd/ipfw_zh.pdf\"\u003ehttp://docs.haohtml.com/download/freebsd/ipfw_zh.pdf\u003c/a\u003e\u003c/p\u003e"
September 2, 2010
解决IE6从Nginx服务器下载图片不Cache的Bug
"\u003cp\u003e其实这个Bug是由分两种情况的:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1.和Nginx无关,是针对CSS背景图片的。\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e一般用户不会碰到,更多的时候是开发者将自己的IE的缓存策略从默认的”自动”改为“每次访问都查询”才发生 的。特点是鼠标一旦浮动到有背景图片的地方,IE会不顾已经缓存的图片,自行去服务器再次获取图片,造成图片短暂消失。这个问题比较简单,可以通过以下脚 本解决。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e1\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003e2. 但是实际上更常见的原因是Nginx上打开了Gzip压缩功能。\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e这个是IE6 的著名Bug,早在2002年就被人详细讨论过了,在IE7中有所改进,但微软永远也不会去修复IE6了。\u003c/p\u003e\n\u003cp\u003e根本原因是Nginx对于启用了Gzip的http上下文,即使你在之前的配置文件里声明过 gzip_disable “MSIE [1-6].”,Nginx不再对IE6用Gzip压缩了,但是送出的http报头却仍然采用了和Gzip压缩数据包相匹配的Vary: Accept-Encoding。IE6不认识这个报头,IE6对除了Vary: User-Agent的报头外,都不查询缓存,直接去服务器申请。更绝得是,不是使用查询文件是否更新,而是强行要求一份完整文 …\u003c/p\u003e"
September 2, 2010
php spawn-fcgi和php-fpm
"\u003cp\u003espawn-fcgi是一个通用的FastCGI管理服务器\u003c/p\u003e\n\u003cp\u003e她是lighttpd中的一部份,但目前已经单独成为一个项目,最新的lighttpd没有这一块(),但可以在以前版本中找到她\u003c/p\u003e\n\u003cp\u003e在lighttpd-1.4.15( \u003ca href=\"http://www.lighttpd.net/download/lighttpd-1.4.15.tar.gz\"\u003ehttp://www.lighttpd.net/download/lighttpd-1.4.15.tar.gz\u003c/a\u003e )中就有她\u003c/p\u003e\n\u003cp\u003eNote注:最新的spawn-fcgi可以到lighttpd.net网站搜索“spawn-fcgi”找到她的最新版本发布地址\u003c/p\u003e\n\u003cp\u003e目前她的下载地址是http://redmine.lighttpd.net/news/2 最新版本是http://www.lighttpd.net/download/spawn-fcgi-1.6.0.tar.gz\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etar -zxvf lighttpd-1.4.15.tar.gz\ncd lighttpd-1.4.15\n./configure #编译\nmake #因为我不需要安装lighttp而是只需要他其中的某个文件,所以只make就可以了,不需要make install\ncp src/spawn-fcgi …\u003c/p\u003e\u003c/blockquote\u003e"
September 2, 2010
Ubuntu下apt-get 命令参数
"\u003cp\u003e常用的APT命令参数\u003c/p\u003e\n\u003cp\u003eapt-cache search package 搜索包\u003c/p\u003e\n\u003cp\u003eapt-cache show package 获取包的相关信息,如说明、大小、版本等\u003c/p\u003e\n\u003cp\u003esudo apt-get install package 安装包\u003c/p\u003e\n\u003cp\u003esudo apt-get install package – – reinstall 重新安装包\u003c/p\u003e\n\u003cp\u003esudo apt-get -f install 修复安装”-f = ――fix-missing”\u003c/p\u003e\n\u003cp\u003esudo apt-get remove package 删除包\u003c/p\u003e\n\u003cp\u003esudo apt-get remove package – – purge 删除包,包括删除配置文件等\u003c/p\u003e\n\u003cp\u003esudo apt-get update 更新源\u003c/p\u003e\n\u003cp\u003esudo apt-get upgrade 更新已安装的包\u003c/p\u003e\n\u003cp\u003esudo apt-get dist-upgrade 升级系统\u003c/p\u003e\n\u003cp\u003esudo apt-get dselect-upgrade 使用 dselect 升级\u003c/p\u003e\n\u003cp\u003eapt-cache depends package 了解使用依赖\u003c/p\u003e\n\u003cp\u003eapt-cache rdepends package …\u003c/p\u003e"