首页 > 其他分享 >pkgship 2.1.0 移植指南 (openEuler 20.03 LTS SP1)

pkgship 2.1.0 移植指南 (openEuler 20.03 LTS SP1)

时间:2022-12-12 21:02:35浏览次数:79  
标签:LTS package SP1 源码 packageship openEuler root 2.1 pkgship

简介

pkgship是一款管理OS软件包依赖关系,提供依赖和被依赖关系完整图谱的查询工具,pkgship提供软件包依赖查询、生命周期管理、补丁查询等功能。

选用版本

2.1.0

检查当前系统版本信息

cat /etc/os-release

兼容性检查

使用x2openEuler对工具目录中的pkgship-2.1.0 RPM包进行分析

x2openEuler scan pkgship-2.1.0-7.oe1.noarch.rpm

根据依赖报告可知,移植到openEuler 20.03-LTS-sp1需要解决不同python版本的依赖相关问题

源码包安装

安装流程

  • 安装依赖包
  • 配置yum源
  • 获取pkgship的源码包pkgship-2.1.0.tar.gz
  • 解压源码包
  • 修改部分源码内容以便和python3.7兼容
  • 使用安装脚本setup.py安装pkgship
  • 成功安装

安装pkgship

  • 安装依赖包
[root@master ~]# yum install -y libffi-devel


[root@master ~]# vim requirements.txt

prettytable==0.7.2
Flask_RESTful==0.3.8
Flask_Session==0.3.1
Flask_Script==2.0.6
Flask_Limiter==1.4
Flask==1.1.2
marshmallow==3.5.1
PyYAML==5.3.1
gevent==20.12.1
requests==2.21.0
uwsgi==2.0.18
elasticsearch==7.10.1
redis==3.5.3
retrying==1.3.3

[root@master ~]# pip3 install -r requirements.txt
  • 配置yum源
[root@master ~]# cd /etc/yum.repos.d/
[root@master yum.repos.d]# vim openEuler.repo
[openeuler]
name=openEuler-21.03
baseurl=http://119.3.219.20:82/openEuler:/21.03/standard_aarch64/
enabled=1
gpgcheck=0


[fedora]
name=fedora
baseurl=https://mirrors.huaweicloud.com/fedora/releases/30/Everything/aarch64/os/
enabled=0
gpgcheck=0

[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
  • 获取源码包

从 ​​https://gitee.com/src-openeuler/pkgship?_from=gitee_search​​ 获取pkgship-2.1.0.tar.gz源码包。

  • 解压源码包
tar -xzvf pkgship-2.1.0.tar.gz
  • 修改部分源码文件

进入解压后的源码目录,修改源码路径下

./packageship/application/query/pkg.py
./packageship/application/query/depend.py

这两个文件中第19行的monkey.patch_all()为monkey.patch_all(thread=False, ssl=False)

进入源码目录的packageship目录下创建一个version.yaml文件,文件内容为

Version: 2.1.0
Release: 7.oe1

避免安装时因为缺少文件报如下错误

installing package data to build/bdist.linux-x86_64/egg
running install_data
creating /etc/pkgship
copying packageship/package.ini -> /etc/pkgship/
copying conf.yaml -> /etc/pkgship/
copying packageship/auto_install_pkgship_requires.sh -> /etc/pkgship/
copying packageship/uwsgi_logrotate.sh -> /etc/pkgship/
copying packageship/pkgshipd -> /usr/bin
copying packageship/pkgship -> /usr/bin
copying packageship/pkgship.service -> /lib/systemd/system/
copying packageship/application/common/rsp/mapping.xml -> build/bdist.linux-x86_64/egg/packageship/application/common/rsp
error: can't copy 'packageship/version.yaml': doesn't exist or not a regular file
  • 安装pkgship

进入pkgship主目录,开始使用setup.py脚本安装pkgship

[root@localhost ~]# python3 --version
Python 3.7.9
[root@localhost ~]# python3 setup.py install
  • 成功安装
Processing packageship-2.1.0-py3.7.egg
creating /usr/local/lib/python3.7/site-packages/packageship-2.1.0-py3.7.egg
Extracting packageship-2.1.0-py3.7.egg to /usr/local/lib/python3.7/site-packages
Adding packageship 2.1.0 to easy-install.pth file

Installed /usr/local/lib/python3.7/site-packages/packageship-2.1.0-py3.7.egg
Processing dependencies for packageship==2.1.0
Finished processing dependencies for packageship==2.1.0

[root@localhost pkgship-2.1.0]# pip3 list | grep packageship
packageship 2.1.0
[root@localhost pkgship-2.1.0]# pkgship
usage: pkgship [-h] [-v] [-remote]
{init,list,builddep,installdep,selfdepend,bedepend,pkginfo,dbs}
...

package related dependency management

positional arguments:
{init,list,builddep,installdep,selfdepend,bedepend,pkginfo,dbs}
package related dependency management
init initialization of the database
list get all package data
builddep query the compilation dependencies of the specified
package
installdep query the installation dependencies of the specified
package
selfdepend query the self-compiled dependencies of the specified
package
bedepend dependency query for the specified package
pkginfo query the information of a single package
dbs Get all data bases

optional arguments:
-h, --help show this help message and exit
-v Get version information
-remote The address of the remote service

相关链接:

  1. openEuler官网:www.openeuler.org/
  2. OS迁移专区: ​​https://www.openeuler.org/zh/migration/download/​
  3. openEuler兼容性列表:​​https://www.openeuler.org/zh/compatibility/​
  4. openEuler迁移指南:​​https://www.openeuler.org/zh/blog/2022-08-29/migration.html​

标签:LTS,package,SP1,源码,packageship,openEuler,root,2.1,pkgship
From: https://blog.51cto.com/u_15127420/5931751

相关文章

  • Varnish 6.2.0 移植指南(openEuler 20.03 LTS SP1)
    介绍简要介绍Varnish是一款高性能且开源的反向代理服务器和HTTP加速器,与传统的缓存服务器相比,Varnish具有性能更高、速度更快、管理更加方便等诸多优点,很多大型的网站都开始......
  • Squid 4.8 移植指南(openEuler 20.03 LTS SP1)
    介绍简要介绍Squidcache(简称为Squid)是一个流行的代理服务器和Web缓存服务器,是一个开源软件(GNU通用公共许可证)。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相......
  • Nginx 1.14.2 移植指南(openEuler 20.03 LTS SP1)
    介绍简要介绍Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强,支持FastCGI、SSL、VirtualHost、URLRewrite、gzi......
  • Memcached 1.5.12 移植指南(openEuler 20.03 LTS SP1)
    Memcached1.5.12移植指南介绍简要介绍Memcached是LiveJournal旗下DangaInteractive公司以BradFitzpatric为首开发的一款高性能分布式内存对象缓存系统,通过缓存数据库查......
  • Lighttpd 1.4.53 移植指南(openEuler 20.03 LTS SP1)
    介绍简要介绍Lighttpd是开源Web服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的WebServer环境。具有非常低的内存开销、CPU占用率低......
  • HAProxy 1.9.0 移植指南(openEuler 20.03 LTS SP1)
    介绍简要介绍HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理,支持虚拟主机,它是免费、快速并且可靠的一种解决......
  • 一文了解openEuler SIG组角色划分与管理运作
    SIG,即SpecialInterestGroup(特别兴趣小组)。它是openEuler社区的开发者们为了更好地管理和发展社区技术生态,根据多样性计算、云原生全栈、全场景协同、大数据与AI、兼容性......
  • RFO SIG:openEuler AWS AMI 制作详解
    作者简介王瀚兴,SUSE软件工程师,主要负责Rancher产品线相关的研发工作。欧拉开源社区的RFOSIG正在努力将openEuler与Rancher整合,以推动社区的云原生版图发展。而op......
  • BadUSB超详细制作, 实现CobaltStrike远控上线
    前言在2014年美国黑帽大会上,安全研究人员JakobLell和独立安全研究人员KarstenNohl展示了他们称为“BadUSB”的攻击方法,这种攻击方法让USB安全和几乎所有和USB相关的设备(......
  • IOS之【NSUserDefaults】
    @implementation-(void)viewDidLoad{[superviewDidLoad];selfread];}读取偏好设置-(void)read{NSUserDefaults*defaults=[NSUserDefaultsstandardUserDefa......