Chrony编译安装

我用的是Ubuntu 22.04.4,这个版本里可以直接使用下面的命令安装chrony,但是本文是针对想改动chrony源代码的开发者。

sudo apt install chrony

一、下载Chrony包并解压

可以从chrony的官网chrony – Introduction选择不同版本的版本进行下载,这里我选择的是最新的4.5版本。

进入下载好的压缩包的目录里,由于我是搭建了两台虚拟机,一台作为时间服务器,一台作为客户端,为了不重复编译,我将这个压缩包放到了共享文件夹中。

cd /压缩包所在的目录

解压到当前目录下

tar -zxvf chrony-4.5.tar.gz

二、编译

进到chrony文件的目录下

cd chrony-4.5

运行下面的指令

./configure --enable-scfilter --enable-debug --enable-sechash --enable-ntp-signd

这个时候会出现编译过程的结果

正常来说,我们需要让Features后面所有的选项前面都是“+”,这里有“-”说明有相关依赖没有安装,不同环境下缺少的包不太一样,往上看

这些显示No的,就说明缺少相关的包,同时还可以查阅chrony-4.5文件夹里的installation.adoc文件,通过这个指令,该文件在doc目录下能找到。

cd /chrony-4.5/doc

在文件中,详细说明了需要的相关依赖,可以对照自己的结果来安装,最终执行./configure那条指令,让所有选项都能启用才可以。

三、运行

运行是需要配置文件的,因为我原先有用apt install下载过chrony,我直接把那边的chrony.conf文件拿过来用,上面的流程走完之后,就可以直接执行make指令。

make

接着:

1.这是作为服务器运行

sudo ./chronyd -F -1 -f ./chronys.conf -d

2.作为客户端

sudo ./chronyd -F -1 -x -f ./chronyc.conf -d

配置文件的名称可以自行更改。当然,这里的配置文件内容是不一样的,需要另外配置好。

<think>好的,我现在需要帮助用户在Ubuntu系统中进行Chrony的离线安装。首先,用户提到了离线安装,这意味着他们可能无法直接通过apt-get在线获取软件包,所以需要手动下载和安装依赖项。 根据用户提供的引用,特别是引用[3]提到在Linux离线安装chrony服务校准时间,但引用中的例子是针对CentOS使用yum安装libtirpc-devel,而Ubuntu使用的是deb包。所以可能需要找到对应的依赖包。另外,引用[1]和[3]都涉及到了chrony安装,但引用[1]使用的是dpkg安装一个deb包,而引用[3]提到的是源码包安装。因此,用户可能需要两种方法:使用离线deb包或者从源码编译安装。 首先,我需要确认Ubuntu系统中安装chrony的常规方法是在线使用apt-get,但离线情况下需要下载deb包及其依赖。用户需要先获取chrony的deb包和所有依赖的deb文件,然后通过dpkg安装。如果存在依赖问题,可能需要手动安装这些依赖项,类似引用[1]中的例子,那里用dpkg安装ntpdate的deb包。 另外,源码安装也是一种方法,如引用[3]提到的chrony源码包。用户需要下载源码,编译安装。但编译过程中可能需要开发工具和库,如libtirpc-devel,这在Ubuntu中对应的可能是libtirpc-dev,可以通过离线安装该包。 但用户明确提到是Ubuntu系统,所以优先考虑deb包的方式。步骤可能包括: 1. 在有网络的环境中下载chrony及其依赖的deb包。 2. 将deb包复制到离线Ubuntu机器。 3. 使用dpkg -i安装,处理可能的依赖问题。 另外,引用[2]中提到关闭SELinux,但Ubuntu默认使用AppArmor,所以可能不需要这个步骤。不过需要确保系统没有其他安全策略阻碍安装。 总结步骤: 1. 下载chrony和依赖的deb包。 2. 传输到离线系统。 3. 按顺序安装依赖包,最后安装chrony。 4. 配置chrony服务并启动。 可能出现的问题:依赖关系复杂,需要正确下载所有依赖项。可以使用apt-offline或dpkg的方法生成依赖列表。 需要检查用户提供的引用是否有其他需要注意的地方,比如引用[4]提到http和https的问题,但可能不直接相关。不过如果用户的环境有网络策略限制,可能需要调整配置,但离线安装可能不需要考虑这一点。 最终,给出两种方法:使用deb包离线安装和源码编译安装,并详细步骤,确保用户能够逐步操作。</think>### Ubuntu系统Chrony离线安装方法 #### 方法一:使用离线DEB包安装 1. **在有网络的环境中下载依赖包** 在联网的Ubuntu机器上执行以下命令,下载`chrony`及其依赖包: ```bash mkdir chrony-offline cd chrony-offline apt-get download chrony $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances chrony | grep "^\w" | sort -u) ``` 此命令会下载`chrony`及其所有直接依赖的DEB包到`chrony-offline`目录。 2. **传输文件到离线系统** 将整个目录通过U盘或内部网络传输到目标离线Ubuntu系统。 3. **批量安装DEB包** 在离线系统中执行: ```bash sudo dpkg -i *.deb ``` 若提示依赖问题,可尝试: ```bash sudo apt-get -f install # 离线环境下需确保所有依赖包已包含在目录中 ``` #### 方法二:源码编译安装 1. **下载源码包** 从[Chrony官网](https://chrony.tuxfamily.org/)下载最新源码包(如`chrony-4.3.tar.gz`),并传输到离线系统。 2. **安装编译依赖(需提前准备)** 根据引用[2][^2],Ubuntu需离线安装以下开发工具和库: ```bash # 提前下载以下包的DEB文件: # build-essential, libtirpc-dev, libnss3-dev, libedit-dev sudo dpkg -i build-essential_*.deb libtirpc-dev_*.deb libnss3-dev_*.deb libedit-dev_*.deb ``` 3. **编译安装** ```bash tar -xzvf chrony-4.3.tar.gz cd chrony-4.3 ./configure --prefix=/usr/local/chrony make sudo make install ``` 4. **配置服务** 复制配置文件模板: ```bash sudo cp /usr/local/chrony/etc/chrony.conf.example /etc/chrony/chrony.conf ``` 启动服务(需手动编写systemd服务文件或使用`chronyd -q`手动同步)。 --- #### 验证安装 ```bash chronyc tracking # 显示时间同步状态 systemctl status chrony # 检查服务状态(DEB安装方式) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值