Linux 下 jdk 安装以及redis安装

linux 下 jdk 安装

先下载jdk Linux版本

放到/usr/local/目录下

然后解压 tar -zxvf jdk压缩包

编辑配置文件,配置环境变量 vim /etc/profile

末尾添加即可,内容如下:

JAVA_HOME=/usr/java/jdk1.8.0_11

JRE_HOME=/usr/java/jdk1.8.0_11/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

CLASSPATH=$JAVA_HOME/lib/

PATH=$PATH:$JAVA_HOME/bin

export PATH JAVA_HOME CLASSPATH

export JAVA_HOME=/usr/local/jdk1.8.0_11
export JRE_HOME=${JAVA_HOME}/jre
export JAVA_BIN=$JAVA_HOME/bin
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=$PATH:${JAVA_HOME}/bin:/usr/local/tomcat/bin
export NODE_HOME=/usr/local/src/node-v8.10.0-linux-x64/bin
export PATH=$NODE_HOME:$PATH

重启系统:shutdown -r now 或者 source /etc/profile  使配置文件立即生效

查看安装是否成功:

java -version

javac

Linux下安装redis启动及开启外网访问

下面方法安装不方便,过程痛苦,容易出错,建议使用yum方式安装,推荐链接,亲测成功

https://www.cnblogs.com/hjw-zq/p/9778514.html

1、安装redis

第一步:下载redis安装包

wget http://download.redis.io/releases/redis-4.0.6.tar.gz
第二步:解压压缩包

tar -zxvf redis-4.0.6.tar.gz

[root@iZwz991stxdwj560bfmadtZ local]# tar -zxvf redis-4.0.6.tar.gz

第三步:yum安装gcc依赖,如果已安装过则跳过,比如在安装nginx时已经安装过

yum install gcc  

[root@iZwz991stxdwj560bfmadtZ local]# yum install gcc

第四步:跳转到redis解压目录下遇到选择直接选择y就行

cd redis-4.0.6

[root@iZwz991stxdwj560bfmadtZ local]# cd redis-4.0.6

第五步:编译安装

make MALLOC=libc

[root@iZwz99bnrz61kdfpe40uipZ redis-4.0.6]# cd src && make install

cd src && make install切换到src目录下 并执行安装

第六步:测试是否安装成功 

[root@iZwz991stxdwj560bfmadtZ redis-4.0.6]# cd src && make install
    CC Makefile.dep
Hint: It's a good idea to run 'make test' ;)
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
[root@iZwz99bnrz61kdfpe40uipZ src]#

1、直接启动redis

./redis-server


如上图:redis启动成功,但是这种启动方式需要一直打开窗口,不能进行其他操作,不太方便。

按 ctrl + c可以关闭窗口。 

2以后台进程方式启动redis

第一步:修改redis.conf文件

daemonize no  

修改为daemonize yes

第二步:指定redis.conf文件启动

./redis-server /usr/local/redis-4.0.6/redis.conf
 或者
./src/redis-server redis.conf
[root@iZwz991stxdwj560bfmadtZ src]# ./redis-server /usr/local/redis-4.0.6/redis.conf
18713:C 13 Dec 13:07:41.109 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
18713:C 13 Dec 13:07:41.109 # Redis version=4.0.6, bits=64, commit=00000000, modified=0, pid=18713, just started
18713:C 13 Dec 13:07:41.109 # Configuration loaded

首先使用ps -aux | grep redis查看redis进程第三步:关闭redis进程

[root@iZwz991stxdwj560bfmadtZ src]# ps -aux | grep redis
root     18714  0.0  0.1 141752  2008 ?        Ssl  13:07   0:00 ./redis-server 127.0.0.1:6379
root     18719  0.0  0.0 112644   968 pts/0    R+   13:09   0:00 grep --color=auto redis

测试是否可以远程连接 重启窗口

./redis-cli -h 127.0.0.1 -p 6379

使用kill命令杀死进程成功并进行如下测试
在这里插入图片描述

[root@iZwz991stxdwj560bfmadtZ src]# kill -9 18714

1、在/etc目录下新建redis目录第七步:设置redis开机自启动

mkdir redis

2、将/usr/local/redis-4.0.6/redis.conf 文件复制一份到/etc/redis目录下,并命名为6379.conf

cp /usr/local/redis-4.0.6/redis.conf /etc/redis/6379.conf
3、将redis的启动脚本复制一份放到/etc/init.d目录下

cp /usr/local/redis-4.0.6/utils/redis_init_script /etc/init.d/redisd

4、设置redis开机自启动

先切换到/etc/init.d目录下

然后执行自启命令

[root@iZwz991stxdwj560bfmadtZ init.d]# chkconfig redisd on
service redisd does not support chkconfig (这是结果)

看结果是redisd不支持chkconfig

解决方法:

使用vim编辑redisd文件,在第一行加入如下两行注释,保存退出

# chkconfig:   2345 90 10
# description:  Redis is a persistent key-value database

注释的意思是,redis服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10。

再次执行自启命令,成功

chkconfig redisd on
启动:现在可以直接已服务的形式启动和关闭redis了

service redisd start

[root@izwz991stxdwj560bfmadtz ~]# service redisd start
Starting Redis server...
2288:C 13 Dec 13:51:38.087 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2288:C 13 Dec 13:51:38.087 # Redis version=4.0.6, bits=64, commit=00000000, modified=0, pid=2288, just started
2288:C 13 Dec 13:51:38.087 # Configuration loaded

关闭:

service redisd stop

[root@izwz991stxdwj560bfmadtz ~]# service redisd stop
Stopping ...
Redis stopped

启动时报如下错误:

[root@iZwz99bnrz61kdfpe40uipZ init.d]# service redisd start
/var/run/redis_6379.pid exists, process is already running or crashed

根据错误提示,删除6379.pid 文件:rm -rf /var/run/redis_6379.pid,再重新启动

[root@iZwz99bnrz61kdfpe40uipZ init.d]# rm -rf /var/run/redis_6379.pid
[root@iZwz99bnrz61kdfpe40uipZ init.d]# service redisd start

3redis开启远程外网访问:

  1. 检查是否被防火墙挡住-打开iptables文件

Vi /etc/sysconfig/iptables

查看文件是否有:-A INPUT -p tcp -m tcp --dport 6379 -j ACCEPT

允许6379(redis默认端口)端口访问。

  1. 检查 /etc/redis/6379.conf文件

Vi /etc/redis/6379.conf

将其默认的bind 127.0.0.1改为0.0.0.0(代表不做限制)

这样外网就能访问了

 

4、redis设置密码:

 

#requirepass foobared去掉注释,foobared改为自己的密码

我在这里改为123456 为例:

requirepass 123456

然后保存,重启服务

 

 

 

 

 

 

 

 

 

 

<think>好的,我现在需要帮助用户解决在Ubuntu系统中找不到sysrepoctl命令的问题。用户尝试运行sysrepoctl --version时,系统提示找不到命令,并建议通过sudo apt install sysrepo来安装。但根据我的知识,这可能不是最佳解决方案,因为官方推荐的方法是通过源码编译安装。 首先,我要确认用户的环境。用户使用的是VMware虚拟机,路径在~/P4下,可能正在处理P4相关的项目。Sysrepo是P4生态中的重要组件,用于管理配置和状态数据,因此正确安装非常重要。 用户遇到的错误信息表明系统无法找到sysrepoctl,可能的原因有几个:1. Sysrepo没有安装;2. 安装路径不在系统的PATH环境变量中;3. 通过包管理器安装的版本不兼容或存在问题。 Ubuntu的默认仓库中可能包含sysrepo的软件包,但版本可能较旧,无法满足P4环境的需求。例如,用户可能需要特定版本的Sysrepo来兼容P4 Runtime或其他工具。因此,直接使用apt安装可能不是最佳选择,尤其是当用户需要特定版本或最新特性时。 接下来,我需要考虑如何引导用户正确安装Sysrepo。官方推荐的方法是从源码编译安装,这样可以确保版本的正确性,并且能够自定义安装选项。此外,Sysrepo依赖libyang,因此在安装Sysrepo之前需要先安装正确版本的libyang。 用户可能需要安装依赖项,例如构建工具和库文件。常见的依赖包括cmakemake、gcc、libpcre3-dev等。在指导用户时,需要列出这些依赖的安装命令,确保用户能够顺利编译。 然后,分步骤指导用户下载、编译和安装libyang和sysrepo。需要注意版本兼容性,比如Sysrepo v2.x需要libyang v2.x,而v1.x需要libyang v1.x。根据用户之前的问题,可能更推荐使用v2.2.x的稳定版本,因此需要指定对应的标签。 安装完成后,用户可能需要将安装路径添加到PATH环境变量中,或者运行ldconfig更新动态链接库缓存,这样系统才能找到新安装的命令。 此外,用户可能遇到权限问题,比如/usr/local/lib目录的权限不足,或者需要配置环境变量。需要提醒用户在安装后检查sysrepoctl的路径,并确保可以访问。 最后,需要验证安装是否成功,通过运行sysrepoctl --version和列出已加载的模型来确认。如果仍然出现问题,可能需要检查之前的步骤是否有误,例如依赖是否全部安装,编译选项是否正确,或者是否存在残留的旧版本文件。 总结来说,解决这个问题的步骤包括:安装依赖、源码编译libyang和sysrepo、配置环境变量,以及验证安装。需要以清晰、详细的步骤指导用户,避免使用可能导致兼容性问题的包管理器安装方式,确保Sysrepo正确安装并与P4环境兼容。</think>### **Sysrepo 安装问题深度解析** #### **1. 问题定位** 您在 Ubuntu 系统执行 `sysrepoctl` 时提示命令不存在,说明以下可能性: - **未安装 Sysrepo**:系统未安装任何版本的 Sysrepo - **路径未配置**:编译安装后未将二进制路径加入 `PATH` - **包管理器版本过旧**:Ubuntu 官方仓库的 `sysrepo` 包版本可能过低(如仅提供 v0.7.x),无法满足 P4 开发需求 --- #### **2. 解决方案选择** | **方法** | **优点** | **缺点** | **适用场景** | |------------------|-----------------------------|---------------------------------|------------------------| | **源码编译安装** | 版本可控,兼容 P4 生态 | 需手动处理依赖 | 生产/开发环境推荐 | | **APT 安装** | 简单快捷 | 版本老旧(通常 ≤ v1.0),功能缺失 | 仅临时测试使用 | --- #### **3. 推荐方案:源码编译安装(以 v2.2.9 为例)** ##### **步骤 1:安装依赖** ```bash # 基础构建工具 sudo apt update && sudo apt install -y \ cmake build-essential \ libpcre3-dev pkg-config \ libavl-dev libev-dev libprotobuf-c-dev # 若需 Python API 支持(如 P4 Runtime 集成) sudo apt install -y python3-dev swig ``` ##### **步骤 2:编译安装 libyang (v2.1.30)** ```bash git clone https://github.com/CESNET/libyang.git cd libyang git checkout v2.1.30 # 确保与 Sysrepo 版本兼容 mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_BUILD_TESTS=OFF .. make -j$(nproc) sudo make install ``` ##### **步骤 3:编译安装 Sysrepo (v2.2.9)** ```bash git clone https://github.com/sysrepo/sysrepo.git cd sysrepo git checkout v2.2.9 # 指定稳定版本 mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release \ -DENABLE_TESTS=OFF \ -DCMAKE_INSTALL_PREFIX=/usr/local \ # 指定安装路径 -DREPOSITORY_LOC=/etc/sysrepo .. # 配置文件存储位置 make -j$(nproc) sudo make install ``` ##### **步骤 4:配置动态链接库** ```bash # 更新库路径 sudo ldconfig # 验证安装路径 which sysrepoctl # 应显示 /usr/local/bin/sysrepoctl ``` --- #### **4. 环境验证** ```bash # 查看版本信息 sysrepoctl --version # 预期输出示例: sysrepoctl - sysrepo YANG datastore manager, compiled with libsysrepo v2.2.9 # 初始化数据存储 sudo sysrepoctl --init ``` --- #### **5. 常见问题处理** **Q1: 编译时出现 `libyang.so not found` 错误** ```bash # 手动指定库路径 export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH # 永久生效可写入 ~/.bashrc echo &#39;export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH&#39; >> ~/.bashrc ``` **Q2: 文件权限问题导致操作失败** ```bash # 设置 sysrepo 数据目录权限 sudo chmod -R 777 /etc/sysrepo # 开发环境临时方案 # 生产环境建议配置专用用户组 ``` **Q3: 需要卸载旧版本** ```bash # 查找已安装文件 sudo find / -name "*sysrepo*" # 手动删除旧版本库文件和头文件 ``` --- #### **6. 与 P4 生态集成建议** 1. **P4 Runtime 兼容性** Sysrepo v2.x 需配合: - PI (Protocol-Independent) 库 v0.6+ - P4Runtime v1.3+ 2. **BMv2 支持** 在启动 `simple_switch_grpc` 时指定 sysrepo 配置: ```bash ./simple_switch_grpc --log-console \ --device-id 1 \ --sysrepo-config /etc/sysrepo ``` 3. **YANG 模型管理** 将 P4 程序生成的 YANG 模型导入 Sysrepo: ```bash sysrepoctl --install --yang=./p4info.yang ``` --- ### **总结** - **勿用 APT 直接安装**:Ubuntu 仓库版本无法满足现代 P4 开发需求 - **版本锁定**:生产环境建议固定 libyang + sysrepo 版本组合 - **开发环境隔离**:使用 Docker 容器管理依赖可避免系统污染 通过源码编译安装可确保获得完整功能支持,后续进行 P4 数据平面与控制平面集成时稳定性更高。建议将上述安装过程编写为自动化脚本以便环境重建。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值