如何快速上手openeuler/pkgship?5分钟完成安装与基础配置指南
2026/6/30 17:18:23 网站建设 项目流程

如何快速上手openeuler/pkgship?5分钟完成安装与基础配置指南

【免费下载链接】pkgshipA package dependency query tool项目地址: https://gitcode.com/openeuler/pkgship

前往项目官网免费下载:https://ar.openeuler.org/ar/

openeuler/pkgship是一款功能强大的软件包依赖查询工具,专为openEuler操作系统设计,能够帮助用户轻松管理软件包依赖关系,提供完整的依赖和被依赖关系图谱。无论是软件包引入、更新还是删除,它都能让你清晰了解软件的影响范围,是开源社区开发者的得力助手。

📋 准备工作:运行环境要求

在开始安装pkgship之前,请确保你的系统满足以下条件:

硬件配置

配置项推荐规格
CPU8核
内存32G,最小4G
网络带宽300M
I/O375MB/sec

软件配置

软件名版本和规格
Elasticsearch版本7.10.1;单机部署可用;有能力可部署集群
Redis建议5.0.4及以上;建议大小配置为内存的3/4
Python版本 3.8及以上

🚀 快速安装:两种简单方法

方法一:通过dnf挂载repo源安装

先使用dnf挂载pkgship软件所在repo源(具体方法可参考应用开发指南),然后执行如下指令下载以及安装pkgship及其依赖:

dnf install pkgship

方法二:通过rpm包安装

先下载pkgship的rpm包,然后执行如下命令进行安装(其中“x.x-x”表示版本号,请用实际情况代替):

rpm -ivh pkgship-x.x-x.oe1.noarch.rpm

或者

dnf install pkgship-x.x-x.oe1.noarch.rpm

🛠️ 依赖服务安装:自动化脚本帮你搞定

如果你的环境还没有安装Elasticsearch或者Redis,可以在pkgship安装之后执行自动化安装脚本。脚本路径默认为:

/etc/pkgship/auto_install_pkgship_requires.sh

安装Elasticsearch

/bin/bash auto_install_pkgship_requires.sh elasticsearch

安装Redis

/bin/bash auto_install_pkgship_requires.sh redis

目前由于rpm包方式安装Elasticsearch默认为无密码模式,且pkgship需使用无密码设置的Elasticsearch,所以建议Elasticsearch和pkgship安装在同一服务器,以通过网络隔离提高安全性。后续将支持Elasticsearch设置用户名密码。

安装完成后,启动服务:

systemctl start elasticsearch systemctl start redis

图:pkgship部署架构图,展示了各组件之间的关系

⚙️ 基础配置:轻松搞定参数设置

配置文件修改

系统的默认配置文件存放在/etc/pkgship/package.ini,请根据实际情况进行配置更改:

vim /etc/pkgship/package.ini

主要配置项说明:

[SYSTEM-系统配置] ; 初始化数据库时导入的yaml文件存放位置 init_conf_path=/etc/pkgship/conf.yaml ; 服务查询端口 query_port=8090 ; 服务查询ip query_ip_addr=127.0.0.1 ; 临时文件存放目录,建议可用空间至少1G temporary_directory=/opt/pkgship/tmp/ [REDIS-缓存配置] ; Redis缓存服务器的地址 redis_host=127.0.0.1 ; Redis缓存服务器的端口 redis_port=6379 [DATABASE-数据库] ; 数据库访问地址 database_host=127.0.0.1 ; 数据库访问端口 database_port=9200

创建初始化数据库的yaml配置文件

conf.yaml 文件默认存放在/etc/pkgship/路径下,pkgship会通过该配置读取要建立的数据库名称以及需要导入的sqlite文件。示例如下:

dbname: oe20.03 #数据库名称 src_db_file: file:///etc/pkgship/repo/openEuler-20.09/src #源码包所在的本地路径 bin_db_file: file:///etc/pkgship/repo/openEuler-20.09/bin #二进制包所在的本地路径 priority: 1 #数据库优先级 dbname: oe20.09 src_db_file: https://repo.openeuler.org/openEuler-20.09/source #源码包所在的repo源 bin_db_file: https://repo.openeuler.org/openEuler-20.09/everything/aarch64 #二进制包所在的repo源 priority: 2

sqlite文件配置规格:

  • 为节省空间,不支持直接使用sqlite文件,请使用包含sqlite文件的压缩包,支持压缩格式为:.bz .gz .tar .zip
  • sqlite压缩包命名格式为xxx.primary.sqlite.xx,二进制包所在路径下还需使用filelists类型的sqlite压缩文件
  • 本地路径请使用file://前缀

🔌 服务启动与停止:两种方式任你选

pkgship启动和停止方式有两种,systemctl方式和pkgshipd方式,其中systemctl方式启动可以有异常停止自启动的机制。

systemctl方式

systemctl start pkgship.service # 启动服务 systemctl stop pkgship.service # 停止服务 systemctl restart pkgship.service # 重启服务

pkgshipd方式

pkgshipd start # 启动服务 pkgshipd stop # 停止服务

每次起停周期内仅支持一种方式,不允许两种操作同时使用。pkgshipd启动方式只允许在pkgshipuser用户下操作。docker环境下如果不支持systemctl命令,请使用pkgshipd启停方式。

图:pkgship依赖流程图,展示了软件包之间的依赖关系

📊 数据库初始化:开始使用前的关键一步

服务启动后,为了能查询对应的数据库中的包信息及包依赖关系,需要将这些数据库通过createrepo生成的sqlite导入进服务内。执行以下命令进行数据库初始化:

pkgship init [-filepath path]

参数说明: -filepath:指定初始化配置文件config.yaml的路径,可以使用相对路径和绝对路径,不带参数则使用默认配置初始化,可选参数。

✨ 基础使用:几个常用命令

1. 查看数据库信息

查看Elasticsearch中初始化了哪些数据库,该功能会按照优先级顺序返回已经初始化的数据库列表:

pkgship dbs

2. 单包查询

查询源码包或者二进制包在指定数据库表中的具体信息:

pkgship pkginfo $packageName $database [-s]

参数说明:

  • $packageName:指定要查询的软件包名,必传参数。
  • $database:指定具体的数据库名称,必传参数。
  • -s: 指定-s将查询的是src源码包信息;若未指定 默认查询bin二进制包信息,可选参数。

3. 安装依赖查询

查询二进制包的安装依赖:

pkgship installdep [$binaryName $binaryName1 $binaryName2...] [-dbs] [db1 db2...] [-level] $level

4. 编译依赖查询

查询源码包的所有编译依赖:

pkgship builddep [$sourceName $sourceName1 $sourceName2..] -dbs [db1 db2 ..] [-level] $level

📝 总结

通过以上几个简单步骤,你已经成功安装并配置好了openeuler/pkgship。这个强大的工具将帮助你轻松管理软件包依赖关系,无论是日常开发还是系统维护,都能大大提高你的工作效率。

如果你想深入了解更多功能,可以查看项目中的官方文档,或者通过pkgship -h命令查看所有可用命令。祝你使用愉快!

图:pkgship使用场景图,展示了在不同场景下如何使用pkgship工具

【免费下载链接】pkgshipA package dependency query tool项目地址: https://gitcode.com/openeuler/pkgship

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询