• squid 学习笔记(2)---编译安装


    编译:

     cd squid-2.5.STABLE4 
     ./configure --enable-icmp --enable-htcp
    make 
    

      

    安装:

    su
    password: 
    make install
    

      

    假如你通过使用--enable-icmp 选项,激活了 squid 的 ICMP 衡量功能,那么必 须安装 pinger 程序。pinger 程序必须以超级用户权限安装,因为仅仅允许 root 来发送和接受 ICMP 消息。下列命令以相应的许可来安装 pinger 程序:

    #make install-pinger 
    

    在安装完后,你将在 squid 的安装目录里(默认是/usr/local/squid)见到下列 目录和文件:

    sbin

    sbin 目录的程序正常只能被 root 启动

    sbin/squid

    Squid 的主程序

    bin 
    

    bin 目录包含对所有用户可用的程序

     

    bin/RunCache

    RunCache 是一个 shell 脚本,你能用它来启动 squid。假如 squid 死掉,该脚本 自动重启它,除非它检测到经常的重启。RunCache 是一个时间遗留的产物,那 时 Squid 还不是后台服务进程。在最近的版本里,RunCache 很少用到,因为 Squid 自动重启它自身,当你不使用-N 选项时。

    bin/RunAccel

    RunAccel 与 RunCache 几乎一致,唯一的不同是它增加了一个命令行参数,告诉 squid 在哪里侦听 HTTP 请求。

    bin/squidclient 

    squidclient 是个简单的 HTTP 客户端程序,你能用它来测试 squid。它也有一些 特殊功能,用以对运行的 squid 进程发起管理请求。

    libexec

    libexec 目录传统的包含了辅助程序。有一些命令你不能正常的启动。然而,这 些程序通常被其他程序启动。

    libexec/unlinkd

    unlinkd 是一个辅助程序,它从 cache 目录里删除文件。如你后面看到的一样, 文件删除是个性能瓶颈。通过在外部进程里执行删除操作,Squid 提升了一些执 行性能。

    libexec/cachemgr.cgi

    cachemgr.cgi 是 Squid 管理功能的 CGI 接口。为了使用它,你需要拷贝该程序 到你的 WEB 服务器的 cgi-bin 目录。

    libexec/diskd(optional)

    假如你指定了--enable-storeio=diskd,你才能看到它。 l

    ibexec/pinger(optional)

    假如你指定了--enable-icmp,你才能看到它

    etc

    etc 目录包含 squid 的配置文件。

    etc/squid.conf

    这是 squid 的主要配置文件。初始的该文件包含了大量的注释,用以解释每一个 选项做什么。在你理解了这些配置指令后,建议你删除这些注释,让配置文件更 小和更容易阅读。注意假如该文件存在,安装过程不会覆盖该文件。

    etc/squid.conf.default

    这是从源代码目录中拷贝过来的默认配置文件。在升级了 squid 安装后,你也许 发现有一份当前默认配置文件的拷贝是有用的。可能会增加新的配置指令,一些 存在的旧指令可能有所改变。

    etc/mime.conf

    mime.conf 文件告诉 squid 对从 FTP 和 Gopher 服务器获取的数据使用何种 MIME 类型。该文件是一个关联文件名扩展到 MIME 类型的表。正常而言,你不必编辑 该文件。然而,你可能需要增加特殊文件类型的接口,它们在你的组织内使用。

    etc/mime.conf.default

    这是从源代码目录里拷贝过来的默认 mime.conf 文件。

    share

    share 目录通常包括 squid 的只读数据文件。

    share/mib.txt

    这是 squid 的 SNMP 管理信息基础(MIB)文件。squid 自身不使用该文件,然而, 你的 SNMP 客户端软件(例如 snmpget 和多路由走向图(MRTG))需要该文件,用 以理解来自 squid 的 SNMP 对象可用。

    share/icons

    share/icons 目录包含大量的小图标文件,squid 用在 FTP 和 Gopher 目录列举 里。正常而言,你不必担心这些文件,但如果需要,你可以改变它们。

    share/errors

    share/errors 目录包含了 squid 显示给用户看的错误消息模板。这些文件在你 安装 squid 时,从源代码目录拷贝而来。如果需要你可以编辑它们。然而,在每 次运行 make install 时,安装过程总会覆盖它们。所以假如你想定制错误消息, 建议你把它们放在不同的目录。

    var

    var 目录包含了不是很重要的和经常变化的文件。这些文件你不必正常的备份它 们。

    var/logs

    var/logs 目录是 squid 不同日志文件的默认位置。当你第一次安装 squid 时, 它是空的。一旦 squid 开始运行,你能在这里看到名字为 access.log,cache.log 和 store.log 这样的文件。

    var/cache

    假如你不在 squid.conf 文件里指定,这是默认的缓存目录(cache_dir)。

    打补丁

    在你运行 squid 一段时间后,你可能发现需要打源代码补丁,用以修正 bug 或者 增加试验性的功能。在 squid-cache.org 站点上,对重要的 bug 修正会发布补丁。 假如你不想等到下一个官方发布版本,你能下载补丁,并且打到你的源代码中。 然后你需要重新编译 squid。

    为了打补丁-或者有时候叫差别文件-你需要一个叫做"patch"的程序。你的操作 系统必须有该程序。如果没有,你可以从GNU工具集里下载 (http://www.gnu.org/directory/patch.html).

    为了打补丁,你必须把补丁文件存放在系统中某处。然后进入到 squid 的源代码 目录,运行如下命令:

    % cd squid-2.5.STABLE4 
    % patch < /tmp/patch_file
    

    默认的,在 patch 程序运行时,它告诉你它正在做什么。通常输出滚动非常快, 除非有问题。你能安全的忽略它输出的 offset NNN lines 警告。假如你不想见 到所有这些输出,使用-s 选项选择安静模式。 当补丁更新了源代码后,它创造了原始文件的拷贝。例如,假如你对 src/http.c 打一个补丁,备份文件名就是 src/http.c.orig.这样,假如你在打了补丁后想 撤销这个操作,简单的重命名所有的.orig 文件到它们以前的格式。为了成功的 使用该技术,建议你在打补丁之前删除所有的.orig 文件。

    在你打完补丁后,你必须重新编译 squid。make 的先进功能之一就是它仅仅编译 改变了的文件。但有时候 make 不能理解错综复杂的依赖关系,它没有完整的重 编译所需文件。为了安全起见,通常建议你去重编译所有文件。最好的方法是在 开始编译之前清除源代码树:

    %make clean 
    %make 
    

    重运行 configure

    以相同的选项重运行./configure,使用如下命令:

    %config.status --recheck
    

    另一个技术是`touch config.status`文件,它更新了该文件的时间戳。这导致 make 在编译源代码之前,重新运行./configure 脚本: 

    % touch config.status 
    % make  
    

      

    如果增加或删除./configure 选项,你必须重新敲入完整的命令行。假如你记不 住以前的选项,请查看 config.status 文件的顶部。例如: 

    % head config.status
    

      

    在运行./configure 之后,你必须再次编译和安装 squid。安全起见,建议先运 行 make clean:

    %make clean 
    %make
    

    回想一下,./configure 会缓存它在你系统中发现的东西。在这样的形式下, 你可能想清除这些缓存,从头开始编译过程。假如喜欢,你可以简单的删除 config.cache 文件。然后,下一次./configure 运行时,它不会使用以前的数值。 你也能恢复 squid 源代码树到它的 configure 之前的状态,使用如下命令:

    %make distclean

    这将删除所有的目标文件和其他被./configure 和 make 程序产生的文件。

  • 相关阅读:
    Java的Regex --正则表达式
    Java的包装类
    类的始祖Object
    abstract和interface关键字介绍
    内部类
    Accumulation Degree [换根dp,二次扫描]
    牛客练习赛61 [口胡]
    CF1334G Substring Search [bitset,乱搞]
    CF1175F The Number of Subpermutations [哈希,乱搞]
    CF793G Oleg and chess [线段树优化建边,扫描线,最大流]
  • 原文地址:https://www.cnblogs.com/saryli/p/15214218.html
Copyright © 2020-2023  润新知