pkgwatch  - 包管理包装

pkgwatch - 一个包管理包装器

介绍

在过去我正在尝试许多不同的Linux发行版。 每个都有自己的软件包管理系统:debian有apt,mandrake有urpmi,黄狗有一个适用于rpm的前端,suse有yast ...虽然他们都很相似,不难使用,我发现我经常做因为我经常忘记我使用的系统和该系统上的确切命令。 另一个问题是我希望我可以跟踪我如何安装/删除这些包。 所以我为各种包管理系统写了一个简单的包装器。 它有两个目的:

  1. 让我不记得不同系统的确切命令
  2. 帮助我跟踪我安装的软件包

例如,当我需要安装例如vim时,我总是说pkg-install vim ,包装器会根据当前的系统调用aptitude,apt-get或者yum。

安装

  • 编辑/ etc / pkgwatchrc以适应您的系统。 您必须设置PWTOOLPWDIR
    • PWTOOL是您的系统上的包管理系统的名称。 它必须是以下之一:
      aptitude-deb
      apt-deb
      urpm
      yast-rpm
      yum-rpm
      fink-deb
      macports-port
    • PWDIR是一个目录,用于跟踪程序包的安装/删除。
  • 因为我主要使用基于debian的系统,所以我设置默认值如下:
    PWTOOL=aptitude-deb
    PWDIR=/root/config/pkgwatch

用法示例

描述我最常使用的命令和每个命令的效果,而不是列出所有的细节。

pkg-update

更新包管理:

  • 在一个基于apt的系统上,这类似于apt-get更新
  • 在yum系统上,这类似于yum更新
  • 在macports(macosx)这类似于端口自身更新
pkg-install vim

安装包vim 。 稍后将说明该命令的细节。

pkg-remove vim

删除包vim

pkg-list

列出我系统上的所有安装的软件包:

  • 在基于deb的系统上,这类似于dpkg --get-choices
  • 在基于rpm的系统上,这类似于rpm -qa
pkg-file vim

列出所有属于软件包vim的文件。

  • 在基于deb的系统上,这类似于dpkg -L vim
  • 在基于rpm的系统上,这类似于rpm -ql vim
pkg-own /usr/bin/vim

查找哪个包拥有文件/ usr / bin / vim

  • 在deb系统上,这类似于dpkg -S / usr / bin / vim
  • 在基于rpm的系统上,这类似于rpm -qf / usr / bin / vim
pkg-info vim

显示有关package vim的信息:

  • 在基于deb的系统上,这类似于dpkg -p vim
  • 在基于rpm的系统上,这类似于rpm -qi vim
pkg-check vim

检查我的系统上是否已经安装了vim

  • 在基于deb的系统上,这类似于dpkg -s vim
  • 在基于rpm的系统上,这类似于rpm -q vim
pkg-search vim

搜索包含vim的所有包名称:

  • 在apt-based系统上,这类似于apt-cache pkgnames vim
  • 在基于yum的系统上,这与yum list vim类似

以上命令不涵盖所有内容,但是我发现它们足够经常使用。 如果我需要更具体的东西,那么我别无选择,只能使用底层系统的精确命令,比如apt。

跟踪已安装的软件包

我们再来用例子来说明事情。假设我们有一个新的基于debian的系统。在我们的 / etc / pkgwatchrc中我们有:
PWTOOL=aptitude-deb
PWDIR=/root/config/pkgwatch
  • 我们来安装vim:
    pkg-install vim
    。 这将调用aptitude install vim来安装vim ,然后创建以下文件:
    • /root/config/pkgwatch/pkglist.0 :在安装vim之前系统上已安装的软件包列表。 只有当我们第一次运行pkg-install时才会发生这种情况。
    • /root/config/pkgwatch/pkglist.1:aptitude安装的软件包列表:
      + vim
      + vim-runtime
    • /root/config/pkgwatch/pkglist.vim :符号链接到pkglist.0
  • 我们来试试删除vim:
    pkg-remove vim
    。 这将调用aptitude purge vim ,加上:
    • 创建一个文件/root/config/pkgwatch/pkglist.2 :由aptitude删除的包的列表:
      - vim
      - vim-runtime
    • 删除符号链接/root/config/pkgwatch/pkglist.vim

虽然看起来有点混乱,但是这个概念真的很简单:每当我们运行pkg-install或者pkg-remove ,一个新的文件pkglist,将会创建一个<number> ,每个运行后增加一个数字。 该文件的内容是在该运行期间安装或删除的包的列表。 标有+的软件包是已安装的软件包,标记为- 的软件包是已被删除的软件包。 除此之外,在安装期间创建了一个符号链接pkglist。<package-name> ,并在删除期间删除该符号链接。

因此,包装器在安装/删除的包的列表上有点像一个糟糕的版本控制。 通过检查pkglist。*文件,很容易找出我做了什么。

进一步说明

  • 包装是相当微不足道的,有太多的东西要改进和错误修复。 但是我觉得我的需要足够好。 如果要改进脚本,请继续。
  • 添加对新系统的支持也很容易。 我在macosx上使用fink和macports进行了这个尝试,并且花费了很少的努力让pkgwatch在macosx上工作。
  • 一些后端是过时的,因为我不再使用底层系统了:urpmi,yast或者yum。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏