Chinaunix首页 | 论坛 | 博客
  • 博客访问: 253492
  • 博文数量: 44
  • 博客积分: 1052
  • 博客等级: 少尉
  • 技术积分: 742
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-17 16:51
文章分类

全部博文(44)

文章存档

2013年(7)

2012年(14)

2011年(23)

分类: LINUX

2011-10-26 22:23:53

# package-manage
#
# 2011.10.26

1:ubuntu包管理,
   希望能查看包信息,安装包,查找包等操作。
   这里列出,我觉得可能会常用的命令,具体的可以看下面,下面的内容主要来自man手册
   
  1. apt-get update           # 更新
  2. apt-get upgrade  
  3. apt-get install package  # 安装包
  4. apt-get remove package   # 删除包
  5. apt-get source package   # 取得源代码
  6. apt-get clean            # 清除缓存的package
  7. apt-get autoclean
  8. apt-get autoremove
  1. apt-cache stats          # 显示cache的统计信息
  2. apt-cache show pkg       # 显示相应package的详细信息
  3. apt-cache search pattern # 搜索package
  4. apt-cache pkgnames       # 输出APT知道的所有packages
  5. apt-cache depends pkg    # 显示package的依赖关系
  1. dpkg -i pkg              # 安装package
  2. dpkg -r pkg              # 删除package
  3. dpkg -P pkg              # 彻底删除package
  4. dpkg -C                  # 显示不完全安装的package
  5. dpkg --get-selections    # 显示所有package的selection state (见下面)
  6. dpkg -I pkg              # 显示package的信息
  7. dpkg -c pkg              # 显示deb包里的文件列表
  8. dpkg -e pkg dir          # 提取deb包里的控制文件到dir目录中
  9. dpkg -x pkg dir          # 提取deb包里的所有文件
  10. dpkg -X pkg dir          # 同上
  11. dpkg -l pattern          # 列出满足pattern模式的包名
  12. dpkg -s pkg              # 显示package的状态
  13. dpkg -L pkg              # 列出安装该package时,安装到系统中的文件
  14. dpkg -S filename         # 给定文件查找包名, 如 dpkg -S `which ls`
  15. dpkg -p pkg              # 显示package的详细信息
   
2: apt-get命令
       update :将package索引文件与sources同步。可用package的索引都是根据/etc/apt/sources.list
                中指定的sources来获取的。应该在upgrade或dist-upgrade之前执行该命令。
       upgrade :用来安装那些已安装package的更新版本
       dist-upgrade :比upgrade更强大,能灵活的处理新版本package的依赖关系。
       install :用于安装或更新一个或多个package,如果package名字后有一个连字号(-),
                 则该package会被删除。
                 package名可以使用正则表达式
       remove :删除相应的package,并不会删除配置文件
       purge :清除干净
       source :让apt-get获取源码package。若加上--compile选项,
                则会用dpkg-buildpackage将源码编译成.deb文件
                用--download-only则下载的源码包不会自动解压缩。
       build-dep :导致apt-get去install/remove packages,为满足依赖关系。
       check :更新package cache,并检查损坏的依赖关系。
       clean :删除系统缓存的packages,它们在目录/var/cache/apt/archives/
               和/var/cache/apt/archives/partial/
       autoclean : 只删除那些不再有用和不会再下载的packages
       autoremove :删除那些因依赖关系而自动安装的packages,会确保它们不再有用。
      
       与该命令相关的文件:
       /etc/apt/sources.list 
       /etc/apt/apt.conf :配置文件
       /etc/apt/preferences :一个preference指定特定源来获得特定的package
       /var/cache/apt/archives/ :保存的packages
       /var/cache/apt/archives/partial
       /var/lib/apt/lists/ :存储sources.list中每个源的信息

3:apt-cache命令
apt-cache用来管理APT的package cache

add file(s) :
showpkg pkg(s) :显示packages的信息
stats :显示cache的统计信息,如包的个数和占用空间大小
showsrc pkg(s) :显示指定package的源码包,各种版本的都会显示。
dump :显示cache中的所有package的名字和相关信息
dumpavail :显示cache中的所有package
unmet :显示没满足依赖关系的packages
show pkg(s) :显示package
search regex :搜索package
depends pkg(s) :显示package的依赖关系
pkgnames :输出APT知道的packages
dotty pkg(s) :输出一个包含顶点和边的图,描述了packages之间的关系,
              适用于工具GRAPHVIZ。
4:dpkg命令
目录:所有package的信息在/var/lib/dpkg/下
/var/lib/dpkg/available : 可用的packages
/var/lib/dpkg/status :可用packages的状态信息
packages的INFORMATION包括:states,selection states和flags
states:not-installed : 没有安装
       config-files :只有配置文件和package在系统里
       half-installed :package的安装不完全
       unpacked :已解压缩,但未configured
       half-configured :configured未完成
       installed :package解压缩和configured正常
       
selection states:install :selected for installation
                 deinstall : selected for deinstallation
                                              (except configuration files)
                 purge : selected to be purged (include configuration files)
flags : reinst-required : 需重装
操作:
-i,--install package_file...
安装package,如果指定了-R或--recursive,则package_file要为目录。
安装有以下几步
1:从package中抽出control文件
2:如果已经有老版本的package安装了,则执行老版本的prerm脚本
3:执行preinst脚本,如果有的话。
4:unpack,同时备份旧文件
5:如果已经有老版本的package安装了,则执行老版本的postrm脚本  (这个地方没错)
6:configure package
--unpack package_file...
unpack package,但不configure它。该命令删除所有已安装的该包的旧版本,
                        并运行preinst脚本
--configure package... |-a|--pending
configure一个已经unpack的package,如果指定了-a或--pending则
                        所有unpacked且unconfigured的package
都要进行configure,要reconfigure一个package,用dpkg-reconfigure包。
configure一个package包括下面几步:
1:unpack conffiles,并备份旧的
2:执行postinst脚本,如果有的话
-r, --remove, -P, --purge package...|-a|--pending:
删除一个已安装的package
-r, --remove删除除conffiles之外的文件,这样避免之后重新安装时reconfigure
-p, --purge删除所有文件,包括conffiles
若没指定package,而是-a或--pending参数,则已unpack的package且
                        在/var/lib/dpkg/status中指明要
removed或purged的都被removed或purged
删除一个package包括如下几步:
1:运行prerm脚本
2:删除安装了的文件
3:运行postrm脚本
--clear-avail:
删除availabe package的信息
-C, --audit:
搜索没安装完全的package。并给出一些建议。
--get-selections:
列出package的selection state,即是否install,purge等
--yet-to-unpack:
搜索那些要来安装但还未安装的package
dpkg-deb命令(下面的参数既可用在dpkg-deb下,也可用在dpkg下)
-b, --build directory [archive|directory]
建立一个deb package
-I, --info archive [control-file...]
显示package的信息
-c, --contents archive
显示deb包里的文件
-e, --control filename [directory]
从package总提取control信息,若不指定目录,则存在当前目录的DEBIAN目录下
-x, --extract archive directory
从package中提取文件
-X, --vextract archive directory
提取的时候显示信息
-f, --filed archive [control-field...]
显示package的control域
--fsys-tarfile archive
输出tar文件在stdout上。用dpkg --fsys-tarfile file.deb > data.tar
dpkg-query命令(下面的参数可用在dpkg-query下,也可用在dpkg下)
-l, --list package-name-pattern...
显示满足pattern的package
-s, --status package-name...
返回执行package的status
-L, --listfiles pakcage-name...
列出安装该package时,安装到系统的文件列表
-S, --search filename-search-pattern...
在已安装的package中搜索文件
-p, --print-avail package-name...
显示package-name的详细信息,即在/var/lib/dpkg/available中的信息
5:deb包
filename.deb
.deb格式为Debian二进制包文件的格式
文件是一个ar archive(不知道什么意思)
文件第一行是 !
文件的第一部分称为debian-binary,包括一些行,不过目前只有一行就是版本号。
文件的第二部分称为control.tar.gz,包含该package的控制信息
文件的第三部分称为data.tar,也可能被压缩了,为文件的最后一部份
你用vi打开一个deb文件可以看到上面这些。

阅读(3068) | 评论(0) | 转发(0) |
0

上一篇:有关const变量

下一篇:顺序查找的优化

给主人留下些什么吧!~~