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

centos7更新podman

实验环境:centos7.7.1908

1.安装podman并查看版本

yum install podman

podman -v

 当前podman版本信息是1.6.4

2.更新podman版本

通过查看资料显示centos 7 支持最高版本为 3.4.4,更新podman大致有以下四步:

  1. golang 安装(本次使用版本: 1.18)
  2. conmon 安装(本次使用版本: 2.1.0)
  3. runc 安装(本次使用版本: 1.1.1)
  4. podman安装(centos 7支持最高版本: 3.4.4)

下面先实验安装podman3.4.4,之后会实验安装当前最新版podman4.6.1

 2.1安装go

# 临时关闭selinux
setenforce 0
# 安装golang,版本需要在 v1.6 以上
wget https://golang.google.cn/dl/go1.18.linux-amd64.tar.gz
tar xf go1.18.linux-amd64.tar.gz
mv go /usr/local/
ln -s /usr/local/go/bin/go /usr/local/bin/go
go version
# go version go1.18 linux/amd64

 

安装依赖

yum install -y \btrfs-progs-devel \containernetworking-plugins \containers-common \crun \device-mapper-devel \glib2-devel \glibc-devel \glibc-static \golang-github-cpuguy83-md2man \gpgme-devel \iptables \libassuan-devel \libgpg-error-devel \libseccomp-devel \libselinux-devel \make \pkgconfig

2.2安装conmon 和 runc

# conmon是用C语言编写的工具,用于单个容器的管理器
wget https://github.com/containers/conmon/archive/refs/tags/v2.1.0.tar.gz
tar xf v2.1.0.tar.gz
cd conmon-2.1.0/
export GOCACHE="$(mktemp -d)"
make
make podman
#install  -D -m 755 bin/conmon /usr/local/libexec/podman/conmon
conmon --version
#conmon version 2.0.8
#commit: f85c8b1ce77b73bcd48b2d802396321217008762# runc是golang写的关于CLI工具,用于根据OCI规范在 Linux上生成和运行容器
wget https://github.com/opencontainers/runc/releases/download/v1.1.1/runc.amd64
chmod +x runc.amd64
mv runc.amd64 /usr/local/bin/runc
/usr/local/bin/runc -version
#runc version 1.1.1
#commit: v1.1.0-20-g52de29d7
#spec: 1.0.2-dev
#go: go1.17.6
#libseccomp: 2.5.3

上面是由于当前环境下没有gcc编译器造成的,要通过yum install gcc安装gcc

之后重新执行 make 和 make podman 命令重新编译即可

2.3设置CNI网络

mkdir /etc/containers
wget https://src.fedoraproject.org/rpms/containers-common/raw/main/f/registries.conf
wget https://src.fedoraproject.org/rpms/containers-common/raw/main/f/default-policy.json
cp default-policy.json /etc/containers/default-policy.json
cp registries.conf /etc/containers/registries.conf
# 默认情况下,CNI网络配置文件下载好后,无需配置,即可使用 podman
# registries.conf: 容器镜像注册配置文件,文件格式为 TOML
# policy.json:证书安全策略文件,文件格式为 JSON

/etc/containers如果存在就不用创建了,不存在需要创建

cp registries.conf /etc/containers/registries.conf命令如果containers文件夹存在的话registries.conf文件也会存在,直接替换即可

2.4安装podman

wget https://github.com/containers/podman/archive/refs/tags/v3.4.4.tar.gz
tar xf v3.4.4.tar.gz
cd podman-3.4.4/
make BUILDTAGS="selinux seccomp"
# 存在问题
yum install git -y
vim Makefile
####
# 800行 github.com/cpuguy83/go-md2man 改为
gitee.com/mirrors/go-md2man
####
# 再次make
make BUILDTAGS="selinux seccomp"
make install PREFIX=/usr
# 会自动在usr的bin、lib、share 中 创建相关内容
podman --version
# podman version 3.4.4
podman version
#Version:      3.4.4
#API Version:  3.4.4
#Go Version:   go1.18
#Built:        Thu Sep  7 07:07:51 2023
#OS/Arch:      linux/amd64

 首次执行make BUILDTAGS="selinux seccomp"需要安装git以及在Makefile文件需要在800行进行修改,然后再次make

 

然后我尝试了安装最新版podman4.6.1,操作基本与上面一致 

wget https://golang.google.cn/dl/go1.21.1.linux-amd64.tar.gz

 wget https://github.com/containers/podman/archive/refs/tags/v4.6.1.tar.gz

首次 make BUILDTAGS="selinux seccomp"编译

安装git以后,再次make 

 [root@ee283976513d podman-4.6.1]# make BUILDTAGS="selinux seccomp"
fatal: Not a git repository (or any of the parent directories): .git
Podman is being compiled without the systemd build tag.         Install libsystemd on Ubuntu or systemd-devel on rpm based      distro for journald support.
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build \
         \
        -ldflags ' -X github.com/containers/podman/v4/libpod/define.buildInfo=1694077099 -X github.com/containers/podman/v4/libpod/config._installPrefix=/usr/local -X github.com/containers/podman/v4/libpod/config._etcDir=/etc -X github.com/containers/podman/v4/pkg/systemd/quadlet._binDir=/usr/local/bin -X github.com/containers/common/pkg/config.additionalHelperBinariesDir= ' \
        -tags "selinux seccomp" \
        -o bin/podman ./cmd/podman
go build github.com/proglottis/gpgme:
# pkg-config --cflags  -- gpgme
Package gpgme was not found in the pkg-config search path.
Perhaps you should add the directory containing `gpgme.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gpgme' found
pkg-config: exit status 1
make: *** [bin/podman] Error 1

之后通过wget https://www.gnupg.org/ftp/gcrypt/gpgme/gpgme-1.22.0.tar.bz2 

 tar -xvjf gpgme-1.22.0.tar.bz2

相关文章:

centos7更新podman

实验环境:centos7.7.1908 1.安装podman并查看版本 yum install podman podman -v 当前podman版本信息是1.6.4 2.更新podman版本 通过查看资料显示centos 7 支持最高版本为 3.4.4,更新podman大致有以下四步: golang 安装(本次使用版本: 1.…...

Java特性之设计模式【抽象工厂模式】

一、抽象工厂模式 概述 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式 在抽象工厂模式中,接口是…...

机器学习简介

引言 为何现在机器学习如此热门? 主要原因是由于“人类无论如何也做不到在短时间内实现从大量的数据中自动的计算出正确的结果操作”。 什么是机器学习? 所谓的机器学习,就是通过对数据进行反复的学习,来找出其中潜藏的规律和模式…...

linux之perf(2)list事件

Linux之perf(2)list事件 Author:Onceday Date:2023年9月3日 漫漫长路,才刚刚开始… 参考文档: Tutorial - Perf Wiki (kernel.org)perf-list(1) - Linux manual page (man7.org) 1. 概述 perf list用于列出可用的性能事件,这…...

将多个EXCEL 合并一个EXCEL多个sheet

合并老版本xls using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using NPOI.HSSF.UserModel; …...

【送书活动】揭秘分布式文件系统大规模元数据管理机制——以Alluxio文件系统为例

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…...

微信小程序——数据绑定

在微信小程序中&#xff0c;可以通过以下代码实现数据绑定&#xff1a; 在WXML中&#xff0c;使用双大括号{{}}绑定数据&#xff0c;将数据渲染到对应的视图中。 <view>{{message}}</view>在JS中&#xff0c;定义一个数据对象&#xff0c;并将其绑定到页面的data…...

libbpf-bootstrap安卓aarch64适配交叉编译

1.为什么移植 疑惑 起初我也认为&#xff0c;像libbpf-bootstrap这样在ebpf程序开发中很常用的框架&#xff0c;理应支持不同架构的交叉编译。尤其是向内核态的ebpf程序本身就是直接通过clang的-target btf直接生成字节码&#xff0c;各个内核上的ebpf虚拟机大同小异&#xf…...

【剑指Offer】24.反转链表

题目 定义一个函数&#xff0c;输入一个链表的头节点&#xff0c;反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL限制&#xff1a; 0 < 节点个数 < 5000 解答 源代码 /*** Defin…...

04-docker compose容器编排

Docker Compose简介 Docker Compose是什么 ​ Compose 是Docker公司推出的一个工具软件&#xff0c;可以管理多个Dokcer容器组成一个应用。你需要定义一个YAML格式的配置文件 docker-compose.yml&#xff0c;写好多个容器之间的调用关系。然后&#xff0c;只要一个命令&#…...

通过位运算打多个标记

通过位运算打多个标记 如何在一个字段上&#xff0c;记录多个标记&#xff1f; 如何在一个字段上&#xff0c;记录不同类型的多个标记&#xff1f; 如何用较少的字段&#xff0c;记录多个标记&#xff1f; 如何在不增加字段的要求下&#xff0c;记录新增的标记&#xff1f; 在实…...

[学习笔记]Node2Vec图神经网络论文精读

参考资料&#xff1a;https://www.bilibili.com/video/BV1BS4y1E7tf/?p12&spm_id_frompageDriver Node2vec简述 DeepWalk的缺点 用完全随机游走&#xff0c;训练节点嵌入向量&#xff0c;仅能反应相邻节点的社群相似信息&#xff0c;无法反映节点的功能角色相似信息。 …...

C# Linq源码分析之Take(五)

概要 本文在C# Linq源码分析之Take&#xff08;四&#xff09;的基础上继续从源码角度分析Take的优化方法&#xff0c;主要分析Where.Select.Take的使用案例。 Where.Select.Take的案例分析 该场景模拟我们显示中将EF中与数据库关联的对象进行过滤&#xff0c;然后转换成Web…...

性能监控-grafana+prometheus+node_exporter

Prometheus是一个开源的系统监控和报警工具。它由SoundCloud开发并于2012年发布&#xff0c;后来成为了一个独立的开源项目&#xff0c;并得到了广泛的应用和支持。 Prometheus的主要功能包括采集和存储各种系统和应用程序的监控数据&#xff0c;并提供强大的查询语言PromQL来…...

(STM32H5系列)STM32H573RIT6、STM32H573RIV6、STM32H573ZIT6嵌入式微控制器基于Cortex®-M33内核

一、应用 工业&#xff08;PLC、工业电机控制、泵和压缩机&#xff09; 智能家居&#xff08;空调、冰箱、冰柜、中央警报系统、洗衣机&#xff09; 个人电子产品&#xff08;键盘、智能手机、物联网标签、跟踪设备&#xff09; 智能城市&#xff08;工业通信、照明控制、数字…...

mysql配置bind-address不生效

1、前言 因为要ip直接访问mysql&#xff0c;故去修改bind-address参数&#xff0c;按照mysql配置文件查找顺序是&#xff1a;/etc/my.cnf、/etc/mysql/my.cnf、~/.my.cnf&#xff0c;服务器上没有 /etc/my.cnf文件&#xff0c;故去修改 /etc/mysql/my.cnf文件&#xff0c;但是一…...

Linux相关指令(下)

cat指令 查看目标文件的内容 常用选项&#xff1a; -b 对非空输出行编号 -n 对输出的所有行编号 -s 不输出多行空行 一个重要思想&#xff1a;linux下一切皆文件&#xff0c;如显示器文件&#xff0c;键盘文件 cat默认从键盘中读取数据再打印 退出可以ctrlc 输入重定向<…...

Codeforces Round 855 (Div 3)(A - F)

Codeforces Round 855 (Div. 3)&#xff08;A - F&#xff09; Codeforces Round 855 (Div. 3) A. Is It a Cat?(思维) 思路&#xff1a;先把所有字母变成小写方便判断 &#xff0c; 然后把每一部分取一个字母出来 &#xff0c; 判断和‘meow’是否相同即可。 复杂度 O ( n…...

Friend.tech(FT):社交媒体金融的未来,真的如此美好吗?

Friend.tech&#xff08;FT&#xff09;是一个在2023年8月10日正式推出的社交金融平台&#xff0c;它的特点在于允许用户购买和出售创作者的股票&#xff08;shares&#xff09;&#xff0c;这些股票赋予用户访问创作者内容的权利。FT的推出引发了广泛的关注&#xff0c;吸引了…...

yolov7中Concat之后加注意力模块(最复杂的情况)

1、common.py中找到Concat模块&#xff0c;复制一份 2、要传参进来&#xff0c;dim通道数 3、然后找yolo.py模块&#xff0c;添加 4、yaml里替换 5、和加的位置也有关系...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...