红联首页 凝聚Linux人的力量
菜鸟过关 | 精华文档 | 同城人(交友) | 我与Linux的故事 | Linux新闻 | Linux视频 | Linux人才 | 软件下载 | 大学校园 | English
发新话题
打印

rpm和deb

rpm和deb

1.  关于rpm和deb
RPM(Red Hat Package Manager),是基于Red hat的Linux Distribution的包管理系统,同时也指rpm包本身,RPM用于rpm包的管理(诸如安装、卸载、升级等),像Mandrake和SuSE这些基于RPM的发行版通常有自己特定的rpm包,如果混合安装可能不会正常工作,而对于第三方发行的rpm包一般都能在基于RPM的系统上正常安装
对于基于Debian的系统使用deb格式的包,有包转换工具使rpm与deb及其他文件之间互相转换(Alien Package Converter),其安装和升级可用dpkg,不过它不能很方便地处理包的依赖关系,比较省事的有dselect和apt-get, Ubunut是debian的变种, 其软件以deb包或者源文件的形式出现.
2.deb软件包的格式和使用
(1).deb软件包命令遵行如下约定:
soft_ver-rev_arch.deb ,  如:pptview_8.0-5_i386.deb 中名字是pptview, 版本号8.0, 架构为i386平台.
(2)dpkg命令
root@huxiping:~# dpkg --help
Usage:
  dpkg -i|--install      <.deb file name> ... | -R|--recursive <dir> ...
  dpkg --unpack          <.deb file name> ... | -R|--recursive <dir> ...
  dpkg -A|--record-avail <.deb file name> ... | -R|--recursive <dir> ...
  dpkg --configure              <package name> ... | -a|--pending
  dpkg -r|--remove | -P|--purge <package name> ... | -a|--pending
  dpkg --get-selections [<pattern> ...]    get list of selections to stdout
  dpkg --set-selections                    set package selections from stdin
  dpkg --update-avail <Packages-file>      replace available packages info
  dpkg --merge-avail <Packages-file>       merge with info from file
  dpkg --clear-avail                       erase existing available info
  dpkg --forget-old-unavail                forget uninstalled unavailable pkgs
  dpkg -s|--status <package-name> ...      display package status details
  dpkg -p|--print-avail <package-name> ... display available version details
  dpkg -L|--listfiles <package-name> ...   list files `owned' by package(s)
  dpkg -l|--list [<pattern> ...]           list packages concisely
  dpkg -S|--search <pattern> ...           find package(s) owning file(s)
  dpkg -C|--audit                          check for broken package(s)
  dpkg --print-architecture                print dpkg architecture
  dpkg --compare-versions <a> <rel> <b>    compare version numbers - see below
  dpkg --help | --version                  show this help / version number
  dpkg --force-help | -Dh|--debug=help     help on forcing resp. debugging
  dpkg --licence                           print copyright licensing terms
Use dpkg -b|--build|-c|--contents|-e|--control|-I|--info|-f|--field|
-x|--extract|-X|--vextract|--fsys-tarfile  on archives (type dpkg-deb --help.)
For internal use: dpkg --assert-support-predepends | --predep-package |
  --assert-working-epoch | --assert-long-filenames | --assert-multi-conrep
Options:
  --admindir=<directory>     Use <directory> instead of /var/lib/dpkg
  --root=<directory>         Install on alternative system rooted elsewhere
  --instdir=<directory>      Change inst'n root without changing admin dir
  -O|--selected-only         Skip packages not selected for install/upgrade
  -E|--skip-same-version     Skip packages whose same version is installed
  -G|--refuse-downgrade      Skip packages with earlier version than installed
  -B|--auto-deconfigure      Install even if it would break some other package
  --no-debsig                Do no try to verify package signatures
  --no-act|--dry-run|--simulate
                             Just say what we would do - don't do it
  -D|--debug=<octal>         Enable debugging - see -Dhelp or --debug=help
  --status-fd <n>            Send status change updates to file descriptor <n>
  --log=<filename>           Log status changes and actions to <filename>
  --ignore-depends=<package>,... Ignore dependencies involving <package>
  --force-...                    Override problems - see --force-help
  --no-force-...|--refuse-...    Stop when problems encountered
  --abort-after <n>              Abort after encountering <n> errors
Comparison operators for --compare-versions are:
lt le eq ne ge gt       (treat empty version as earlier than any version);
lt-nl le-nl ge-nl gt-nl (treat empty version as later than any version);
< << <= = >= >> >       (only for compatibility with control file syntax).
Use `dselect' or `aptitude' for user-friendly package management.
root@huxiping:~#
dpkg -i | --install xxx.deb 安装deb软件包
dpkg -r | --remove xxx.deb 删除软件包
dpkg -r -P | --purge xxx.deb 连同配置文件一起删除
dpkg -I | -info xxx.deb 查看软件包信息
dpkg -L xxx.deb 查看文件拷贝详情
dpkg -l 查看系统中已安装软件包信息
dpkg-reconfigure xxx 重新配置软件包
有些时候,您使用“dpkg”安装一个软件包,系统会提示您该软件包依赖其它软件包。这时,您先安装其它软件包,直到满足依赖关系为止。或者同时安装多个软件包
dpkg -i aaa.deb bbb.deb ccc.deb

3. ubuntu的apt-命令能够自动完成软件依赖, 用的比较多的是apt-get,其实还有其他的用法可以挖掘一下的, 比如下面
root@huxiping:~# apt-
apt-cache             apt-config            apt-ftparchive        apt-key
apt-cdrom             apt-extracttemplates  apt-get               apt-sortpkgs
root@huxiping:~# apt-
如果一个软件依赖关系过于复杂,使用“dpkg”来安装它,并不是一个明智的选择,这个时候您就需要用到APT软件包管理系统。APT可以自动的检查依赖关系,通过预设的方
式来获得相关软件包,并自动安装配置它。事实上,在多数情况下,我们推荐您使用APT软件包管理系统。
APT系统需要一个软件信息数据库和至少一个存放着大量deb包的软件仓库,我们称之为“源”。“源”可以是网络服务器,安装CD或者本地软件仓库。您需要修改
“/etc/apt/sources.list”文件,使APT系统能够连接到“源”。

TOP

发新话题