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

【ProtoBuf 安装】ProtoBuf在window/Linux下的安装 创建/删除swap分区

文章目录

  • 1.ProtoBuf在window下的安装
  • 2.ProtoBuf在Linux下的安装
    • 创建swap分区
    • 命令解析
    • 关闭swap分区
    • 删除swap分区的影响

1.ProtoBuf在window下的安装

1、下载ProtoBuf编译器
下载地址:https://github.com/protocolbuffers/protobuf/releases

如果要在 C++ 下使用 ProtoBuf,可以选择cpp.zip;
如果要在 JAVA 下使用 ProtoBuf,可以选择java.zip;
其他语言选择对应的链接即可。
希望支持全部语言,选择 all.zip。
在这里插入图片描述
下载之后将压缩包解压到本地⽬录下。解压后的⽂件内包含bin、include⽂件,以及⼀个readme.txt。

2、配置环境变量
把解压后⽂件中的bin⽬录配置到系统环境变量的Path中去

3、检查是否配置成功
打开cmd,输⼊:

protoc --version

查看版本,有显⽰说明成功

2.ProtoBuf在Linux下的安装

1、下载ProtoBuf
下载ProtoBuf前⼀定要安装依赖库:autoconfautomakelibtoolcurlmakeg++unzip
安装命令如下:

Ubuntu⽤⼾选择:

 sudo apt-get install autoconf automake libtool curl make g++ unzip -y

CentOS⽤⼾选择:

sudo yum install autoconf automake libtool curl make gcc-c++ unzip

下载命令

wget https://github.com/protocolbuffers/protobuf/releases/download/v21.11/protobuf-all-
21.11.zip

2、安装ProtoBuf
进⼊解压好的⽂件,执⾏以下命令:

# 第⼀步执⾏: 但如果下载的是具体的某⼀⻔语⾔,不需要执⾏这⼀步。
./autogen.sh

# 第⼆步执⾏, 有两种执⾏⽅式,任选其⼀即可,如下:

# 1. protobuf默认安装在 /usr/local ⽬录,lib、bin都是分散的
./configure
# 2. 修改安装⽬录,统⼀安装在/usr/local/protobuf下
./configure --prefix=/usr/local/protobuf

# 3.第三步执行
make            
make check      
sudo make install

make check报错

test的模块⾥⾯有⾮常多的测试⽤例,这些⽤例对服务器环境要求特别严格,需要增⼤下swap分区,具体操作可参考:https://blog.csdn.net/AlexWang30/article/details/90341172
(建议可以先扩⼤3G,再执⾏make check 如果还是报错,再扩⼤到5G重新执⾏)

创建swap分区

  1. 使用命令检查 Ubuntu 系统的SWAP 分区
sudo swapon --show
  1. 创建 swap 的文件(分配 1G 的swap分区大小)
sudo fallocate -l 1G /swapfile

此时可能会显示

fallocate: fallocate failed: Text file busy

此时执行

swapoff -a

再执行

sudo fallocate -l 1G /swapfile
  1. 执行以下命令为 swapfile 文件设置正确的权限:
sudo chmod 600 /swapfile
  1. 使用 mkswap 实用程序在文件上设置 Linux SWAP 区域:
sudo mkswap /swapfile
  1. 使用以下命令激活 swap 文件:
sudo swapon /swapfile
  1. 要让创建好的 swap 分区永久生效,可以将 swapfile 路径内容写入到 /etc/fstab 文件当中 :
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

命令总结

sudo swapon --show
sudo fallocate -l 1G /swapfile
fallocate: fallocate failed: Text file busy
swapoff -a
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

命令解析

这些命令是用来创建一个新的swap文件,并配置系统使用它的过程。每个命令的功能如下:

  1. sudo swapon --show
    • 功能: 显示当前系统已启用的swap设备(包括swap分区和swap文件)。这可以用来确认当前的swap状态,检查是否已启用swap。
  2. sudo fallocate -l 1G /swapfile
    • 功能: 使用fallocate命令创建一个大小为1GB的swap文件。fallocate是一个高效的创建文件的工具,它直接分配文件空间而不进行数据填充。不过你遇到的错误:“fallocate failed: Text file busy”通常表示当前某些文件正在被使用,导致无法操作。
    • 解决方案:你可以先关闭任何正在使用swap的服务(例如swapoff),然后再尝试执行这个命令。
  3. swapoff -a
    • 功能: 禁用所有的swap设备或swap文件。这个命令确保在创建或修改swap文件时不会有活动的swap设备在运行,这对于创建或修改swap文件是必须的。
  4. sudo fallocate -l 1G /swapfile
    • 功能: 重新尝试创建1GB大小的swap文件。这个命令会创建一个名为/swapfile的文件,文件大小为1GB。
  5. sudo chmod 600 /swapfile
    • 功能: 设置/swapfile文件的权限为600(仅所有者有读写权限),确保该文件的安全性。只有root用户才能访问这个swap文件,以防止普通用户对它进行修改或读取。
  6. sudo mkswap /swapfile
    • 功能:/swapfile文件格式化为swap格式。这一步将会为文件配置swap标记,使其可以作为交换空间使用。
  7. sudo swapon /swapfile
    • 功能: 启用/swapfile作为交换空间(swap)。通过这条命令,系统将开始使用/swapfile文件来扩展虚拟内存。
  8. sudo cp /etc/fstab /etc/fstab.bak
    • 功能: 备份/etc/fstab文件。/etc/fstab是一个配置文件,记录了系统如何挂载硬盘分区、swap文件等。备份这个文件是为了防止在后续修改时发生错误,可以随时恢复。
  9. echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
    • 功能: 将一行新的配置添加到/etc/fstab文件中。该配置表示在启动时,系统会自动挂载/swapfile作为swap分区。tee命令将内容追加到文件并同时输出,确保该配置在系统启动时自动加载。

总结

这些命令的目的是创建一个新的swap文件并配置系统以便在启动时自动挂载它。流程大致如下:

  1. 禁用当前的swap设备(swapoff -a)。
  2. 创建一个新的swap文件(/swapfile)。
  3. 格式化该文件为swap格式(mkswap)。
  4. 启用这个swap文件(swapon)。
  5. 配置系统在启动时自动启用该swap文件(编辑/etc/fstab)。

这样,在系统每次启动时,/swapfile就会自动作为swap使用,帮助扩展系统的虚拟内存。

关闭swap分区

要删除在 Ubuntu 上创建的 swap 文件,你可以按照以下步骤操作:

  1. 关闭 swap 文件: 先关闭 swap 文件,确保它不再被使用:

    sudo swapoff /swapfile
    
  2. 删除 swap 文件: 删除 swap 文件:

    sudo rm /swapfile
    
  3. 更新 /etc/fstab 文件: 打开 /etc/fstab 文件,删除你之前添加的那一行关于 /swapfile 的配置:

    sudo nano /etc/fstab
    

    删除类似以下的行:

    /swapfile none swap sw 0 0
    

    保存并退出编辑器。

  4. 检查是否生效: 你可以使用 swapon --show 检查是否已经没有 swap 文件了。

删除swap分区的影响

删除 swap 文件不会导致数据丢失。swap 只是用来扩展系统内存的,如果你删除 swap 文件,系统将无法再使用硬盘空间来模拟内存。如果你的系统在没有足够物理内存的情况下运行某些内存密集型程序,可能会遇到性能下降,或者在内存不足时发生程序崩溃,但不会直接导致数据丢失。

如果你计划长期不使用 swap,可以考虑重新评估系统的内存配置,或者增加物理内存来减少对 swap 的依赖。如果是临时解决方案,删除 swap 后最好保持系统监控,避免因内存不足导致其他问题。

如果修改了安装⽬录即执行了./configure --prefix=/usr/local/protobuf,那么还需要在/etc/profile中添加⼀些内容:

#(动态库搜索路径) 程序加载运⾏期间查找动态链接库时指定除了系统默认路径之外的其他路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/
#(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径 
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/
#执⾏程序搜索路径
export PATH=$PATH:/usr/local/protobuf/bin/
#c程序头⽂件搜索路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
#c++程序头⽂件搜索路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/
#pkg-config 路径
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/

重新执⾏/etc/profile⽂件

source /etc/profile

3、检查是否安装成功

protoc --version 
libprotoc 3.21.11

http://www.kler.cn/a/521009.html

相关文章:

  • 项目集成Nacos
  • PyCharm介绍
  • 【cran Archive R包的安装方式】
  • SFTP 使用方法
  • golang命令大全5--依赖管理
  • 动手学深度学习-卷积神经网络-3填充和步幅
  • HarmonyOS简介:应用开发的机遇、挑战和趋势
  • DDD实战课 笔记
  • sendto丢包
  • 基于C++的DPU医疗领域编程初探
  • 二级C语言题解:统计奇偶个数以及和与差、拼接字符串中数字并计算差值、提取字符串数组中单词尾部字母
  • Flutter TextPainter 计算文本高度和行数
  • 01-02 三元组与七元组
  • K8S极简教程(4小时快速学会)
  • OAuth1和OAuth2授权协议
  • Kotlin开发(六):Kotlin 数据类,密封类与枚举类
  • Linux-day10
  • 代码随想录——二叉树(二)
  • location的使用规则
  • C语言学习强化
  • 一文讲解Java中的接口和抽象类
  • 保定学院寒假第一次训练赛题解
  • C语言初阶牛客网刷题—— HJ34 图片整理【难度:中等】
  • 01机器学习入门
  • jQuery阶段总结
  • 数据结构:二叉树—面试题(二)