1. 下载xl2tpd源码

推荐一个仍在维护的网站:    https://www.xelerance.com/archives/202

也可以从其他的网站下载:例如:https://pkgs.org/download/xl2tpd

我安装时是从第一个网站下载的源码,版本是xl2tpd-1.3.15

2. ubantu虚拟机中进行编译、安装

首先解压源码,之后正常是读取源码中的README之类的文件:

这里的文件为README.md, 里面有一句编译的说明:

# Build and install
make
sudo make install

编译比较简单直接make,然后make install 即可。

root@book-virtual-machine:/usr/src/xl2tpd-1.3.15# make clean
rm -f xl2tpd.o pty.o misc.o control.o avp.o call.o network.o avpsend.o scheduler.o file.o aaa.o md5.o xl2tpd pfc.o pfc xl2tpd-control
root@book-virtual-machine:/usr/src/xl2tpd-1.3.15# make
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o xl2tpd.o xl2tpd.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o pty.o pty.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o misc.o misc.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o control.o control.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o avp.o avp.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o call.o call.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o network.o network.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o avpsend.o avpsend.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o scheduler.o scheduler.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o file.o file.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o aaa.o aaa.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o md5.o md5.c
cc -o xl2tpd xl2tpd.o pty.o misc.o control.o avp.o call.o network.o avpsend.o scheduler.o file.o aaa.o md5.o
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c contrib/pfc.c
contrib/pfc.c:14:23: fatal error: pcap-bpf.h: No such file or directory
compilation terminated.
Makefile:130: recipe for target 'pfc' failed
make: *** [pfc] Error 1

第一个问题出现:make失败,原因是缺少pcap-bpf.h。之后百度发现这是libpcap工具里的一个文件,那么就安装libpcap工具。

3. 下载工具:libpcap

这个工具可能不是必须要安装的,因为有的虚拟机可能以前安装过该工具就无需再安装。

因为在编译xl2tpd源码的时候需要连接相关文件,如:pcap-bpf.h,如果没有从默认搜索路径没有找到该文件则会产生错误。

pcap官网地址:http://www.tcpdump.org/release/

从该网站上下载一个libpcap源码,进行编译安装。

4. 编译安装:libpcap

首先虚拟机中解压:

root@book-virtual-machine:/usr/src# tar xzf libpcap-1.9.1.tar.gz 

之后查看源码中的README信息,提供编译信息的为INSTALL.md。

简单的说:

1) ./configure

2)  make

3)  make install 

这几步没有出现问题,开始编译安装xl2tpd源码

5. 重新编译安装:xl2tpd

再次执行 : make   结果成功。

root@book-virtual-machine:/usr/src/xl2tpd-1.3.15# make
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o xl2tpd.o xl2tpd.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o pty.o pty.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o misc.o misc.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o control.o control.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o avp.o avp.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o call.o call.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o network.o network.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o avpsend.o avpsend.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o scheduler.o scheduler.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o file.o file.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o aaa.o aaa.c
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c -o md5.o md5.c
cc -o xl2tpd xl2tpd.o pty.o misc.o control.o avp.o call.o network.o avpsend.o scheduler.o file.o aaa.o md5.o
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION -c contrib/pfc.c
cc -o pfc pfc.o -lpcap
cc -DDEBUG_PPPD -DTRUST_PPPD_TO_DIE -Os -Wall -Wextra -DSANITY -DLINUX -I./linux/include/ -DUSE_KERNEL -DIP_ALLOCATION xl2tpd-control.c -o xl2tpd-control

然后进行安装 make install:

root@book-virtual-machine:/usr/src/xl2tpd-1.3.15# make install
install -d -m 0755 /usr/local/sbin
install -m 0755 xl2tpd /usr/local/sbin/xl2tpd
install -d -m 0755 /usr/local/share/man/man5
install -d -m 0755 /usr/local/share/man/man8
install -m 0644 doc/xl2tpd.8 /usr/local/share/man/man8/
install -m 0644 doc/xl2tpd-control.8 /usr/local/share/man/man8/
install -m 0644 doc/xl2tpd.conf.5 doc/l2tp-secrets.5 \
/usr/local/share/man/man5/
# pfc
install -d -m 0755 /usr/local/bin
install -m 0755 pfc /usr/local/bin/pfc
install -d -m 0755 /usr/local/share/man/man1
install -m 0644 contrib/pfc.1 /usr/local/share/man/man1/
# control exec
install -d -m 0755 /usr/local/sbin
install -m 0755 xl2tpd-control /usr/local/sbin/xl2tpd-control
root@book-virtual-machine:/usr/src/xl2tpd-1.3.15#

安装成功,开始享受xl2tpd之旅。

ubantu 编译安装xl2tpd笔记的更多相关文章

  1. 2020ubuntu1804server编译安装redis笔记(一)及报make test错误解决办法

    redis的大名我想大家都不陌生,今天在ubuntu server上进行编译安装,虽然apt也可以安装,但作为内存数据库,redis又是c开发的,编译安装,对机器的适应和性能更好. 安装笔记如下 第1 ...

  2. 2020ubuntu1804server编译安装redis笔记(三)启动服务和使用redis

    第一篇笔记记录了ubuntu1804server编译安装redis5,接下来要配置redis5了 网址:https://www.cnblogs.com/qumogu/p/12435694.html 第 ...

  3. 2020ubuntu1804server编译安装redis5笔记(二)配置redis

    前一篇笔记记录了ubuntu1804server编译安装redis5,接下来要配置redis5了 网址:https://www.cnblogs.com/qumogu/p/12435694.html 第 ...

  4. mysql5.5.28.tar.gz编译安装操作笔记

    1.yum安装依赖包 yum install wget gcc gcc-c++ make cmake ncurses-devel libtool zilib-devel -y   2.创建mysql用 ...

  5. Sqlite学习笔记(一)&&编译安装

    Sqlite简介 sqlite是一个开源的嵌入式文件数据库,sqlite以动态链接库的方式供应用程序调用,所有的数据库对象都存储在同一个文件中. sqlite动态库非常小,最新的3.8.11版本也只有 ...

  6. Ubuntu 14 编译安装 PHP 5.4.45 + Nginx 1.4.7 + MySQL 5.6.26 笔记

    Ubuntu 14 编译安装 PHP 5.4.45 + Nginx  1.8.0/1.4.7 + MySQL 5.6.26 笔记,主要是给自己的PC机安装,非生产环境! 一.下载必要的源码 1.1.下 ...

  7. Centos编译安装PHP 5.5笔记

    本篇是在 Centos 6.4 32bit 下编译安装 php 5.5.5 的笔记,接上篇 Centos编译安装Apache 2.4.6笔记.php 5.5.x 和 centos 源里面的 php 5 ...

  8. 沈逸老师ubuntu速学笔记(2)-- ubuntu16.04下 apache2.4和php7结合编译安装,并安裝PDOmysql扩展

    1.编译安装apache2.4.20 第一步: ./configure --prefix=/usr/local/httpd --enable-so 第二步: make 第三步: sudo make i ...

  9. 对<< ubuntu 12.04编译安装linux-3.6.10内核笔记>>的修正

    前题: 在前几个月的时候,写了一篇笔记,说的是kernel compile的事情,当时经验不足,虽说编译过了,但有些地方写的有错误--因为当时的理解是有错误的.今天一一更正,记录如下: 前文笔记链接: ...

随机推荐

  1. 一些Shell脚本记录

    查看换行符 使用vim打开文件,输入:set ff?.根据返回结果可以文件类型 字符串 opcenter.sjb.bz [root@opcenter backup]# echo ${HOSTNAME% ...

  2. Yara规则学习

    01 定义 官网: YARA is a tool aimed at (but not limited to) helping malware researchers to identify and c ...

  3. Java Stream 自定义Collector

    Collector的使用 使用Java Stream流操作数据时,经常会用到各种Collector收集器来进行数据收集. 这里便深入了解一点去了解Collector的工作原理和如何自定义Collect ...

  4. 强烈IDEA这些插件,让你的开发速度飞起来!

    大家好,我是大彬~ 俗话说:工欲善其事必先利其器.今天给大家介绍几款我自己经常用的 IDEA 插件,很强大,助力大家开发. 插件安装 以IDEA为例,进入settings->Plugins-&g ...

  5. Springboot通过拦截器拦截请求信息收集到日志

    1.需求 最近在工作中遇到的一个需求,将请求中的客户端类型.操作系统类型.ip.port.请求方式.URI以及请求参数值收集到日志中,网上找资料说用拦截器拦截所有请求然后收集信息,于是就开始了操作: ...

  6. 如何高效、快速学习Flutter?如何避坑?(文末送服福利)

    稳住,今天是周末,不过我今天要上班....啊..啊... 对于 Flutter 我没有太多的发言权,不过GSY是对 Flutter 充分理解并精深掌握的前辈了,所以转一篇他对 Flutter 的一些解 ...

  7. SpringBoot报错:Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.

    Spring Boot报错:Error starting ApplicationContext. To display the conditions report re-run your applic ...

  8. 【学习笔记】Expression表达式目录树

    Expression表达式目录树:一个能拼装能解析的数据结构,语法树. 一.手动拼装表达式目录树 示例1: /// <summary> /// 展示表达式树,协助用的 /// 编译lamb ...

  9. 《JERRY Hexo & GitHub 静态网站搭建说明》

    JERRY-Hexo-GitHub <JERRY Hexo & GitHub 静态网站搭建说明> 原创内容,转载请注明出处! 一.前言 1.1 什么是 Hexo? 一个基于 Nod ...

  10. Nikitosh 和异或

    题面 设 \(l_{i}\) 为以 \(i\) 为结尾的区间中最大的一段异或值,\(r_{i}\) 为以 \(i\) 为开头的区间中最大的一段异或值. 则有 \[l_{i}=\max\left(l[i ...