【个人记录】Ubuntu做网络路由+强化学习项目debug

本篇并不介绍做整个项目的过程,仅仅是个人在科研过程中的debug记录和心得。希望某个部分是你正需要的解决方案。

第一部分:在服务器上安装mininet

mininet是一个在安装过程中比较容易出问题的包。一定要好好看看官方INSTALL文档。Download/Get Started With Mininet

最简单的方式是下载Mininet镜像虚拟机,但是一开始我使用的实验室的服务器,所以选择clone再安装。实验室的服务器使用LXD容器形式,Ubuntu版本22.04。

服务器由于某些原因无法上外网,所以使用本地IPv6拉代理上外网(该方法在其他服务器或虚拟机上能不能实现不知道)。具体步骤是:①打开clash for wins的allow LAN并记下端口号;②在本地通过ipconfig查看ipv6地址;③服务器命令行中输入:export http_proxy=http://[你的ipv6地址]:本地代理端口号 export https_proxy=https://[你的ipv6地址]:本地代理端口号;④在服务器命令行中输入“ wget http://www.baidu.com”测试,如果能够获取index.html,即为成功。

通过以上步骤成功git clone https://github.com/mininet/mininet.git至服务器。接着运行mininet/utils/install.sh -a。

运行mininet的安装脚本时出现了错误:

-DVERSION=\"`PYTHONPATH=. python -B bin/mn --version 2>&1`\" mnexec.c -o mnexec
<command-line>: warning: missing terminating " character
mnexec.c: In function ?main?:
<command-line>: error: missing terminating " character
mnexec.c:208:28: note: in expansion of macro ?VERSION?208 |             printf("%s\n", VERSION);|                            ^~~~~~~
mnexec.c:208:35: error: expected expression before ?)? token208 |             printf("%s\n", VERSION);|                                   ^
make: *** [Makefile:50: mnexec] Error 1

通过建立软链接的方式解决问题,参考【排坑向】Mininet完全安装指南:

sudo ln -s /usr/bin/python3 /usr/bin/python

接着出现以下错误:

Setting up openvswitch-switch (2.17.8-0ubuntu0.22.04.1) ...
Could not execute systemctl:  at /usr/bin/deb-systemd-invoke line 142.
A dependency job for openvswitch-switch.service failed. See 'journalctl -xe' for details.
invoke-rc.d: initscript openvswitch-switch, action "start" failed.
? openvswitch-switch.service - Open vSwitchLoaded: loaded (/lib/systemd/system/openvswitch-switch.service; enabled; vendor preset: enabled)Drop-In: /run/systemd/system/service.d??zzz-lxc-service.confActive: inactive (dead)systemd[1]: Dependency failed for Open vSwitch.                                                 
openvswitch-switch.service: Job openvswitch-switch.service/start failed with result 'dependency'.

输入journalctl -xe命令得到:

pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1001)
pam_unix(sudo:session): session closed for user root
username : TTY=pts/2 ; PWD=/home/username/Documents/mininet ; USER=root ; ENV=PYTHON=python ; COMMAND=/usr/bin/make >
pam_limits(sudo:session): Could not set limit for 'core' to soft=0, hard=-1: Operation not permitted; uid=1001,euid=0

大意就是出现了与pam_limits和资源限制相关的错误。需要编辑/etc/security/limits.conf文件来设置资源限制。但是因为我无权修改,所以服务器这条路彻底走不通了,于是才使用了虚拟机。

第二部分:在虚拟机上安装mininet

在虚拟机上安装mininet异常顺利。
虚拟机配置:
VMware 16 pro
Ubuntu20.04
创建虚拟环境pytorch,python版本3.7

听到说不要用太新的Ubuntu版本,可能会有问题。

出现了一下问题:

-DVERSION=\"`PYTHONPATH=. python -B bin/mn --version 2>&1`\" mnexec.c -o mnexec
<command-line>: warning: missing terminating " character
/usr/bin/ld: cannot find 1:: No such file or directory
/usr/bin/ld: cannot find python:: No such file or directory
/usr/bin/ld: cannot find not: No such file or directory
/usr/bin/ld: cannot find found": No such file or directory
collect2: error: ld returned 1 exit status
make: *** [Makefile:50: mnexec] Error 1

可通过建立软链接解决。其余问题就是因为连外网不稳定,导致依赖无法clone下来。解决这个问题我是等着能连上了就赶紧安装mininet,也可以搜索一下虚拟机连外网的方法。

第三部分:本地vscode连接虚拟机

参考自vscode 连接虚拟机(Ubuntu)系列问题

安装ssh的时候出现了点小问题,先是输入命令sudo apt - get install openssh-server,出现以下报错:

E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

可以先重启一下系统,如果还是无法解决可以按照Linux 报错:Could not get lock /var/lib/dpkg/lock 该如何解决呢?或How to Fix ‘E: Could not get lock /var/lib/dpkg/lock’ Error in Ubuntu Linux尝试解决。

持续更新……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/236042.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

easyExcel生成excel并导出自定义样式------添加复杂表头

easyExcel生成excel并导出自定义样式------添加复杂表头 设置合并竖行单元格&#xff0c;表头设置 OutputStream outputStream ExcelUtils.getResponseOutputStream(response, fileName);//根据数据组装需要合并的单元格Map<String, List<String>> strategyMap …

gem5 garnet l1 l2 cache的创建与相连

gem5 garnet l1 l2 cache的创建与相连 主要就是这个图&#xff1a; 细节 我们用的是gem5/configs/deprecated/example/fs.py #fs.py 引入了上两层路径&#xff0c;也就是当前可以看到 gem5/configs/路径。 addToPath("../../")#fs.py引入了gem5/configs/ruby/Ru…

登录验证开发 - 登录注册开发入门(4)

AI应用开发入门10&#xff1a;登录验证功能低代码开发实战 引言 在本次教程中&#xff0c;我们将引导您通过使用低代码平台——多八多AI应用开发助手&#xff0c;完成一个登录验证功能的开发。这个功能能够接收用户的登录信息&#xff0c;并在后台进行验证&#xff0c;将结果返…

MaBatis使用`ResultMap`标签手动映射详解使用

文章目录 MaBatis使用ResultMap标签手动映射详解使用1、MyBatis只能自动维护库表”列名“与”属性名“相同时的对应关系&#xff0c;二者不同时无法自动ORM&#xff0c;如下&#xff1a;2、在SQL中使用 as 为查询字段添加列别名&#xff0c;以匹配属性名&#xff1a;但是如果我…

程序员为什么不接单赚钱?绝对是损失!!!

天气渐寒&#xff0c;2024年步步紧逼。 回望旧的2023年&#xff0c;生活有日益向好吗&#xff1f;身体是否还匹配年龄呢&#xff1f; 再问一个致命的问题&#xff1a;2023年攒的钱够多了吗&#xff1f; 如果差强人意&#xff0c;建议来年再改进。若是一言难尽&#xff0c;同样…

python 音视频合并

目录 moviepy ffmpeg命令合成&#xff1a; 添加字幕文件&#xff1a; 添加字幕文本&#xff1a; pipeline添加字幕&#xff1a; moviepy python&#xff08;opencv pyaudio moviepy&#xff09;实现录制音视频文件并合并_ubuntu使用python的sounddeviceopencv录制音视频…

分享一个好看的vs主题

最近发现了一个很好看的vs主题&#xff08;个人认为挺好看的&#xff09;&#xff0c;想要分享给大家。 主题的名字叫NightOwl&#xff0c;和vscode的主题颜色挺像的。操作方法也十分简单&#xff0c;首先我们先在最上面哪一行找到扩展。 然后点击管理扩展&#xff0c;再搜索栏…

Cmake学习笔记

1.linux下静态库包含静态库 使用qt在windows下是已经跑通过&#xff0c;但是在linux下一直没有成功。 测试发现linux可以实现.a连接.a的方案. 测试例子编译libtest1.a 和libtest2.a。libtest2.a中调用了libtest1.a 。最后在main.c中调用libtest2.a的函数。 配置环境变量文件…

ssm基于vue.js的连锁干洗店后台管理系统论文

摘 要 使用旧方法对连锁干洗店后台管理信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在连锁干洗店后台管理信息的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。 这次…

JDBC的使用

目录 JDBC简介 JDBC的使用 JDBC简介 JDBC(Java DataBase Connectivity)是用Java操作数据库的一套API。 sun公司官方定义的一套操作所有关系型数据库的规范&#xff0c;即接口。各个数据库厂商去实现这套接口&#xff0c;提供数据库驱动jar包。我们可以使用这套接口(JDBC)来编…

在Docker中安装kafka遇到问题记录

命令含义解答&#xff1a; 在docker安装kafka的时候&#xff0c;启动kafka的时候会执行下面语句&#xff1a; docker run -d --log-driver json-file --log-opt max-size100m --log-opt max-file2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID0 -e KAFKA_ZOOKEEPER_CONNEC…

Bugku- misc-插画-WP

下载得到一个zip&#xff0c;用WinRAR打开时发现有注释 注释&#xff1a; RnJlZV9GaWxlX0NhbW91ZmxhZ2UsIOmimOebruWlveWDjaYraMuumHjeimgeeahOagtWtkC4u 明显是base64&#xff0c;解码得到&#xff1a;Free_File_Camouflage, 题目好像是挺重要的样子… 百度发现这是一款隐写…

leetcode面试经典150题——38 生命游戏

题目&#xff1a;生命游戏 **描述&#xff1a;**根据 百度百科 &#xff0c; 生命游戏 &#xff0c;简称为 生命 &#xff0c;是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 给定一个包含 m n 个格子的面板&#xff0c;每一个格子都可以看成是一个细胞。每个细胞都…

Spring MVC统一异常处理 - `@ExceptionHandler`

概述 在Web应用程序中&#xff0c;错误和异常是不可避免的。Spring MVC框架提供了ExceptionHandler注解&#xff0c;用于捕获和处理控制器中抛出的异常。通过统一异常处理&#xff0c;可以有效地对应用程序中的异常进行管理和处理&#xff0c;提高用户体验和代码的可维护性。本…

【LeetCode刷题】--245.最短单词距离III

245.最短单词距离III class Solution {public int shortestWordDistance(String[] wordsDict, String word1, String word2) {int len wordsDict.length;int ans len;if(word1.equals(word2)){int prev -1;for(int i 0;i<len;i){String word wordsDict[i];if(word.equa…

EASYEXCEL导出表格(有标题、单元格合并)

EASYEXCEL导出表格&#xff08;有标题、单元格合并&#xff09; xlsx格式报表的导出&#xff0c;导出的数据存在父子关系&#xff0c;即相当于树形数据&#xff0c;有单元格合并和标题形式的要求&#xff0c;查阅了一些资料&#xff0c;总算是弄出来了&#xff0c;这里另写一个…

Codeforces Round 916(Div.3) A~G

A.Problemsolving Log(计数) 题意&#xff1a; 有 26 26 26个问题 A ∼ Z A \sim Z A∼Z&#xff0c;分别需要尝试 1 ∼ 26 1 \sim 26 1∼26次才能通过。 给出一个字符串&#xff0c;里面包含的每个字母代表着这道题目的一次尝试&#xff0c;问&#xff1a;总共通过了多少题…

ConditionalOnMissingBean 注解的概述

功能说明 ConditionalOnMissingBean 是 Spring Boot 中用于条件化配置的一个注解&#xff0c;属于 Conditional 注解的一种具体实现。它的主要作用是仅在 Spring 上下文中不存在某个特定的 bean 时&#xff0c;才会创建标注了这个注解的 bean。 应用场景 自动配置&#xff1a…

前端已死?探讨人工智能与低代码对前端的影响

文章目录 每日一句正能量前言前端行业究竟是好是坏&#xff1f;数字化转型的当下前端工程师该何去何从&#xff1f; 想要入行前端先认清这三个事实 后记 每日一句正能量 人的结构就是相互支撑&#xff0c;众人的事业需要每个人的参与。 前言 随着人工智能和低代码的崛起&#…