如何快速上手openeuler/pkgship?5分钟完成安装与基础配置指南
【免费下载链接】pkgshipA package dependency query tool项目地址: https://gitcode.com/openeuler/pkgship
前往项目官网免费下载:https://ar.openeuler.org/ar/
openeuler/pkgship是一款功能强大的软件包依赖查询工具,专为openEuler操作系统设计,能够帮助用户轻松管理软件包依赖关系,提供完整的依赖和被依赖关系图谱。无论是软件包引入、更新还是删除,它都能让你清晰了解软件的影响范围,是开源社区开发者的得力助手。
📋 准备工作:运行环境要求
在开始安装pkgship之前,请确保你的系统满足以下条件:
硬件配置
| 配置项 | 推荐规格 |
|---|---|
| CPU | 8核 |
| 内存 | 32G,最小4G |
| 网络带宽 | 300M |
| I/O | 375MB/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: 2sqlite文件配置规格:
- 为节省空间,不支持直接使用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 dbs2. 单包查询
查询源码包或者二进制包在指定数据库表中的具体信息:
pkgship pkginfo $packageName $database [-s]参数说明:
- $packageName:指定要查询的软件包名,必传参数。
- $database:指定具体的数据库名称,必传参数。
- -s: 指定
-s将查询的是src源码包信息;若未指定 默认查询bin二进制包信息,可选参数。
3. 安装依赖查询
查询二进制包的安装依赖:
pkgship installdep [$binaryName $binaryName1 $binaryName2...] [-dbs] [db1 db2...] [-level] $level4. 编译依赖查询
查询源码包的所有编译依赖:
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),仅供参考