当前位置: 首页 > news >正文

建网站/长沙百度网站推广

建网站,长沙百度网站推广,wordpress media,分析企业营销型网站建设的可能性1. 在 Windows 11 上部署 Ubuntu (WSL) 由于作者没有高性能的 Ubuntu 服务器或个人电脑,且公司或学校提供的 Ubuntu 服务器虽然提供高性能 GPU 等硬件配置但通常不会提供 root 权限,因而作者通过在搭载了 Windows 11 的个人电脑上启动 Ubuntu (WSL) 来进…

1. 在 Windows 11 上部署 Ubuntu (WSL)

由于作者没有高性能的 Ubuntu 服务器或个人电脑,且公司或学校提供的 Ubuntu 服务器虽然提供高性能 GPU 等硬件配置但通常不会提供 root 权限,因而作者通过在搭载了 Windows 11 的个人电脑上启动 Ubuntu (WSL) 来进行指引。不使用 WSL 的读者朋友可直接跳过本节。

参考 https://learn.microsoft.com/zh-cn/windows/wsl/install 完成 WSL 功能启用重启 Windows 11 后,(以管理员身份)启动命令提示符(按下 Win 键后使用英文输入法输入 cmd 三个字母后单击“命令提示符”或“以管理员身份运行”并授权),在弹出的命令提示符窗口(以下简称“cmd 窗口”)中输入 wsl --install Ubuntu 并回车。随后,根据提示信息输入用户名(建议全部小写字母)、密码(建议十位以上的综合型密码)和确认密码。这里用户名、密码和确认密码的用途是注册,而不是登录。显示出系统信息和其它信息后,“一台” WSL 就安装完成了,我们也进入到了 WSL 中。
安装 WSL
此处,我们使用 Ubuntu 24.04.1 LTS,因为这是我个人认为所有公开的 Linux 操作系统中最好用的一个。为方便起见,用户登录到 WSL 后立即使用 sudo passwd root 命令指定 root 用户的密码。此处,第一个输入的密码为上面我们注册的用户(例如 universe)的密码,用途是确认用户授权;第二个输入的密码为为新 root 用户指定的新密码,用途为用户注册;第三个输入的密码用于再次确认第二次输入的密码,用途是确认当前用户为新 root 用户指定的新密码,防止用户键入到计算机的密码和用户希望键入到计算机的密码不一致或手误。随后,执行 su root 命令并输入密码切换到 root,执行 cd ~ 切换到 root 用户的用户目录。
su root
如有需要,执行 apt-get update && apt-get upgrade 进行一些更新和升级,在询问是否继续升级时输入 Y 并回车,也可以直接回车(默认 Y)。有需要的用户也可以更改 apt 源。
apt-get update && apt-get upgrade
apt-get update && apt-get upgrade
apt-get update && apt-get upgrade
附:如果需要退出 WSL 的登录返回到 cmd 中,可以直接在 WSL 的 shell 中执行 exit。退出后,WSL 中的数据会保留。如果哪天不需要这个 WSL 了,可以通过在 cmd 下执行 wsl --unregister Ubuntu 命令进行对 Ubuntu WSL 的注销。相比于 wsl --uninstall Ubuntuwsl --unregister Ubuntu 会清空该 WSL 中的所有数据并移除该 WSL,而 若在 wsl --uninstall Ubuntu 执行后重新执行 wsl --install Ubuntu,会发现之前的数据还在。
注销 WSL

2. 部署 Python

目前(2024 年 12 月 5 日)Ubuntu 上的情况是:

  1. 依照官方 repo 中的一个 Issue(https://github.com/JHUISI/charm/issues/307),charm 的部署需要 Python 3.10 或以下;
  2. 使用 apt-get 直接安装 Python 默认的版本是 Python 3.12,无法使用 apt-get 直接安装 Python 3.10;
  3. 使用 apt-get 直接安装 Python-dev 的默认版本是 3.12,无法使用 apt-get 直接安装 Python3.10-dev;
  4. 可以使用 wgetunziptarmake 等命令手动安装 Python 3.10,但搜索了一段时间未找到对应的 Python3.10-dev 安装方式;
  5. 无 Python-dev 部署 charm 时,提示需要 Python-dev;
  6. 有大佬适配了 Python 3.12 的 charm,位于 https://github.com/EliusSolis/charm,以后估计会被 merge 进官方的 charm。

综合以上情况,我们决定用 Python 3.12 和 https://github.com/EliusSolis/charm 中的 charm 进行部署。
直接执行 apt-get install python3 python3-dev python-is-python3,回车确认,完成安装。
安装 Python
运行 python 进行检查,发现正常。
python
输入 quit() 退出 Python,返回到 WSL 的终端。

3. GMP

翻阅 charm 官方安装说明 https://github.com/JHUISI/charm/blob/dev/README.md 可知 charm 的部署依赖于 GMP 5.x。不过,GMP 官网(https://gmplib.org/)目前最新版已经是 6.3.0 了。经测试,GMP 6.3.0 也可以,所以,此处使用 GMP 6.3.0。如果有更新版本,请相应替换本节剩余内容中的版本号。
右键单击以下网页截图中箭头指向的位置,复制链接,得到如 https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz 的链接。在 Ubuntu 中执行 wget https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz 下载,使用 tar -xf gmp-6.3.0.tar.xztar -xvf gmp-6.3.0.tar.xz(显示详细信息)进行解压。也可以下载其它格式,参考 https://rpubs.com/xliusufe/gmp 进行解压。
在这里插入图片描述
GMP
解压后,使用 cd gmp-6.3.0 进入 gmp-6.3.0 目录。由于需要编译 C/C++ 程序以及 m4,故:

  1. 执行 apt-get install gcc g++ 安装 gcc 和 g++;
  2. 执行 apt-get install m4 安装 m4;
  3. 执行 apt-get install make 安装 make。

执行 ./configure --prefix=/usr --enable-cxx,其中,第一个参数为更改默认搜索目录为 /usr,第二个参数为启用 C++ 支持。如果提示权限不足(Permisson denied),请先尝试先执行 chmod +x ./configure;如果出现 configure: error: could not find a working compiler, see config.log for detailsconfigure: error: No usable m4 in $PATH or /usr/5bin (see config.log for reasons).Command 'make' not found 之类的错误提示,那一般就是上面的包没安装好,可以尝试重新执行上面的安装命令,或者卸载重装。
gcc 和 g++
m4
make
在命令 ./configure --enable-cxx 执行完成并成功后,依次运行 makemake checkmake install,其中,可以在 make check 时检查下是否存在错误或者警告。以下截取了 make check 过程中的一些绿色的 PASS,看着很开心。这三个命令的执行耗时累计五分钟左右。
PASS
PASS
make install
附:如果在 make install 之前想修改 ./configure 的参数,可使用 make clean 进行清理。

4. PBC

PBC 库的部署参考于 https://crypto.stanford.edu/pbc/manual.html 和 https://blog.csdn.net/Frinklin_wang/article/details/123866728。
首先,咱们打开 PBC 库的官网 https://crypto.stanford.edu/pbc/download.html,找到 Download 下面的表格中的第一个链接,右键复制。
PBC 官网
使用 cd ~ 返回 root 用户目录,执行 wget https://crypto.stanford.edu/pbc/files/pbc-0.5.14.tar.gz 下载包。执行 tar -zxf pbc-0.5.14.tar.gztar -zxvf pbc-0.5.14.tar.gz(显示详细信息)进行解压。
PBC
执行 apt-get install flex bison 并回车确认以安装依赖的包。
flex 和 bison
使用 cd pbc-0.5.14 进入 pbc-0.5.14 目录,执行 ./configure。如果提示权限不足(Permission denied),请执行 chmod +x ./configure。在 ./configure 执行成功后,执行 make && make install
./configure
make && make install
PBC 安装结束
为测试 pbc 的正确性,使用 cd pbc 进入 pbc 目录,此时应当位于 ~/pbc-0.5.14/pbc。为方便起见,运行 vim test.txt,按下 i 键进入编辑模式,将以下内容复制粘贴进去(注意符号都是英文),随后按下键盘左上角的 ESC 键退出编辑模式,输入 :x 回车退出 vim。顺带声明一下,以下例子来自于本节开头参考的两个链接。

g:=rnd(G1);
g;h:=rnd(G2);
h;a:=rnd(Zr);
b:=rnd(Zr);
pairing(g^a,g^b);a:=rnd(Zr);
b:=rnd(Zr);
pairing(g,h)^(a*b);

cd pbc
vim
退出 vim 后,可以用 cat test.txt 查看一下 test.txt 的内容,随后,执行 ./pbc test.txt,观察结果。如无意外,一次可能的结果如下:

[3329247549575083693704544702300111878032757859527738620078340162954994153076106270578798542088759817755260473344467142914450640537953655213941777251150507, 2915725110970502014368664778822139336115812849055983709686958575727617915386111790813698074081175900851401370141481357430955279929040287141435866041352465]
[3242974909124154401306977997240035331670277658104974758958060345931843939238480034054970695129337969056110321396968088221841267448950244490146519453034952, 4102645750044991539186357580272542381470433262964030405150098834238307121213420471646007670322526602097806928211429728285753402549456577684823579495975023]
[4204905719718175991825854736739721947952505513162738068839979360094249342284680566494097041790152055409462955994730015080480413075607530213740171415894742, 446574590468230745320006695766115100785771408743827211116005662318542764154352629872772863803833470234707075454507234814615174213789732490852008370212665]
[1292042521100579230125067081486676117138594032521849019268142455404207899451482841067146153826541421710150688896771252517403929838056204610903731400443238, 6384245293263856412404284561094069320155145616120241897229969538798442361256734337315733254634859801365184035421441627651994380108240891046561604126951898]

正确性验证
可以多次执行 ./pbc test.txt,但每次结果都是随机的。
多次执行
为便于库路径管理,可依次执行以下命令。

cd /etc/ld.so.conf.d
echo '/usr/local/lib' > libpbc.conf
cat libpbc.conf
ldconfig

ldconfig

5. OpenSSL

使用 cd ~ 返回 root 用户目录。很天真地以为直接 apt-get install openssl 就可以了。
然而,但是编译错误,说找不到头文件。
参考了下 https://stackoverflow.com/questions/3016956/how-do-i-install-the-openssl-libraries-on-ubuntu,需要执行 apt-get install libssl-dev,因为要安装的是 lib。还好,也是一个命令的事情。
OpenSSL
在 https://github.com/EliusSolis/charm 中找到了链接 https://github.com/EliusSolis/charm.git,发现 Ubuntu 自带了 git。于是,直接使用 git clone https://github.com/EliusSolis/charm.git
git clone
依次执行以下命令完成部署。

# chmod +x ./configure
./configure
make install
make test

make install
执行到 make test 时出现了以下意外。

/usr/bin/python: No module named pip
error: Command '['/usr/bin/python', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmp_srxsing', '--quiet', 'pytest']' returned non-zero exit status 1.
make: *** [Makefile:51: test] Error 1

原来是,Python 3.12 的 pip 不会随着 Python 的安装而安装了。事实上,大概从这时候开始,在 Linux 操作系统上,Python 的包逐渐被 Linux 的包管理器接管,例如,安装 pandas 可能需要 apt-get install python3-pandas 而非 python -m pip install pandas 或者 pip install pandas(感觉还是以前比较方便且层次分明随后开始喜欢继续在 Windows 上运行 Python)。于是,执行 apt-get install python3-pip 并回车确认安装 pip。
继续 make test,通过。
make test
进入 Python,执行语句 from charm.toolbox.pairinggroup import PairingGroup, ZR, G1,G2, GT, pair,没有报错或警告,即,导入成功。
import
至此,charm 环境部署成功。

附录

上述实验在以下两台设备中检验通过:

  1. All the experiments conducted in this article are accomplished on 11th Gen Intel® Core™ i7-11800H CPU 2.30 GHz 8 cores, NVIDIA GeForce RTX 3060 Laptop GPU, 24 GB RAM, 512 GB SSD, and 1024 GB SSD under Windows 11 Pro 24H2 x64. The operating system is on the 512 GB SSD while the codes and the datasets are on the 1024 GB SSD.
  2. All the experiments conducted in this article are accomplished on the AMD Ryzen 7 7735H with Radeon Graphics (8 cores), 16 GB RAM, and 512 GB SSD under Windows 11 Pro 24H2 x64.

准确一点,可能是:

  1. All the experiments conducted in this article are accomplished on the Ubuntu 24.04.1 LTS platform via the Windows subsystem for Linux (WSL) under the 11th Gen Intel® Core™ i7-11800H CPU 2.30 GHz 8 cores, NVIDIA GeForce RTX 3060 Laptop GPU, 24 GB RAM, 512 GB SSD, and 1024 GB SSD under Windows 11 Pro 24H2 x64. The operating system is on the 512 GB SSD while the codes and the datasets are on the 1024 GB SSD.
  2. All the experiments conducted in this article are accomplished on the Ubuntu 24.04.1 LTS platform via the Windows subsystem for Linux (WSL) under the AMD Ryzen 7 7735H with Radeon Graphics (8 cores), 16 GB RAM, and 512 GB SSD under Windows 11 Pro 24H2 x64.

相关文章:

在 Windows 11 WSL (Ubuntu 24.04.1 LTS) | Python 3.12.x 下部署密码学库 charm

1. 在 Windows 11 上部署 Ubuntu (WSL) 由于作者没有高性能的 Ubuntu 服务器或个人电脑,且公司或学校提供的 Ubuntu 服务器虽然提供高性能 GPU 等硬件配置但通常不会提供 root 权限,因而作者通过在搭载了 Windows 11 的个人电脑上启动 Ubuntu (WSL) 来进…...

【六足机器人】01功能开发

包含:WIFI模块、GPS模块、语言模块、调试信息接口。 一、硬件连接 huart4( PA0、 PA1 )与GPS模块连接。 huart3(PB10、PB11)与ESP8266模块连接。 huart2( PA2、 PA3 )与语音模块连接。 hu…...

notepad++安装教程(超详细)

1.下载地址(可以私信博主) https://notepad-plus.en.softonic.com/download 2.解压安装...

创建简单的 PL/pgSQL 存储过程

文章目录 创建简单的 PL/pgSQL 存储过程CREATE OR REPLACE FUNCTIONadd_two_numbers(a integer, b integer)RETURNS integerAS$$ ... $$函数体LANGUAGE plpgsql 创建带有 IN 和 OUT 参数的存储过程创建修改数据的存储过程创建带有异常处理的复杂存储过程 在 PostgreSQL 中&…...

Java项目实战II基于微信小程序的无中介租房系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着城市化进程的加速,租房市场日益繁荣&a…...

Node.js实现WebSocket教程

Node.js实现WebSocket教程 1. WebSocket简介 WebSocket是一种在单个TCP连接上提供全双工通信的协议,允许服务器和客户端之间进行实时、双向通信。本教程将详细讲解如何在Node.js中实现WebSocket。 2. 技术选型 我们将使用ws库来实现WebSocket服务器,…...

Docker Compose实战一( 轻松部署 Nginx)

通过过前面的文章(Docker Compose基础语法)你已经掌握基本语法和常用指令认识到Docker Compose作为一款强大工具的重要性,它极大地简化了多容器Docker应用程序的部署与管理流程。本文将详细介绍如何使用 Docker Compose 部署 Nginx&#xff0…...

hive分区分桶、数据倾斜总结

一、hive的基本概念 hive是一个构建在hadoop上的数据仓库工具,可以将结构化的数据文件映射为一张数据库表并提供数据查询功能 二、hive的特点 (1)数据是存储在hdfs上 (2)底层是将sql转换为MapReduce任务进行计算 …...

unity打包到安卓帧率降低

这个问题遇到过很多次了我的做法就是直接设置Application.targetFrameRate60 参考...

【Python3】装饰器 自动更新缓存

自动更新缓存的需求场景 在某些应用中,我们可能需要定期从外部数据源(如 Redis 或者远程接口)拉取数据,并将其缓存在内存中。当有其他代码需要访问这些数据时,可以立刻从内存获取最新数据,而无需每次都进行…...

通过EPEL 仓库,在 CentOS 7 上安装 OpenResty

通过EPEL 仓库,在 CentOS 7 上安装 OpenResty 通过EPEL 仓库,在 CentOS 7 上安装 OpenResty步骤 1: 安装 EPEL 仓库步骤 2: 安装 OpenResty步骤 3: 启动 OpenResty步骤 4: 设置开机自启步骤 5: 验证安装说明 通过EPEL 仓库,在 CentOS 7 上安装…...

[RabbitMQ] RabbitMQ常见应用问题

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…...

每日速记10道java面试题13-MySQL篇

其他资料 每日速记10道java面试题01-CSDN博客 每日速记10道java面试题02-CSDN博客 每日速记10道java面试题03-CSDN博客 每日速记10道java面试题04-CSDN博客 每日速记10道java面试题05-CSDN博客 每日速记10道java面试题06-CSDN博客 每日速记10道java面试题07-CSDN博客 每…...

乐鑫科技嵌入式面试题及参考答案(3万字长文)

嵌入式开发为什么用 C 语言,而不用 C++ 语言? 在嵌入式开发中,C 语言被广泛使用而 C++ 相对少用有以下一些原因。 首先,C 语言具有更高的效率。嵌入式系统通常资源受限,包括处理器速度、内存容量等。C 语言的代码生成效率高,能够生成紧凑的机器码,占用较少的内存空间和处…...

Leetcode 每日一题 56.合并区间

目录 问题描述 示例 示例 1 示例 2 问题分析 算法设计 步骤 1:排序 步骤 2:合并区间 步骤 3:返回结果 过题图片 代码实现 复杂度分析 题目链接 结语 问题描述 给定一个区间数组 intervals,其中每个区间由两个整数 s…...

【Vue】v-model、ref获取DOM

目录 v-moel v-model的原理 v-model用在组件标签上 方式 defineModel()简写 ref属性 获取原生DOM 获取组件实例 nextTick() v-moel v-model:双向数据绑定指令 数据变了,视图跟着变(数据驱动视图)视图变了,数…...

Python 类的设计(以植物大战僵尸为例)

关于类的设计——以植物大战僵尸为例 一、设计类需满足的三要素1. 类名2. 属性和方法 二、以植物大战僵尸的为例的类的设计1. 尝试分类2. 创建对象调用类的属性和方法*【代码二】*3. 僵尸的继承 三、代码实现 一、设计类需满足的三要素 1. 类名 类名:某类事物的名…...

python中权重剪枝,低秩分解,量化技术 代码

目录 python中权重剪枝,低秩分解,量化技术 代码 权重剪枝 低秩分解 scipy 量化技术 python中权重剪枝,低秩分解,量化技术 代码 权重剪枝 权重剪枝可以通过PyTorch的torch.nn.utils.prune模块实现。以下是一个简单的例子: import torch import torch.nn as nn impor…...

调用matlab用户自定义的function函数时,有多个输出变量只输出第一个变量

很多朋友在使用matlab时,会使用或自己编辑多个function函数,来满足自己对任务处理的要求,但是在调用function函数时,会出现这个问题:调用matlab用户自定义的function函数时,有多个输出变量只输出第一个变量…...

RabbitMQ七种工作模式之简单模式, 工作队列模式, 发布订阅模式, 路由模式, 通配符模式

文章目录 一. Simple(简单模式)公共代码:生产者:消费者: 二. Work Queue(工作队列模式)公共代码:生产者:消费者1, 消费者2(代码相同): 三. Publish/Subscribe(发布/订阅模式)公共代码:生产者:消费者: 四. Routing(路由模式)公共代码:消费者: 五. Topics(通配符模式)公共代码:生…...

Win10安装kafka并用C#调用

kafka安装 jdk、kafka版本如下,zookeeper使用kafka自带版本 安装包下载位置:https://download.csdn.net/download/henreash/90087368 (赚点csdn下载资源分) 安装jdk后,解压kafka压缩包,修改配置文件: kafka_2.13-3.9.0\config\…...

高级架构二 Git基础到高级

一 Git仓库的基本概念和流程 什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何…...

深入解析二叉树算法

引言 二叉树(Binary Tree)作为数据结构中的一种重要形式,在计算机科学的诸多领域中得到了广泛应用。从文件系统到表达式解析,再到搜索和排序,二叉树都扮演着关键角色。本文将从二叉树的基础概念出发,详细探讨其各种算法及其应用,并提供相关代码示例,旨在为读者建立扎实…...

如何解决maven项目使用Ctrl + /添加注释时的顶格问题

一、问题描述 相信后端开发的程序员一定很熟悉IDEA编译器和Maven脚手架,使用IDEA新建一个Maven工程,通过SpringBoot快速构建Spring项目。在Spring项目pom.xml文件中想添加注释,快捷键Ctrl /,但是总是顶格书写。 想保证缩进统一…...

总结的一些MySql面试题

目录 一:基础篇 二:索引原理和SQL优化 三:事务原理 四:缓存策略 一:基础篇 1:定义:按照数据结构来组织、存储和管理数据的仓库;是一个长期存储在计算机内的、有组织的、可共享 的…...

渤海证券基于互联网环境的漏洞主动防护方案探索与实践

来源:中国金融电脑 作者:渤海证券股份有限公司信息技术总部 刘洋 伴随互联网业务的蓬勃发展,证券行业成为黑客进行网络攻击的重要目标之一,网络攻击的形式也变得愈发多样且复杂。网络攻击如同悬于行业之上的达摩克利斯之剑&…...

用Go语言重写Linux系统命令 -- nc简化版

用Go语言重写Linux系统命令 – nc简化版 1. 引言 netcat,简称 nc,被誉为网络工具中的“瑞士军刀”,是网络调试与分析的利器。它的功能十分强大,然而平时我们经常使用的就是他的连通性测试功能,但是nc是被设计用来测试…...

面试复盘 part 02·1202-1207 日

作品集讲述部分 分析反思 作品集讲述部分,视觉讲述部分需要更换,需要换成其他视觉相关的修改 具体话术 这是一个信息展示优化方案,用户为财务,信息区分度不足,理解成本较高,因此选择需要降低理解成本。…...

Linux评估网络性能

网络性能直接影响应用程序对外提供服务的稳定性和可靠性 ping命令检测网络的连通性 如果网络反应缓慢,或连接中断,可以用ping来测试网络的连通情况 time值(单位为毫秒)显示了两台主机之间的网络延时情况。如果此值很大,则表示网络的延时很大…...

实战ansible-playbook(四) -文件操作重定向/追加

原始命令: ----------阶段1--------------- apt-get update -y apt install nano vim iputils-ping net-tools dialog gcc apt-utils make -y systemctl stop unattended-upgradessystemctl disable unattended-upgradesecho APT::Periodic::Update-Package-Lists "1&qu…...