我陷入了一个混乱的境地,我应该安装一个带有“ptpd”时间服务的环境。现在我的问题是我的 ptpd-server 在 Ubuntu 16.04 上运行,默认情况下它提供最新的 ptpd-version 3.2.1。但是我所有的客户端都在 Ubuntu 14.04 上运行,默认情况下它提供 ptpd-version 2.2.2。有没有办法让 3.2.1 版在 Ubuntu 14.04 上运行,或者 - 如果没有 - 有没有办法让 2.2.2 版在 Ubuntu 16.04 上运行?我只需要在两个系统上安装相同的 ptpd-version。我在 Linux 方面确实有一些经验,但我不是这方面的专家,所以如果有人能给我一个分步教程如何做到这一点,那就太好了。先感谢您!
我终于想出了如何在 Ubuntu 14.04 上安装 ptpd 2.3.1 并在系统重启后自动启动,这是我的分步教程:
从Sourceforge下载ptpd2.3.1
将ptpd-2.3.1.tar.gz复制到/opt:
sudo cp ptpd-2.3.1.tar.gz /opt
导航到/opt
cd /opt
解压文件:
sudo tar xvzf ptpd-2.3.1.tar.gz
删除文件ptpd-2.3.1.tar.gz:
sudo rm -rf ptpd-2.3.1.tar.gz
将文件夹ptpd-2.3.1重命名为ptpd:
sudo mv /opt/ptpd-2.3.1 /opt/ptpd
导航到/opt/ptpd:
cd /opt/ptpd
运行以下三个命令:(
如果您正在配置 ptpd- master,请插入:
sudo ./configure
)(如果您正在配置 ptpd- slave,请插入:)
sudo ./configure --enable-slave-only
sudo make
sudo make install
在文件夹/usr/local/bin/中创建一个文件ptpdStart.sh:
sudo touch /usr/local/bin/ptpdStart.sh
编辑该文件:
sudo nano /usr/local/bin/ptpdStart.sh
粘贴以下两行,然后保存文件并退出编辑器(当然,您必须将<networkinterface>替换为您要用于 ptpd-traffic 的网络接口的真实名称。):(
sleep 30
sleep is important(!) as如果ptpd在启动时没有找到任何功能性网络连接,它将不会启动)
如果您正在配置 ptpd- master插入:
sudo /opt/ptpd/src/ptpd2 -M -i <networkinterface>
如果您正在配置 ptpd- slave插入:
sudo /opt/ptpd/src/ptpd2 -s -i <networkinterface>
使文件可执行:
sudo chmod +x /usr/local/bin/ptpdStart.sh
编辑文件/etc/rc.local:
sudo nano /etc/rc.local
在 exit 0之前粘贴以下行,然后保存文件并退出编辑器(不要删除exit 0):
/usr/local/bin/ptpdStart.sh
重新启动您的计算机并检查 ptpd 是否正在运行:
ps -A | grep ptpd2
注意:如果没有显示任何内容,则 ptpd 没有运行!在这种情况下,请再次仔细检查步骤!
笔记!可选:如果您想通过rc-.local -file 自动启动更多进程,则必须通过插入 «&» 来分隔这些命令。例子:
/usr/local/bin/ptpdStart.sh
&
/usr/local/bin/myOtherStartScript.sh
exit 0
有关其他选项,请查看 ptpd 的在线文档。
因为 ptpd依赖于 libc6 (>= 2.15)而没有什么其他东西,您可以尝试从该页面下载 ptpd 包并将其安装在 16.04 系统上
dpkg -i
(或相反 - 在旧系统上安装较新的 ptpd)。或者将您的 14.04 系统更新到 16.04?