技术员博客      html  css  js  c++  java
  • 学习使用apt(二)


    4.1如何安装本地预编译包:equivs
    有时也许我们会希望安装一个特定版本的程序,但是却没有Debian包而只有源码包.但是当这样做时包管理系统会遇到麻烦.假如我们要编译一个新版本的邮件服务器.一切顺利,但是在Debian系统上许多的软件包要依赖MTA(Mail Transport Agent).因为所安装的这些内容是我们自己编译的,所以包管理系统并不知道这些.
    这就是我们需要equivs的原因.要使用这个程序我们先要安装这个程序.equivs可以创建一个空的包,但是在这个包中充满着依赖关系,这样就使得包管理系统认为已经满足了依赖关系.
    在我们开始之前,我们还是要提醒一下朋友们,有更安全的方法可以用来编译由不同的选项为Debain打好包的程序,如果我们对我们现在所做的没有确切的把握我们最好不要用equivs来替换依赖关系.
    下面让我们来继续我们MTA的例子.我们已经安装好了我们新编译的postfix,然后我们要继续安装mutt.但是突然我们发现mutt需要安装另外一个MTA,但是此时我们已经安装了.
    这时我们可以来到某一个目录(如/tmp)然后运行下面的命令:
    # equivs-control name
    在这里我们可以用我们要创建的控制文件的名字来替换name.文件将会以下面的方式来进行创建:
    Secton: misc
    Priority: optional
    Standards-Version: 3.0.1
    Package: <enter package name; defaults to equivs-dummy>
    Version: <enter version here; defaults to 1.0>
    Maintainer:<your name and email address; defaults to username>
    Pre-Depends:<packages>
    Depends:<packages>
    Recommends:<package>
    Suggests:<package>
    Provides:<(virtual)package>
    Architecture: all
    Copyright: <copyright file; defaults to GPL2>
    Changelog: <changelog file; defaults to a generic changelog>
    Readme: <README.Debian file; defaults to a generic one>
    Extra-Files: <additional files for the doc directory, comma-separated>
    Description: <short description; defaults to some wise words>
    long description and info
    .
    second paragraph
    我们只需要修改这些来完成我们所希望做的.我们可以查看一下各区域的格式以及他们的描述,在这里并没有必要解释每一行.让我们来做所需要的内容:
    Section: misc
    Priority: optional
    Standards-Version: 3.0.1

    Package: mta-local
    Provides: mail-transport-agent
    是的.所有的只是这些.mutt依赖于mail-transport-agent,这是由所有的MTA提供了虚拟包,我们只是简单的将他命名为mail-transport-agent,但是我们只是希望使用这个虚拟包的模式.
    现在我们所需要做的只是来创建这个包:
    # equives-build name
    dh_testdir
    touch build-stamp
    dh_testdir
    dh_testroot
    dh_clean -k
    #可以在这里加入命令将这个包安装到debian或是/tmp中
    touch install-stamp
    dh_testdir
    dh_testroot
    dh_installdocs
    dh_installchangelogs
    dh_compress
    dh_fixperms
    dh_installdeb
    dh_gencontrol
    dh_md5sums
    dh_builddeb
    dpgk-deb: building package 'name' in '../name_1.0_all.deb'.
    The package has been created.
    Attention, the package has been created in the current directory,and install the resulting .deb.
    从这里我们可以看到,equives有许多的用法.例如我们可以用这个程序依据我们平常所安装的软件可以创建我们最喜欢的安装包.发挥你的想像,但是切记要小心.
    很重要的一点就是我们要注意/usr/share/doc/equives/examples目录下的例子控制文件.
    4.2移除无用的locale文件:localepurge
    许多的Debian用户只使用一个locale.例如一个巴西用户只使用pt_BR locale而并不关心es locale.
    localepurge对于这样的用户来说是一个非常有用的工具.只保留一个我们使用的locale可以释放大量的磁盘空间.要这样做我们只需要执行下面的命令:
    apt-get install localepurge
    配置这个工具是相当容易的,debconf问题向导可以引导一步一步的进行配置.但是对于第一个问题我们一定要小记,错误的答案也许就会移除所有的locale文件,包括我们正在使用的这一个.而如果是这样那么恢复的唯一办法就是重新安装提供这些locale文件的包.
    4.3 如何知道要升级哪些软件包
    apt-show-versions程序可以显示在我们的系统中哪些包要进行升级以及其他的一些有用的信息.而-u选项可以显示可升级包的列表:
    debian:/home/mylxiaoyi# apt-show-versions -u
    libgnome2-0/unstable upgradeable from 2.12.0.1-3 to 2.12.0.1-4
    kpovmodeler/stable upgradeable from 4:3.3.2-2sarge1 to 4:3.3.2-2sarge3
    libopensc1 0.9.6-3.0.1 newer than version in archive
    而如果我们发现没有这个命令,我们可以用apt进行安装:
    # apt-get install apt-show-versions



  • 相关阅读:
    堆栈
    图解TCP/IP(第5版)
    Taglib自定义万能标签扩展 DownLoad
    MFC中对话框的数据交换(DDX)和数据校验(DDV)
    转变?
    Android文本中缩略图点击弹出大图效果实现 狼人:
    Oracle分组
    Faqseafilevssvn seafile
    阿里巴巴C++实习生相关招聘一则
    1721. Gray code[Special judge]
  • 原文地址:https://www.cnblogs.com/dyllove98/p/2462103.html
Copyright © 2011-2022 技术员博客