CLI框架:klish安装与使用
在通信设备领域,思科的路由器设备可以用CLI进行操作。这里介绍的开源项目klish是思科CLI风格(CISCO-like CLI)的框架。命令配置文件为xml格式。
环境
Ubuntu 20.04.2 LTS
编译
版本:klish 2.2
//1. 运行autogen.sh生成configure文件
klish# ls
autogen.sh
klish# ./autogen.sh
Makefile.am: installing 'aux_scripts/depcomp'
autoreconf: Leaving directory `.'
生成configure文件
klish# ls
autogen.sh
configure
//2. 运行configure生成Makefile文件
klish# ./configure
config.status: executing libtool commands
config.status: executing depfiles commands
生成makefile文件
klish# ls
autogen.sh
configure
Makefile
//3. make编译
klish# make
make[1]: Leaving directory '/workspace/klish'
//4. make install安装
klish# make install
Libraries have been installed in:
/usr/local/lib
/bin/mkdir -p '/usr/local/bin'
/bin/bash ./libtool --mode=install /usr/bin/install -c bin/clish bin/konfd bin/konf bin/sigexec '/usr/local/bin'
遇到过的问题
问题1
缺少宏定义:AC_PROG_LIBTOOL
# ./autogen.sh
+ mkdir -p m4
+ autoreconf -fvi
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4
configure.ac:417: warning: macro 'AM_LANGINFO_CODESET' not found in library
autoreconf: configure.ac: tracing
autoreconf: configure.ac: creating directory aux_scripts
autoreconf: configure.ac: not using Libtool
autoreconf: running: /usr/bin/autoconf --force
configure.ac:20: error: possibly undefined macro: AC_LIBTOOL_WIN32_DLL
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:21: error: possibly undefined macro: AC_PROG_LIBTOOL
configure.ac:431: error: possibly undefined macro: AM_LANGINFO_CODESET
autoreconf: /usr/bin/autoconf failed with exit status: 1
解决:
网上搜了下这个宏,发现是缺少了依赖库。安装了依赖库后可以继续往下走。
sudo apt-get install libtool
问题2
找不到头文件expat.h
# make
clish/shell/shell_expat.c:40:10: fatal error: expat.h: No such file or directory
#include <expat.h>
^~~~~~~~~
compilation terminated.
Makefile:1798: recipe for target 'clish/shell/libclish_la-shell_expat.lo' failed
解决:
网上查询发现少了依赖库。安装后继续
# apt-get install libexpat1-dev
问题3
缺少XML_ParserCreate
libtool: link: gcc -Wall -g -O2 -o bin/.libs/clish bin/clish.o ./.libs/libclish.so ./.libs/libkonf.so ./.libs/libtinyrl.so ./.libs/liblub.so -ldl
./.libs/libclish.so: undefined reference to `XML_ParserCreate'
./.libs/libclish.so: undefined reference to `XML_SetCharacterDataHandler'
./.libs/libclish.so: undefined reference to `XML_ParserFree'
./.libs/libclish.so: undefined reference to `XML_SetUserData'
./.libs/libclish.so: undefined reference to `XML_Parse'
./.libs/libclish.so: undefined reference to `XML_SetElementHandler'
collect2: error: ld returned 1 exit status
Makefile:1327: recipe for target 'bin/clish' failed
make[1]: *** [bin/clish] Error 1
make[1]: Leaving directory '/home/klish'
Makefile:717: recipe for target 'all' failed
make: *** [all] Error 2
解决:
网上查询发现缺少库libxml2
# apt-cache search libxml
libxml2 - GNOME XML library
libxml2-dev - Development files for the GNOME XML library
# apt-get update
# apt-get install libxml2-dev
运行
klish-2.2# CLISH_PATH=xml-examples/klish/etc/clish bin/clish
> show
Syntax error: Unknown command
klish-2.2# CLISH_PATH=xml-examples/klish/etc/clish-enable bin/clish
#
! Comments
configure Enter configuration mode
copy Copy from one file to another
disable Turn off privileged commands
exit Exit from the CLI
ping Send messages to network hosts
reboot Halt and perform a cold restart
show Show running system information
traceroute Print the route packets trace to network host
# configure terminal
(config)#
! Comments
do To run exec commands in config mode
exit Exit from configure mode
hostname Set system's network name
interface Select an interface to configure
ip Global IP configuration subcommands
no Negate a command or set its defaults
(config)# ip route 172.0.11.2/24 172.0.11.1
/tmp/klish.fifo.9205.MfgOB7: 6: /tmp/klish.fifo.9205.MfgOB7: ip: not found
CLI框架:klish安装与使用的更多相关文章
- Yaf零基础学习总结2-Yaf框架的安装
接着上一篇文章<Yaf零基础学习总结1-Yaf框架简介>我们对Yaf框架有那么一个大概的了解了,但是对于程序员来说,那些文字都是表面的,他们最想的就是开始敲代码了.当然这也是学习Yaf框架 ...
- windows下游戏服务器端框架Firefly安装说明及demo运行
原地址:http://blog.csdn.net/wangqiuyun/article/details/11150503 本来公司一个网游服务器端选定了pomelo框架,后来出了个Firefly,为做 ...
- linux下Python网络编程框架-Twisted安装
Twisted是python下的用来进行网络服务和应用程序编程的框架,安装Twisted前需要系统预先安装有python. 一.安装Twisted http://twistedmatrix.com/R ...
- 深度学习框架-caffe安装-环境[Mac OSX 10.12]
深度学习框架-caffe安装 [Mac OSX 10.12] [参考资源] 1.英文原文:(使用GPU) [http://hoondy.com/2015/04/03/how-to-install-ca ...
- 深度学习框架-caffe安装-Mac OSX 10.12
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } p.p2 ...
- php框架中的phalcon框架的安装,及初步认识,从表单提交简单的数据到数据库中
php框架中的phalcon框架的安装,及初步认识,从表单提交简单的数据到数据库中 1.phalcon框架的安装: phalcon框架在windows本地安装可以利用wamp软件,安装之后可以查看对应 ...
- asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程
最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...
- python爬虫中scrapy框架是否安装成功及简单创建
判断框架是否安装成功,在新建的爬虫文件夹下打开盘符中框输入cmd,在命令中输入scrapy,若显示如下图所示,则说明成功安装爬虫框架: 查看当前版本:在刚刚打开的命令框内输入scrapy versio ...
- .NET EF框架的安装、及三种开发模式
一.EF框架的安装: 要在VS(如Visual Studio 2012)中使用EF框架,就需要先进行安装. 我们需要给这个应用安装EntityFramework包,引入EF框架相关的内容,我们需要引入 ...
- python爬虫随笔-scrapy框架(1)——scrapy框架的安装和结构介绍
scrapy框架简介 Scrapy,Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试 ...
随机推荐
- 自然语言处理NLP程序包(NLTK/spaCy)使用总结
NLTK和SpaCy是NLP的Python应用,提供了一些现成的处理工具和数据接口.下面介绍它们的一些常用功能和特性,便于对NLP研究的组成形式有一个基本的了解. NLTK Natural Langu ...
- C#-1 .Net框架
一 .Net框架组成分为三部分:公共语言运行时CLR.框架类库FCL和编程工具 1.CLR:公共语言运行时(Common Language Runtime): 是一个运行时环境负责代码安全验证.代码执 ...
- POJ3417 Network暗的连锁 (树上差分)
树上的边差分,x++,y++,lca(x,y)-=2. m条边可以看做将树上的一部分边覆盖,就用差分,x=1,表示x与fa(x)之间的边被覆盖一次,m次处理后跑一遍dfs统计子树和,每个节点子树和va ...
- 使用 Kubeadm 部署 K8S安装
1. 安装要求 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 一台或多台机器,操作系统 CentOS7.x-86_x64 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬 ...
- 右击存放项目的文件夹出现 open with Visual Studio Code 的打开方式
最终效果 步骤1: 找到 Visual Studio Code 的安装位置 (右击桌面Visual Studio Code 图标-->属性-->打开文件夹所在位置) 新建一个可以编辑的 c ...
- DelCrLfSpace V0.9
开发界面 Option Explicit 'SourceTextBox 是上面的源框 'ResultTextBox 是下面的处理预览框 'Form KeyPreview = True Private ...
- springboot项目整合-注册功能模块开发
工程简介 准备工作:项目所用到的html界面以及sql文件链接如下:链接: https://pan.baidu.com/s/18loHJiKRC6FI6XkoANMSJg?pwd=nkz2 提取码: ...
- python常用库总结
图片处理相关 # opencvy pip install opencv-python pip install opencv-contrib-python pip install matplotlib ...
- Django开发汇总
基本配置 # 设置数据库为使用的mysql DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'libr ...
- JIRA操作之 基本说明
官方说明:https://docs.atlassian.com/software/jira/docs/api/7.6.1/ 项目(Project) Project是一组问题单(Issue)的集合,每个 ...