Seqkit-2.2.0 移植指南(openEuler 20.03 LTS SP3)
1.软件介绍
seqkit是一种跨平台的、极快的,全面的fasta/q处理工具。seqkit为所有的主流操作系统提供了一种可执行的双元文件,包括Windows,Linux,MacOS X,并且不依赖于任何的配置或预先配置就可以直接使用。
关于seqkit的更多信息请访问seqkit官网。
语言:go
一句话描述:fasta/q处理工具
开源协议:MIT License
建议版本:seqkit v2.2.0
2.环境要求
2.1. 硬件要求如下表:
项目 | 说明 |
---|---|
CPU | Kunpeng 920 |
内存大小 | 32GB 2666MHz * 16 |
网卡 | 1*10GE |
2.2. 软件要求如下表:
项目 | 版本 | 下载地址 |
---|---|---|
SeqKit | 2.2.0 | https://github.com/shenwei356/seqkit/archive/refs/tags/v2.2.0.tar.gz |
毕昇编译器 | 2.1.0 | https://www.hikunpeng.com/zh/developer/devkit/compiler/bisheng |
go | go1.18 | https://dl.google.com/go/go1.18.linux-arm64.tar.gz |
2.3. 操作系统要求如下表:
项目 | 版本 | 下载地址 |
---|---|---|
openEuler | openEuler 20.03 SP3 | https://repo.openeuler.org/openEuler-20.03-LTS-SP3/ |
Kernel | 4.19.90 | https://gitee.com/openeuler/kernel |
3.移植规划
本章节给出seqkit软件在移植过程中涉及到的相关软件安装规划路径的用途及详细说明。
移植路径规划:
序号 | 软件安装规划路径 | 用途 | 说明 |
---|---|---|---|
1 | /usr/local/bisheng | 毕昇编译器的安装规划路径。 | 这里的安装规划路径只是一个举例说明,建议部署在共享路径中。需要根据实际情况调整,后续章节凡是遇到安装路径的命令,都以现网实际规划的安装路径为准进行替换,不再单独说明。 |
2 | /usr/local/seqkit/go | go环境安装规划路径。 | |
3 | /usr/local/seqkit/seqkit | SeqKit的安装规划路径。 |
4.配置编译环境
前提条件:使用SFTP工具将各安装包上传至服务器对应目录下。
配置流程:
序号 | 配置项 | 说明 |
---|---|---|
1 | 搭建鲲鹏基座软件 | 参考4.1 搭建鲲鹏基座软件 |
2 | 安装依赖 | 参考4.2 yum安装依赖 |
3 | 部署go环境 | 参考4.3 部署go环境 |
4.1 搭建鲲鹏基座软件
4.1.1 yum源安装方式
步骤1 在/etc/yum.repos.d/目录下增加配置文件bisheng-compiler.repo:
cat > /etc/yum.repos.d/bisheng-compiler.repo << EOF[bisheng-compiler]name=bisheng-compilerbaseurl=https://repo.oepkgs.net/bisheng/aarch64/enabled=1gpgcheck=0priority=100EOF
步骤2 从yum源下载和安装毕昇编译器rpm包:
yum update
yum install bisheng-compiler -y
步骤3 (可选)清空当前窗口的hash表。
如果系统中有其他版本的 LLVM 编译器,请在安装毕昇编译器之后立即运行:
hash -r
防止clang命令被hash捕获,出现毕昇编译器或开源LLVM编译器无法使用的问题。
步骤4 验证安装是否成功。
安装完毕后执行如下命令验证毕昇编译器版本:
clang -v
若返回结果已包含bisheng compiler版本信息,说明安装成功。
4.1.2 软件包安装方式
步骤 1 准备工作。
在毕昇编译器产品页选择“毕昇编译器软件包下载”获取毕昇编译器软件包并且上传至服务器上。
软件包下载页面:https://www.hikunpeng.com/zh/developer/devkit/compiler/bisheng
步骤 2 安装毕昇编译器环境依赖项:
yum install -y gcc glibc libatomic bc tar
步骤 3 创建毕昇编译器安装目录:
mkdir -p /usr/local/bisheng
注意: /usr/local/为举例说明路径,请根据用例存放实际路径修改。
步骤4 下载毕昇编译器压缩包并解压:
cd /usr/local/bisheng
wget https://mirrors.huaweicloud.com/kunpeng/archive/compiler/bisheng_compiler/bisheng-compiler-2.1.0-aarch64-linux.tar.gz --no-check-certificate
tar -zxvf bisheng-compiler-2.1.0-aarch64-linux.tar.gz
解压完成后在当前目录下出现名为“bisheng-compiler-2.1.0-aarch64-linux”的目录。
步骤 5 安装environment-modules工具:
yum install environment-modules -y
source /etc/profile
步骤6 创建环境变量配置文件:
vi /usr/local/bisheng/bisheng_modulefiles
新增如下内容:
#%Module1.0
conflict bisheng
prepend-path PATH /usr/local/bisheng/bisheng-compiler-2.1.0-aarch64-linux/bin
prepend-path LD_LIBRARY_PATH /usr/local/bisheng/bisheng-compiler-2.1.0-aarch64-linux/lib
步骤7 在当前shell中加载环境变量:
module use /usr/local/bisheng/
module load /usr/local/bisheng/bisheng_modulefiles
注意:若要避免每打开一个shell就要导入一次变量的情况,建议可将环境变量写入到系统配置文件中(可选):
vi /etc/profile
新增如下内容:
module use /usr/local/bisheng/
module load /usr/local/bisheng/bisheng_modulefiles
步骤 8使环境变量生效。
source /etc/profile
步骤 9 清空当前窗口的hash表(可选)。
如果系统中有其他版本的 LLVM 编译器,请在安装毕昇编译器之后立即运行如下命令:
hash -r
防止clang命令被hash捕获,出现毕昇编译器或开源LLVM编译器无法使用的问题。
步骤 10 验证安装是否成功。
安装完毕后执行如下命令验证毕昇编译器版本:
clang -v
若返回结果已包含bisheng compiler版本信息,说明安装成功。
----结束
4.2 安装依赖
步骤1:yum安装依赖包:
yum -y install git gcc gcc-c++ vimsource /etc/profile
4.3 部署go环境
步骤 1 使用PuTTY工具,以root用户登录服务器。 步骤 2 进入“/home”目录:
cd /home
步骤 3 获取go压缩包:
wget https://dl.google.com/go/go1.18.linux-arm64.tar.gz
步骤 4 创建安装路径:
mkdir -p /usr/local/seqkit/
步骤 5 解压go安装包:
tar -zxvf go1.18.linux-arm64.tar.gz -C /usr/local/seqkit/
注:请以实际压缩包名称进行解压缩操作。 步骤 6 配置环境变量:
vi /usr/local/seqkit/go/go_modulefiles
新增如下内容:
#%Module1.0
conflict go
set GO /usr/local/seqkit/go
setenv GO $GO
prepend-path PATH $GO/bin
步骤 7 加载环境变量:
module use /usr/local/seqkit/go
module load /usr/local/seqkit/go/go_modulefiles
步骤 8 若要避免每打开一个shell就要导入一次变量的情况,建议可将环境变量写入到系统配置文件中(可选):
vi /etc/profile
新增如下内容:
module use /usr/local/seqkit/go
module load /usr/local/seqkit/go/go_modulefiles
步骤 9使环境变量生效。
source /etc/profile
步骤 10 执行以下查看安装路径:
ls /usr/local/seqkit/go/
步骤11 查看版本号:
go version
步骤 12 将go源替换成国内源:
go env -w GOPROXY=https://goproxy.cn
5.获取源码
步骤 1 下载seqkit安装包“v2.2.0.tar.gz”。
下载地址:https://github.com/shenwei356/seqkit/archive/refs/tags/v2.2.0.tar.gz
6.编译和安装
步骤 1 使用PuTTY工具,以root用户登录服务器。 步骤 2 进入“/home”目录:
cd /home
步骤 3 获取源码包:
wget https://github.com/shenwei356/seqkit/archive/refs/tags/v2.2.0.tar.gz
步骤 4 解压缩包:
mv v2.2.0.tar.gz seqkit-2.2.0.tar.gz && tar -xvf seqkit-2.2.0.tar.gz
步骤 5 进入编译配置:
go env -w CXX=clang++
go env -w CC=clang
go env
步骤 6 进行编译:
cd seqkit-2.2.0/seqkit/
go build
步骤 7 进行安装:
mkdir -p /usr/local/seqkit/seqkit/bin
cp ./seqkit /usr/local/seqkit/seqkit/bin
ls /usr/local/seqkit/seqkit/bin
步骤 8 环境变量设置:
vi /usr/local/seqkit/seqkit/seqkit_modulefiles
新增如下内容:
#%Module1.0
conflict seqkit
set SEQKIT /usr/local/seqkit/seqkit
setenv SEQKIT $SEQKIT
prepend-path PATH $SEQKIT/bin
步骤 9 加载环境变量:
module use /usr/local/seqkit/seqkit
module load /usr/local/seqkit/seqkit/seqkit_modulefiles
步骤 10 若要避免每打开一个shell就导入一次变量的情况,建议可写入到系统配置文件中(可选):
vi /etc/profile
新增如下内容:
module use /usr/local/seqkit/seqkit
module load /usr/local/seqkit/seqkit/seqkit_modulefiles
步骤 11 使环境变量生效。
source /etc/profile
----结束
7.运行和验证
数据来源: 测试验证数据及脚本皆来自seqkit源码包,源码包下载地址见第5章节,数据及脚本所在包中位置:
步骤 1 使用PuTTY工具,以root用户登录服务器。 步骤 2 进入源码包目录。
cd /home/seqkit-2.2.0/
步骤 3 拷贝测试验证脚本到当前目录:
cp tests/test.sh ./
步骤 4 编辑脚本,删除seqkit的生成命令,修改脚本中的seqkit所在路径为安装位置:
vi test.sh
注意:安装路径以实际情况为准。 修改前:
修改后:
步骤 5 执行如下命令验证seqkit的运行:
bash test.sh
步骤 6 查看seqkit工具详情 seqkit --help
相关文章:

Seqkit-2.2.0 移植指南(openEuler 20.03 LTS SP3)
1.软件介绍 seqkit是一种跨平台的、极快的,全面的fasta/q处理工具。seqkit为所有的主流操作系统提供了一种可执行的双元文件,包括Windows,Linux,MacOS X,并且不依赖于任何的配置或预先配置就可以直接使用。 关于seqk…...

Java版本企业电子招投标采购系统源码——功能模块功能描述+数字化采购管理 采购招投标
功能模块: 待办消息,招标公告,中标公告,信息发布 描述: 全过程数字化采购管理,打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力,为外部供…...

二十三种设计模式第五篇--原型模式
原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建…...

阿里云镜像区别公共镜像、自定义、共享、云市场和社区镜像介绍
阿里云服务器镜像根据来源不同分为公共镜像、自定义镜像、共享镜像、云市场镜像和社区镜像,一般没有特殊情况选择公共镜像,公共镜像是阿里云官网提供的正版授权操作系统,云市场镜像是在纯净版操作系统的基础上预装了相关软件及运行环境&#…...

非线性方程二分法
非线性方程二分法 优点:算法直观、简单、总能保证收敛;局限:收敛速度慢、一般不单独用它求根,仅为了获取根的粗略近似 文章目录 非线性方程二分法[toc]1 二分法基本思想2 二分法实现 1 二分法基本思想 设 f ( x ) f(x) f(x)在 [ …...

H3C防火墙单机旁路部署(网关在防火墙)
防火墙旁路部署在核心交换机上,内网有三个网段vlan 10:172.16.10.1/24、vlan 20:172.16.20.1/24、vlan30:172.16.30.1。要求内网网关在防火墙设备上,由防火墙作为DHCP服务器给终端下发地址,同时由防火墙来控…...

基于密度的无线传感器网络聚类算法的博弈分析(Matlab代码实现)
目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨💻4 Matlab代码 💥1 概述 提高能源效率是无线传感器网络面临的关键挑战之一,无线传感器网络日益普遍。由于节点(传感器ÿ…...

宕机了?!DolphinScheduler 高可用和 Failover 机制关键时刻保命
高可用性是 Apache DolphinScheduler 的特性之一。它通过冗余来避免单点问题,所有组件天然支持横向扩容;但仅仅保证了冗余还不够,当系统中有节点宕机时,还需要有故障转移机制能够自动将宕机节点正在处理的工作转移到新节点上执行&…...

try(){}用法try-with-resources、try-catch-finally
属于Java7的新特性。 经常会用try-catch来捕获有可能抛出异常的代码。如果其中还涉及到资源的使用的话,最后在finally块中显示的释放掉有可能被占用的资源。 但是如果资源类已经实现了AutoCloseable这个接口的话,可以在try()括号中可以写操作资源的语句(…...

常见Http错误码学习
常见 http 错误码 服务器巡检时比较常见的 http 错误码 400 Bad Request408 Request Timeout499 client has closed connection502 Bad Gateway504 Gateway Timeout 这些错误码反映了服务器什么样的状态,仅看字面意思还不太容易理解,就动手做个试验…...

qemu-基础篇——ARM 链接过程分析(六)
文章目录 ARM 链接过程分析源文件global_bss_file.cglobal_data_fle.cglobal_function_file.cglobal_rodata_file.cmain.c 链接文件 link.lds编译命令及反汇编命令解析 .o 文件global_bss_file.oglobal_data_fle.oglobal_function_file.oglobal_rodata_file.omain.o 链接观察链…...

Java企业工程项目管理系统+spring cloud 系统管理+java 系统设置+二次开发
工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和查看用户角色 4、菜单管理:实现对系统菜单的增删改查操…...

Eureka与Zookeeper的区别
著名的CAP 理论指出,一个分布式系统不可能同时满足 C( 一致性 ) 、 A( 可用性 ) 和 P( 分区容错性 ) 。 由于分区容错性在是分布式系统中必须要保证的,因此我们只能在 A 和 C 之间进行权衡,在此 Zookeeper 保证的是 CP, 而 Eureka 则是 AP…...

顺序表和链表的各种代码实现
一、线性表 在日常生活中,线性表的例子比比皆是。例如,26个英文字母的字母表(A,B,C,……,Z)是一个线性表,表中的数据元素式单个字母。在稍复杂的线性表中,一个数据元素可以包含若干个数据项。例…...

C# 介绍三种不同组件创建PDF文档的方式
1 c# 数据保存为PDF(一) (spire pdf篇) 2 c# 数据保存为PDF(二) (Aspose pdf篇) 3 c# 数据保存为PDF(三) (PdfSharp篇) 组件名称 绘制…...

极简面试题 --- Redis
什么是 Redis? Redis 是一个基于内存的键值存储系统,也被称为数据结构服务器。它支持多种数据结构,例如字符串、哈希表、列表、集合和有序集合,并且可以在内存中快速读写。 Redis 的优势有哪些? 快速:由…...

可视化图表API格式要求有哪些?Sugar BI详细代码示例(4)
Sugar BI中的每个图表可以对应一个数据 API,用户浏览报表时,选定一定的过滤条件,点击「查询」按钮将会通过 API 拉取相应的数据;前面说过,为了确保用户数据的安全性,Sugar BI上的所有数据请求都在Sugar BI的…...

学习vue(可与知乎合并)
一:组件及交互 1、什么是组件? 组件是可复用的 Vue 实例,且带有一个名字:在这个例子中是 。我们可以在一个通过 new Vue 创建的 Vue 根实例中,把这个组件作为自定义元素来使用: 声明组件 // 定义一个名…...

【UEFI实战】Linux下如何解析ACPI表
本文介绍如何在Linux下查看ACPI表示。使用的系统是Ubuntu18.04: Linux home 4.15.0-36-generic #39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux 可以在如下的目录看到ACPI的基本信息: 但是默认的表都是不可以直接查看的&…...

Java-Redis持久化之RDB操作
Java-Redis持久化之RDB操作 1.为什么redis需要持久化?2.什么是RDB操作?3.请你用自己的话讲下RDB的过程?4.如何恢复rdb文件? 1.为什么redis需要持久化? Redis是内存数据库,如果不将内存数据库保存到磁盘,那么服务器进程退出&am…...

信号signal编程测试
信号会打断系统调用,慎用,就是用的时候测一测。 下面是信号的基础测试 信号 信号(signal)机制是UNIX系统中最为古老的进程之间的通信机制。它用于在一个或多个进程之间传递异步信号。信号可以由各种异步事件产生,例如…...

Linux学习记录——이십삼 进程信号(2)
文章目录 1、可重入函数2、volatile关键字3、如何理解编译器的优化4、SIGCHLD信号 1、可重入函数 两个执行流都执行一个函数时,这个函数就被重入了。比如同一个函数insert,在main中执行时,这个进程时间片到了,嵌入了内核…...

Revit中如何创建曲面嵌板及一键成板
一、Revit中如何创建曲面嵌板 在我们的绘图过程中可能会遇见一些曲面形状,而我们的常规嵌板没办法满足我们绘制的要求,我们今天学习如何在revit中绘制曲面嵌板。 1.新建“自适应公制常规模型”族,创建4个点图元并为其使用自适应。 2.在相同的…...

STM32F4_DHT11数字温湿度传感器
目录 前言 1. DHT11简介 2. DHT11数据结构 3. DHT11的传输时序 3.1 DHT11开始发送数据流程 3.2 主机复位信号和DHT11响应信号 3.3 数字 “0” 信号表示方法 3.4 数字 “1” 信号表示方法 4. 硬件分析 5. 实验程序详解 5.1 main.c 5.2 DHT11.c 5.3 DHT11.h 前言 DH…...

WiFi(Wireless Fidelity)基础(十一)
目录 一、基本介绍(Introduction) 二、进化发展(Evolution) 三、PHY帧((PHY Frame ) 四、MAC帧(MAC Frame ) 五、协议(Protocol) 六、安全&#x…...

操作系统—— 精髓与设计原理--期末复习
一、计算机系统概述 1、基本构成 计算机有四个主要的结构化部件: ①处理器(Processor):控制计算机的操作,执行数据处理功能。当只有一个处理器时,它通常指中央处理器(CPU) ②内存…...

每天一道算法练习题--Day21 第一章 --算法专题 --- ----------位运算
我这里总结了几道位运算的题目分享给大家,分别是 136 和 137, 260 和 645, 总共加起来四道题。 四道题全部都是位运算的套路,如果你想练习位运算的话,不要错过哦~~ 前菜 开始之前我们先了解下…...

D1. LuoTianyi and the Floating Islands (Easy Version)(树形dp)
Problem - D1 - Codeforces 这是问题的简化版本。唯一的区别在于在该版本中k≤min(n,3)。只有在两个版本的问题都解决后,才能进行黑客攻击。 琴音和漂浮的岛屿。 洛天依现在生活在一个有n个漂浮岛屿的世界里。这些漂浮岛屿由n−1个无向航线连接,任意两个…...

rk3588移植ubuntu server
ubuntu server 18.04 arm版本. 1、使用qemu运行 安装qemu-system-aarch64 sudo apt install -y qemu-system-arm 2、下载ubuntu server Index of /releases/18.04.3 3、创建虚拟磁盘 qemu-img create ubuntuimg.img 40G 4、创建虚拟机 弹出界面,直接回车选…...

如何更好地刷力扣
之前刷力扣是一口气看很多题目,打算时不时看一会题解,逐渐熟悉套路,争取背过,最后就可以写出来了。我个人是背知识比较喜欢这种方法,但后来发现根本不适用 算法题本身就比较复杂,不经过实际写代码中的思考…...