-
目前Atlas是插在装有CentOS系统的服务器上,请问如何在这个基础上布设mindstudio,谢谢各位!
-
在鲲鹏服务器CentOS下Python pip安装依赖sicpy时报:lapack_mkl_info: libraries mkl_rt not found in ['/usr/local/lib64', '/usr/local/lib', ...; openblas_lapack_info: libraries openblas not found in ['/usr/local/lib64', '/usr/local/lib',目前在网上基本找不到有关鲲鹏ARM 框架下的 mkl_rt资料。
-
Hi,鲲鹏920,centos7。命令是:perf top -p 进程号,显示不了任何信息。perf stat -p,都正常。不知道有人遇到过吗
-
1、首先下载boost库,该库是sersync的重要依赖, 地址:https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.bz2 2、下载之后将其解压,将根目录下的boost子目录拷贝到/usr/local/include目录下, 作为头文件引用,最后的目录形式如/usr/include/boost 3、编译安装boost(可能不同的编译环境有些依赖项的满足度不太一样,遇到问题可以单独解决,我在移植的时候提示缺少curl和python的依赖库和头文件,所以直接安装这两个依赖库) yum install python-devel curl-devel4、编译并安装boost 进入boost解压好的根目录,依次运行下面几个命令,分别的作用是配置,编译,和安装 $ ./bootstrap.sh $ ./b2 $ ./b2 install 默认boost库会安装在/usr/local/lib下,安装完后,删除/usr/local/lib下的动态链接库so文件,只保留静态链接库.a文件,这样做可以让sersync在编译的时候直接链接静态库,从而在生产环境上不用再安装一堆依赖库了5、然后下载sersync:https://codeload.github.com/generals-space/sersync/zip/master,这里需要根据ISV自己的版本要求下载对应的版本即可6、下载之后解压,直接make即可,编译完后可以在dist/Release/GNU-Linux-x86看到编译好的二进制
-
1、挂载系统ISO镜像并配置本地yum源(无法访问互联网时需要执行此步骤,可以访问互联网直接跳过)挂载OS镜像:mount -o loop /home/CentOS-7-aarch64-Everything-1810.iso /mnt/CentOS/修改/etc/yum.repos.d/CentOS-Base.repo文件,配置yum本地源:[base]name=CentOS-$releasever - Base#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infrabaseurl= file:///mnt/CentOSgpgcheck=1gpgkey= file:///mnt/CentOS/RPM-GPG-KEY-CentOS-7file:///mnt/CentOS/RPM-GPG-KEY-CentOS-7-aarch64运行下面的命令,使yum源配置生效:yum clean allyum makecacheyum安装GCC等相关依赖:sudo yum install -y snappy snappy-devel autoconf automake libtool git gcc gcc-c++ make cmake openssl openssl-devel ncurses-devel zlib zlib-devel bzip2 bzip2-devel bzip2-libs readline readline-devel bison zip unzip tar tcl java-1.8.0* bison* ncurses*2、配置epel源(安装go默认需要访问互联网,无法访问互联网情况下需要将对应go的rpm包从在线epel源获取并传到服务器手动使用rpm -ivh命令安装)创建/etc/yum.repos.d/epel.repo文件,配置epel源:[epel]name=Extra Packages for Enterprise Linux 7 - $basearchbaseurl=https://mirrors.huaweicloud.com/epel/7/$basearch#metalink=https://mirrors.fedoraproject.org/#metalink?repo=epel-7&arch=$basearchfailovermethod=priorityenabled=1gpgcheck=0#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7[epel-debuginfo]name=Extra Packages for Enterprise Linux 7 - $basearch - Debugbaseurl=https://mirrors.huaweicloud.com/epel/7/$basearch/debug#metalink=https://mirrors.fedoraproject.org/#metalink?repo=epel-debug-7&arch=$basearchfailovermethod=priorityenabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7gpgcheck=0[epel-source]name=Extra Packages for Enterprise Linux 7 - $basearch - Sourcebaseurl=https://mirrors.huaweicloud.com/epel/7/SRPMS#metalink=https://mirrors.fedoraproject.org/#metalink?repo=epel-source-7&arch=$basearchfailovermethod=priorityenabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7gpgcheck=0运行下面的命令,使yum源配置生效:yum clean allyum makecache手动获取rpm包可用如下链接:https://mirrors.huaweicloud.com/epel/7/aarch64/Packages/g/golang-1.13-1.el7.aarch64.rpmhttps://mirrors.huaweicloud.com/epel/7/aarch64/Packages/g/golang-bin-1.13-1.el7.aarch64.rpmhttps://mirrors.huaweicloud.com/epel/7/aarch64/Packages/g/golang-src-1.13-1.el7.noarch.rpm3、执行yum命令直接安装yum -y install golang4、查看go语言版本go version5、配置环境变量执行go evn查看当前go环境变量$ GOROOT、$ GOPATH的设置:运行下面的命令,使yum源配置生效:[root@cluster1 ~]# go env | egrep -i 'GOROOT|GOPATH'GOPATH="/root/go"GOROOT="/usr/lib/golang"根据上述信息设置当前bash的环境变量export GOROOT="/usr/lib/golang"export GOPATH="/root/go"或者写入到.bash_profile中,并执行source .bash_profile生效
-
说明:在Kunpeng软件移植过程中,经常需要安装外部依赖或者软件。根据依赖或软件来源的不同以及配置过程的不同,yum源配置分为: 本地yum源、网络yum、华为yum源三种;不作任何配置时,则使用Centos官方默认yum源(需要外网权限)。本文将这三种yum源的配置过程记录下来,请参考使用。1. 配置本地yum源 说明:如果组网环境处于外网受限情况下,服务器yum命令无法通过外界获取依赖包时,可参考本节内容进行本地源配置。 步骤 1 获取镜像文件。 将OS镜像文件CentOS-7-aarch64-Everything-1810.iso拷贝到服务器的“/root”目录下。 步骤 2 镜像文件挂载。 1. 将“/root”目录下的CentOS操作系统对应iso文件挂载到“/mnt”目录下(该操作单次生效,重启后失效)。 mount /root/CentOS-7-aarch64-Everything-1810.iso /mnt 2. (可选)设置开机挂载。 如果需要开机启动后自动挂载镜像,则请执行以下操作。否则,请忽略该步骤 a. 打开fstab文件。 vi /etc/fstab b. 编辑/etc/fstab文件,在文件末尾添加如下内容: /root/CentOS-7-aarch64-Everything-1810.iso /mnt iso9660 loop 0 0 c. 保存并退出fstab文件。 步骤 3 添加本地源文件。 1. 备份“/etc/yum.repos.d”目录。 mv /etc/yum.repos.d /etc/yum.repos.d.bak 2. 进入“/etc/yum.repos.d”目录。 mkdir –p /etc/yum.repos.d cd /etc/yum.repos.d 3. 创建local.repo文件。 a. 打开local.repo文件 touch local.repo vi local.repo b. 在local.repo文件中添加如下内容: [local] name=local.repo baseurl=file:///mnt enabled=1 gpgcheck=0 其中,baseurl中file路径为镜像挂载路径,与步骤2的挂载目录“/mnt”对应。 步骤 4 生效本地源。 yum clean all yum makecache 说明:使用yum repolist查看repo列表, 结果中包含local,即表示本地源配置成功: Yum repolist ----结束2. 配置网络yum源(清华大学源) 说明:如果centos官方yum源及本地源无法满足依赖包的安装,需要使用到网络yum源时,可参考本节内容进行网络yum源(清华大学源)配置。 步骤 1 备份系统原来的repo文件。 1. 进入“/etc/yum.repos.d”目录。 cd /etc/yum.repos.d 2. 备份系统官方的repo文件。 cp CentOS-Base.repo CentOS-Base.repo.bak 步骤 2 修改/etc/yum.repos.d/ CentOS-Base.repo文件。 在 mirrorlist= 开头行前面加 # 注释掉; 并将 baseurl= 开头行取消注释(如果被注释的话),把该行内的域名/系统框架 (例如mirror.centos.org/altarch)替换为 mirrors.tuna.tsinghua.edu.cn/centos-altarch。 步骤 3 执行yum源更新命令。 yum clean all yum makecache 说明:使用yum repolist查看repo列表, 结果中包含base/7/aarch64,即表示网络源配置成功: yum repolist ----结束3. 配置华为yum源 步骤 1 将华为源配置写入华为源repo文件: echo -e "[kunpeng]\nname=CentOS-kunpeng - Base - mirrors.huaweicloud.com\nbaseurl=https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/\ngpgcheck=0\nenabled=1" >/etc/yum.repos.d/CentOS-Base-kunpeng.repo 步骤 2 更新yum源配置: yum clean all yum makecache 说明:使用yum repolist查看repo列表, 结果中包含kunpeng,即表示华为源配置成功: yum repolist ----结束
-
问题现象:在TaiShan服务器Centos7.6上启动redis官方容器:docker run -it --rm redis出现报错:<jemalloc>: Unsupported system page size<jemalloc>: Unsupported system page size————————————————————————————————————————————————原因分析:redis在新版本中默认使用了jemalloc进行内存管理。由于jemalloc 在编译时就决定了page size的大小,而这个page size 会由于kernel的配置而改变,因此jemalloc在某个机器上编译,然后运行在其它机器上时可能会出现问题。推测可能是由于官方arm镜像的编译环境的page size与当前运行环境的page size不一致导致报错。————————————————————————————————————————————————解决办法:在运行环境下,重新编译构建redis镜像,即可解决报错 1. 取得redis官方镜像的dockerfile git clone https://github.com/docker-library/redis.git 2. 进入对应版本的dockerfile目录 cd redis cd 5.0 #准备构建5.0版本的redis镜像 docker build -t redis:5.0 . #构建镜像 docker run -it --rm redis:5.0 #运行redis:5.0镜像,查看控制台输出,确认redis成功启动。 ————————————————————————————————————————————————其它:如果是内网编译,会出现Temporary failure resolving 'deb.debian.org'等错误,需要配置代理。代理配置方法,vi redis/5.0/Dockerfile,在如下位置增加代理配置(IP和端口根据实际情况修改),并在有wget的地方增加--no-check-certificate。 echo "Acquire::http::Proxy \"http://192.168.102.225:8090\";" >/etc/apt/apt.conf; \ echo "Acquire::https::Proxy \"http://192.168.102.225:8090\";" >>/etc/apt/apt.conf; \ export http_proxy=http://192.168.102.225:8090; \ export https_proxy=http://192.168.102.225:8090; \在arm64环境下,centos的pagesize是64k,ubuntu的pagesize是4k,一般来说64k下编译的镜像是可以在小于或者等于64k的环境下运行的,但如果是在4k下编译的镜像,那么是不能在pagesize大于4k的环境下运行的。这个是jemalloc造成的。如果在编译构建镜像时使用libc就不会有这种问题。在构建的Dockerfile的RUN make xxxx指令前加上ENV USE_JEMALLOC no即可使得编译redis时不使用jemalloc。当然,jemalloc在某些场景下性能要优于libc,这个在选择用何种方式编译redis时,需要考虑清楚。————————————————————————————————————————————————部分内容引自:https://blog.csdn.net/toyangdon/article/details/104941161
-
【使用说明】仓库地址为:https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/大数据的下载地址为:https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/bigdata/Web的下载地址为:https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/web/分布式存储的下载地址为:https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/ceph/数据库的下载地址为:https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/database/云&虚拟化的下载地址为:https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/cloud/原生应用的下载地址为:https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/native/1、备份配置文件:mv /etc/yum.repos.d/ /etc/yum.repos.d-bak2、将新配置写入repo文件:mkdir /etc/yum.repos.decho -e "[kunpeng]\nname=CentOS-kunpeng - Base - mirrors.huaweicloud.com\nbaseurl=https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/\ngpgcheck=0\nenabled=1" >/etc/yum.repos.d/CentOS-Base-kunpeng.repo3、更新yum源配置:yum clean all # 清除系统所有的yum缓存yum makecache # 生成yum缓存yum update【精华帖汇总】:提供鲲鹏解决方案的移植、部署、调优端到端使用指导和一站式资源获取。请选择解决方案大数据Web分布式存储数据库云&虚拟化原生应用大数据精华帖汇总:https://bbs.huaweicloud.com/forum/thread-27853-1-1.htmlWeb精华帖汇总:https://bbs.huaweicloud.com/forum/thread-26092-1-1.html分布式存储精华帖汇总: https://bbs.huaweicloud.com/forum/thread-26748-1-1.html数据库精华帖汇总:https://bbs.huaweicloud.com/forum/thread-26495-1-1.html云&虚拟化精华帖汇总:https://bbs.huaweicloud.com/forum/thread-26458-1-1.html原生应用精华帖汇总:https://bbs.huaweicloud.com/forum/thread-28135-1-1.html【相关网址】鲲鹏社区:https://www.huaweicloud.com/kunpeng/鲲鹏论坛:https://bbs.huaweicloud.com/forum/forum-923-1.html鲲鹏文档中心:https://support.huaweicloud.com/kunpeng/index.html免责声明:https://mirrors.huaweicloud.com/kunpeng/yum/el/7/aarch64/下载使用前必读_华为开源镜像站法律声明_重要.pdf
-
想必大家都知道,如果部署Docker 17以上版本,则需要将Docker Engin部署在Linux 4.0以上版本的Kernel上,由于CentOS 8发布不久,很多设置习惯与之前版本不一样,并且很多已有软件和程序包无法在其上正常工作,但是CentOS 7使用的内核版本默认为3.10.x,如果想升级到更高版本的内核,就必须通过下载Kernel RPM包的方式自行升级,具体操作步骤如下:1. 访问内核下载网站,如清华大学官方镜像站点:https://mirrors.tuna.tsinghua.edu.cn/elrepo/kernel/,里面会看到如下的资源列表清单:el5/ - 2012-08-01 03:45el6/ - 2019-05-12 11:08el7/ - 2019-05-12 01:35el8/ - 2019-07-22 05:46其表示的含义就是CentOS的大版本号,如CentOS 6.x,就选择el6/,我们是CentOS 7的系统,当然选择el7/进入(‘el’表示Enterprise Linux),然后选择x86_64/之后再选择RPMS/,又会出现以下资源清单:elrepo-release-7.0-4.el7.elrepo.noarch.rpm 8.5 KiB 2019-07-16 00:03kernel-lt-4.4.215-1.el7.elrepo.x86_64.rpm 39.2 MiB 2020-02-29 00:39kernel-lt-4.4.216-1.el7.elrepo.x86_64.rpm 39.3 MiB 2020-03-11 21:30kernel-lt-devel-4.4.215-1.el7.elrepo.x86_64.rpm 10.2 MiB 2020-02-29 00:39kernel-lt-devel-4.4.216-1.el7.elrepo.x86_64.rpm 10.2 MiB 2020-03-11 21:30kernel-lt-doc-4.4.215-1.el7.elrepo.noarch.rpm 6.1 MiB 2020-02-29 00:39kernel-lt-doc-4.4.216-1.el7.elrepo.noarch.rpm 6.1 MiB 2020-03-11 21:30kernel-lt-headers-4.4.215-1.el7.elrepo.x86_64.rpm 1016.2 KiB 2020-02-29 00:39kernel-lt-headers-4.4.216-1.el7.elrepo.x86_64.rpm 1016.4 KiB 2020-03-11 21:30kernel-lt-tools-4.4.215-1.el7.elrepo.x86_64.rpm 150.8 KiB 2020-02-29 00:39......kernel-ml-5.5.8-1.el7.elrepo.x86_64.rpm 49.2 MiB 2020-03-05 21:41kernel-ml-5.5.9-1.el7.elrepo.x86_64.rpm 49.2 MiB 2020-03-12 07:25kernel-ml-devel-5.5.8-1.el7.elrepo.x86_64.rpm 12.9 MiB 2020-03-05 21:41kernel-ml-devel-5.5.9-1.el7.elrepo.x86_64.rpm 12.9 MiB 2020-03-12 07:25kernel-ml-doc-5.5.8-1.el7.elrepo.noarch.rpm 8.3 MiB 2020-03-05 21:41kernel-ml-doc-5.5.9-1.el7.elrepo.noarch.rpm 8.3 MiB 2020-03-12 07:25......这里要注意的是,如果是企业生产环境,一定要选择lt(longterm)长期支持版的镜像包(ml表示mainline,即主线滚动更新版本),如kernel-lt-4.4.216-1.el7.elrepo.x86_64.rpm,并且同时下载配套的开发包kernel-lt-devel-4.4.216-1.el7.elrepo.x86_64.rpm(其中包含有.h和C/C++ lib函数库)。2. 安装下载好的内核包:# yum localinstall kernel-lt-4.4.216-1.el7.elrepo.x86_64.rpm kernel-lt-devel-4.4.216-1.el7.elrepo.x86_64.rpm -y3. 设置新的内核为系统默认启动项:# grub2-mkconfig // 查询启动项配置文件找到'CentOS Linux (4.4.216-1.el7.elrepo.x86_64) 7 (Core)'# grub2-set-default 'CentOS Linux (4.4.215-1.el7.elrepo.x86_64) 7 (Core)'重启操作系统,会显示新内核为默认启动项。这里需要注意的地方是,网络配置需要通过 nmcli c reload 重新载入,否则会默认变为DHCP动态获取IP方式。南京HDZ开发者社区正式成立志愿者火热招募中,期待您的加入~社区宗旨:开放、创新、多元对于前沿技术开发感兴趣的朋友欢迎加入到HDZ的大家庭!!!南京HDZ报名通道:https://275956.weixin.drip.im/form/detail/27667c0f-8c4e-4c47-957d-a7bf3d524245?special=275956【 南京HDZ 公众号 】
-
1 GCC简介GNU编译器套装(英语:GNU Compiler Collection,缩写为GCC),指一套编程语言编译器,以GPL及LGPL许可证所发行的自由软件,也是GNU计划的关键部分,也是GNU工具链的主要组成部分之一。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。1985年由理查德·马修·斯托曼开始发展,现在由自由软件基金会负责维护工作。原名为GNU C语言编译器(GNU C Compiler),因为它原本只能处理C语言。GCC在发布后很快地得到扩展,变得可处理C++。之后也变得可处理Fortran、Pascal、Objective-C、Java、Ada,Go与其他语言。许多操作系统,包括许多类Unix系统,如Linux及BSD家族都采用GCC作为标准编译器。 2 配置编译环境2.1 安装依赖yum install bzip2 -y yum install gcc gcc-c++ -y ----结束3 编译依赖库3.1 编译gmp 6.1.2gmp下载链接:http://ftp.gnu.org/gnu/gmp/安装gmpwget https://ftp.gnu.org/gnu/gmp/gmp-6.1.2.tar.bz2tar -jxf gmp-6.1.2.tar.bz2cd gmp-6.1.2./configure --prefix=/usr/local/gmp-6.1.2make -j4make install3.2 编译mpfr 4.0.2mpfr下载链接:https://ftp.gnu.org/gnu/mpfr/安装mpfrwget https://ftp.gnu.org/gnu/mpfr/mpfr-4.0.2.tar.gztar -zxf mpfr-4.0.2.tar.gzcd mpfr-4.0.2./configure --prefix=/usr/local/mpfr-4.0.2 --with-gmp=/usr/local/gmp-6.1.2makemake install3.3 编译mpc 1.1.0mpc下载链接:https://ftp.gnu.org/gnu/mpc/安装mpcwget https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gztar -zxf mpc-1.1.0.tar.gzcd mpc-1.1.0./configure --prefix=/usr/local/mpc-1.1.0 --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.2makemake install 4 编译GCC 9.1.0 步骤 1 设置环境变量:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-1.1.0/lib:/usr/local/gmp-6.1.2/lib:/usr/local/mpfr-4.0.2/lib 步骤 2 下载源码编译:wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-9.1.0/gcc-9.1.0.tar.gztar -xzf gcc-9.1.0.tar.gzcd gcc-9.1.0./configure --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.2 --with-mpc=/usr/local/mpc-1.1.0 --prefix=/usr/local/gcc-9.1.0make -j64make install 步骤 3 确认版本生效:gcc -v ----结束 5 参考更多信息请参见GCC官网:https://gcc.gnu.org/。
-
一 介绍简要介绍WildFly是一个基于J2EE的开放源代码的应用服务器。曾用名(JBoss),代码遵循LGPL许可,可以在任何商业应用中免费使用。WildFly是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。但WildFly核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。。2.建议的版本本次迁移涉及到组件的版本如下。下载地址:https://download.jboss.org/wildfly/15.0.0.Final/wildfly-15.0.0.Final.tar.gz二 环境要求此组件是基于鲲鹏920,在中标麒麟v7u6上迁移的三 配置编译环境3.1 安装JDK1.8挂载OS镜像:mount YOUR_OS.iso /media -o loop修改/etc/yum.repos.d/Base.repo文件,配置yum本地源:[Local]name= Localbaseurl=file:///media/enabled=1gpgcheck=0运行下面的命令,使yum源配置生效:yum clean allyum makecacheyum安装GCC相关软件:yum install java-1.8.0-openjdk -y四 获取源码下载解压安装包wget https://download.jboss.org/wildfly/15.0.0.Final/wildfly-15.0.0.Final.tar.gztar xvf wildfly-15.0.0.Final.tar.gz五 编译安装5.1 配置JBOSS环境变量配置JBOSS环境变量vi /etc/profileexport JBOSS_HOME=/wildfly安装目录/source /etc/profile 5.2 修改配置文件查看本机ip地址hostname -i 打开配置文件,修改下图标记位置中的127.0.0.1为上面查出来的本机ipvi /wildfly安装目录/standalone/configuration/standalone.xml六 运行验证WildFly安装好之后启动wildfly/wildfly安装目录/bin/standalone.sh使用浏览器登录https://本机ip:8080
-
一 介绍1.简要介绍Harbor:是docker镜像仓库,用于存储和分发Docker镜像。2.建议的版本本次迁移涉及到组件的版本如下,1.8.1版本下载地址:https://github.com/goharbor/harbor/tree/v1.8.1 二 环境要求本组件是基于centos7.6进行迁移的 三 配置编译环境在编译安装之前,需要配置编译环境,安装一些必要的编译工具(如gcc,maven)和运行环境依赖(如jdk和selinux)等。3.1 安装Openjdk下载并安装到指定目录(如/opt/tools/installed):wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gztar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gzmv jdk8u191-b12 /opt/tools/installed/配置java环境变量,在/etc/profile文件末尾处增加下面的代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12PATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME PATH运行下面命令,使修改的环境变量生效:source /etc/profile3.2 安装Maven下载并安装到指定目录(如/opt/tools/installed):wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gztar -zxf apache-maven-3.5.4-bin.tar.gzmv apache-maven-3.5.4 /opt/tools/installed/修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATHexport MAVEN_HOME JAVA_HOME PATH运行下面的命令,是修改的环境变量生效:source /etc/profile修改maven配置文件中的:本地仓路径、远程仓等:配置文件路径:/opt/tools/installed/apache-maven-3.5.4/conf/settings.xml本地仓库配置:<!--默认在“~/.m2/”目录下,修改成你自己想保存的目录--><localRepository>/path/to/local/repo</localRepository>远程仓库配置:<!--修改成自己搭建的maven仓库,如果没有,可以使用下面的aliyun --><mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>配置代理: <proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>用户名</username> <password>密码</password> <host>代理服务器网址</host> <port>代理服务器端口</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy> </proxies> 3.3 安装GCC挂载OS镜像:mount YOUR_OS.iso /media -o loop修改/etc/yum.repos.d/Base.repo文件,配置yum本地源:[Local]name=CentOS-7.4 Localbaseurl=file:///media/enabled=1gpgcheck=0运行下面的命令,使yum源配置生效:yum clean allyum makecacheyum安装GCC相关软件:yum install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64 libgcc.aarch64 3.4 Docker依赖selinux安装Docker安装时需要依赖于selinux,可以提前安装selinux。安装方式是,wget先下载到本地Wget http://mirror.centos.org/centos/7/updates/x86_64/Packages/selinux-policy-targeted-3.13.1-229.el7_6.12.noarch.rpm然后用rpm –ivh selinux-policy-targeted-3.13.1-229.el7_6.12.noarch.rpm来安装 四 获取源码 使用git 命令下载指定版本git clone https://github.com/goharbor/harbor.gitgit checkout v1.8.1 五 编译 5.1 Docker安装Docker需要下载aarch64版本的:https://download.docker.com/linux/centos/7/aarch64/stable/Packages/可以根据需要选择对应的版本号,由于harbor运行要求Docker的版本至少在17.06.0以上,所以可以下载18版本的,如docker-ce-18.03.1.ce-1.el7.centos.aarch64.rpm这个版本。先使用wget 进行下载wget https://download.docker.com/linux/centos/7/aarch64/stable/Packages/docker-ce-18.03.1.ce-1.el7.centos.aarch64.rpm --no-check-certificate下载之后,使用yum安装yum install /path/to/package.rpm注意:Docker运行需要提前配置好http_proxy和https_proxy等文件,在/usr/lib/systemd/system/docker.service文件中设置http_proxy代理是否配置正确,否则访问不了docker镜像,后面的Docker-compose也需要依赖于Docker可以运行起来。步骤1. 启动dockersystemctl start docker步骤2.运行hello-world,检查Docker配置是否已经正确docker run hello-world配置正确的Docker运行hello-world时会打印如下信息:5.2 Docker-compose编译安装Docker-compose的安装也依赖于docker,所以需要先确保docker可以正常运行起来,如docker run hello-world运行时不会报错Github上已经有aarch64的docker-compose版本,可以直接从github下载arm64版本:https://github.com/ubiquiti/docker-compose-aarch64步骤1:下载aarch64的docker-compose源码git clone https://github.com/ubiquiti/docker-compose-aarch64.git步骤2:生成docker镜像下载之后,主要有Dockerfile文件用来构建compose镜像,README.md则是具体构建方法:docker build . -t docker-compose-aarch64-builderdocker run --rm -v "$(pwd)":/dist docker-compose-aarch64-builder总共就两步:构建docker-compose镜像运行docker-compose镜像,同时在本地生成可执行文件docker-compose-Linux-aarch64 5.3 Harbor编译前Dockerfile修改Harbor的build过程,主要有两步,一个是执行make all先进行编译,第二步是执行install.sh进行安装。Make的过程是依次执行 make/photon下12个组件(common和notary下没有Dockerfile)下的Dockerfile的过程1.修改make/photon文件夹下各个模块的Dockerfile中的photon:2.0为photon:3.0由于这几个模块的Dockerfile都是基于photon2.0的镜像,而photon2.0不支持arm64,执行过程中会出现如下photonde 库列表匹配不到linux/arm64的报错而photon3.0已经支持arm64,所以需要提前将这些Dockerfile中的photon:2.0改为photon:3.0改为photon:3.02.在各个需要与远端仓库交互的Dockerfile中增加http_proxy/https_proxy代理,确保Dockerfile执行过程中可以到远端仓库进行下载注意!由于make/photon/portal/Dockerfile中有两个From基础镜像,这两个FROM之后都要增加代理(由于portal组件是有已经生成好的镜像,此处不需要编译,也不需要修改) 3 修改make/checkenv.sh和make/install.sh脚本以及MakeFile由于harbor在make时,会先检查golang,docker和docker-compose是否安装,以及版本号,在安装了docker-compose之后,需要修改make.checkenv.sh脚本中关于docker-compose(如果前面docker-compose编译的时候,已经修改了docker-compose-Linux-aarch64为docker-compose,此处不需要修改)名字的判断,按如下红框将原来的docker-compose改为docker-compose-Linux-aarch64Make/install.sh脚本除了修改如上function check_dockercompose函数中的docker-compose为docker-compose-Linux-aarch64,还要修改如下红框中的语句Makefile里也要修改检查docker-compose的语句 4.harbor.yml文件配置需要修改harbor.yml文件中hostname为自己的主机名5.4 Harbor编译Harbor的build过程,主要有两步,一个是执行make all先进行编译,第二步是执行install.sh进行安装。在harbor目录下执行make all之后,会先检查golang/docker/docker-compose等是否安装,然后再依次build 如下几个模块的Dockerfile: prepare-db-poratl-core-jobservice-log-nginx- registry- registryctrl-redis一个镜像构建成功之后,会自动build下一个镜像同时可以用docker images来查看已经构建成功的镜像Make all成功后会自动生成docker-compose.yml配置文件在make all执行成功之后就可以执行install.sh进行安装了,install.sh的脚本主要有3步:检查安装环境,准备环境(自动生成配置文件),以及启动harbor如果出现如下打印“Harbor has been installed and started successfully.”,说明已经安装成功了,可以用ps命令查看harbor的几个组件是否已经成功拉起,以及状态是否健康等六 运行验证在harbor编译成功后,如果出现如下打印“Harbor has been installed and started successfully.”,说明已经安装成功了,可以用ps命令查看harbor的几个组件是否已经成功拉起,以及状态是否健康等在harbor成功拉起后,可以在浏览器上打开harbor界面,确认是否正常七 FAQ 7.1 Harbor在安装阶段启动时报错容器冲突问题现象:在harbor启动时,报错容器冲突解决方法:先将容器停掉,然后删除,再重新install.sh7.2 Harbor的portal模块在build时报npm错误问题现象:在harbor执行make all编译,编译至portal这个模块时报npm错误 解决办法:在make/photon/portal/Dockerfile中,先注释掉npm的安装,由于harbor-portal有aarch64的镜像,采用直接运行已有的aarch64的harbor-portal的方式来规避。相关镜像的下载请参考此网站,已有人build成功的harbor-portal镜像:https://hub.docker.com/search?q=harbor-portal&type=image用docker pull命令将harbor-portal:dev这个aarch64的镜像pull下来2.将原来build的goharbor/harbor-portal:dev的镜像删除先查询和停掉portal容器,再删除portal镜像把portal镜像删除3.将docker pull下来的镜像改名为goharbor/harbor-portal:dev,并删除frankzhang0803/harbor-portal:dev4.运行goharbor/harbor-portal5.停掉docker-compose6.修改make/photon/Makefile,注释掉如下编译PORTAL的语句,使用仓库上的镜像就不再编译portal组件7.重新make all和执行install.sh,重新启动harbor7.3 Harbor的registry模块一直是restarting状态问题现象:harbor启动时,registry状态一直为restarting解决办法: 1.修改harbor-1.8.1/Makefile, 以下内容82 BUILDBIN=true100 REGISTRYVERSION=v2.7.1修改harbor-1.8.1/make/photon/Makefile修改harbor-1.8.1/make/photon/registry/Dockerfile修改harbor-1.8.1/make/photon/registryctl/Dockerfile若之前执行过编译安装,请先清除遗留信息。默认,遗留信息存放在/data目录下。rm -rf /data/*7.4 Harbor的redis-photon模块一直是restarting状态问题现象:redis-photon启动异常解决办法:将系统page size 64K修改为4K,编译内核,参考:https://bbs.huaweicloud.com/forum/thread-26293-1-1.html
-
一 介绍1.简要介绍Logstash: Logstash 是一个应用程序日志、事件的传输、处理、管理和搜索的平台。可以用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计。Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。 2.建议的版本本次迁移涉及到组件的版本如下。下载地址:https://www.elastic.co/cn/downloads/logstash三配置编译环境3.1 安装Openjdk下载并安装到指定目录(如/opt/tools/installed):wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gztar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gzmv jdk8u191-b12 /opt/tools/installed/配置java环境变量,在/etc/profile文件末尾处增加下面的代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12PATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME PATH运行下面命令,使修改的环境变量生效:source /etc/profile3.2 安装Maven下载并安装到指定目录(如/opt/tools/installed):wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gztar -zxf apache-maven-3.5.4-bin.tar.gzmv apache-maven-3.5.4 /opt/tools/installed/修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATHexport MAVEN_HOME JAVA_HOME PATH运行下面的命令,是修改的环境变量生效:source /etc/profile修改maven配置文件中的:本地仓路径、远程仓等:配置文件路径:/opt/tools/installed/apache-maven-3.5.4/conf/settings.xml本地仓库配置:<!--默认在“~/.m2/”目录下,修改成你自己想保存的目录--><localRepository>/path/to/local/repo</localRepository>远程仓库配置:<!--修改成自己搭建的maven仓库,如果没有,可以使用下面的aliyun --><mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>配置代理: <proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>用户名</username> <password>密码</password> <host>代理服务器网址</host> <port>代理服务器端口</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy> </proxies> 3.3 安装GCC挂载OS镜像:mount YOUR_OS.iso /media -o loop修改/etc/yum.repos.d/Base.repo文件,配置yum本地源:[Local]name=CentOS-7.4 Localbaseurl=file:///media/enabled=1gpgcheck=0运行下面的命令,使yum源配置生效:yum clean allyum makecacheyum安装GCC相关软件:yum install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64 libgcc.aarch64 四 获取源码Logstash的下载和解压操作如下:wget https://artifacts.elastic.co/downloads/logstash/logstash-7.2.0.tar.gztar xvf logstash-7.2.0.tar.gz五 编译Logstash是一个开源的日志搜集管理工具,该软件为java程序,不需要编译,只需要解压,在解压后的bin文件中运行logstash即可。详细安装指导可以参考官网,其运行需要的java环境为1.8或者1.11,本文的使用的java版本为1.8:[root@ceph1 make]# java -versionjava version "1.8.0_211"Java(TM) SE Runtime Environment (build 1.8.0_211-b12)Logstash主要有离线安装和在线安装两种,本文中采用在线下载安装的方式,使用最新的7.2.0的版本,采用如方法下载到本地指定路径后,解压即可wget https://artifacts.elastic.co/downloads/logstash/logstash-7.2.0.tar.gztar xvf logstash-7.2.0.tar.gz 六 运行验证在logstash解压后的bin目录下,直接运行logstash验证下是否安装成功: cd logstash-7.2.0/bin./logstash -e 'input {stdin{}} output {stdout{}}'直接运行会报加载ffi/ffi时java空指针异常加载ffi/ffi模块时出现java空指针异常的原因在于Logstash-7.2.0中对aarch64平台支撑不好,缺少必要的platform.conf文件,将logstash-7.2.0解压后,将logstash-core\lib\jars\jruby-complete-9.2.7.0.jar包继续解压,在jruby-complete-9.2.7.0\META-INF\jruby.home\lib\ruby\stdlib\ffi\ffi.rb文件中打开platform.conf文件异常:实际上在对应的jruby-complete-9.2.7.0\META-INF\jruby.home\lib\ruby\stdlib\ffi\platform\aarch64-linux平台下,只有一个types.conf文件,没有platform.conf文件 解决办法是将types.conf文件复制一份命名为platform.conf,然后将platform.conf这个文件然后重新打包到jruby-complete-9.2.7.0.jar: 1.jar包解压cd logstash-7.2.0/logstash-core/lib/jars/mkdir -p testcp jruby-complete-9.2.7.0.jar test/cd test解压jar包unzip jruby-complete-9.2.7.0.jar 2 types.conf复制 在解压后的platform目录下,复制types.conf为platform.conf cp META-INF/jruby.home/lib/ruby/stdlib/ffi/platform/aarch64-linux/types.conf META-INF/jruby.home/lib/ruby/stdlib/ffi/platform/aarch64-linux/platform.confcp META-INF/jruby.home/lib/ruby/stdlib/ffi/platform/arm-linux/types.conf META-INF/jruby.home/lib/ruby/stdlib/ffi/platform/arm-linux/platform.conf 3.重新打包将复制的platform.conf文件重新打包到jruby-complete-9.2.7.0.jar,生成一个新的jar包,替换原来的logstash-core\lib\jars\jruby-complete-9.2.7.0.jar zip jruby-complete-9.2.7.0.jar META-INF/jruby.home/lib/ruby/stdlib/ffi/platform/arm-linux/platform.confzip jruby-complete-9.2.7.0.jar META-INF/jruby.home/lib/ruby/stdlib/ffi/platform/aarch64-linux/platform.confcp jruby-complete-9.2.7.0.jar ../ -rf rm ../test重新在Logstash-7.2.0/bin下验证,当出现如下打印Successfully started Logstash API endpoint {:port=>9600}时即为安装和运行成功
-
一 介绍简要介绍Portainer: Portainer是一个开源、轻量级Docker管理用户界面,基于Docker API,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。 建议的版本本次迁移涉及到组件的版本如下。 二 环境要求硬件要求硬件要求如表2-1所示。 2.操作系统要求操作系统要求如表2-3所示。三 配置编译环境3.1 安装Openjdk下载并安装到指定目录(如/opt/tools/installed):wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gztar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gzmv jdk8u191-b12 /opt/tools/installed/配置java环境变量,在/etc/profile文件末尾处增加下面的代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12PATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME PATH运行下面命令,使修改的环境变量生效:source /etc/profile3.2 安装Maven下载并安装到指定目录(如/opt/tools/installed):wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gztar -zxf apache-maven-3.5.4-bin.tar.gzmv apache-maven-3.5.4 /opt/tools/installed/修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATHexport MAVEN_HOME JAVA_HOME PATH运行下面的命令,是修改的环境变量生效:source /etc/profile修改maven配置文件中的:本地仓路径、远程仓等:配置文件路径:/opt/tools/installed/apache-maven-3.5.4/conf/settings.xml本地仓库配置:<!--默认在“~/.m2/”目录下,修改成你自己想保存的目录--><localRepository>/path/to/local/repo</localRepository>远程仓库配置:<!--修改成自己搭建的maven仓库,如果没有,可以使用下面的aliyun --><mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>配置代理: <proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>用户名</username> <password>密码</password> <host>代理服务器网址</host> <port>代理服务器端口</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy> </proxies> 3.3 安装GCC挂载OS镜像:mount YOUR_OS.iso /media -o loop修改/etc/yum.repos.d/Base.repo文件,配置yum本地源:[Local]name=CentOS-7.4 Localbaseurl=file:///media/enabled=1gpgcheck=0运行下面的命令,使yum源配置生效:yum clean allyum makecacheyum安装GCC相关软件:yum install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64 libgcc.aarch64四 获取源码此次移植指定的版本为1.21.0,针对ARM64, 官方直接发布了二进制的软件包,我们可以下载直接使用而不需要经过编译。下载地址如下:https://github.com/portainer/portainer/releases注意,需要获取的版本为arm64,见下图:或直接使用wget方式获取:wget --no-check-certificate https://github.com/portainer/portainer/releases/download/1.21.0/portainer-1.21.0-linux-arm64.tar.gz五 编译Portainer不需要编译,直接解压后运行即可,运行方法参考第六章六 运行验证在执行此步骤时,先确保docker已经正确安装,并且正常运行。接着解压portainer-1.21.0-linux-arm64.tar.gz,进入到portainer文件夹,在该目录下运行:docker volume create portainer_datadocker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer运行成功之后,使用浏览器访问该服务器的portainer服务,即可展示管理首次登录界面,在该界面上会指导用户设置管理员密码。服务端口默认的是9000,根据需要也可以修改成其它的端口。基它修改可参考官方指导:https://portainer.readthedocs.io/en/latest/deployment.html
-
一 介绍简要介绍 Thrift:Thrift是一种接口定义语言和二进制通信协议,用于定义和创建多种语言的服务。它形成了一个远程程序调用 (RPC) 框架,并在 Facebook 上开发,用于"可扩展的跨语言服务开发"。它将软件堆栈与代码生成引擎相结合,构建跨平台服务,可以连接以各种语言和框架编写的应用程序,虽然是在Facebook上开发的,但它现在是Apache软件基金会的一个开源项目2.建议的版本本次迁移涉及到组件的版本如下。版本号:0.12.0,下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/thrift/0.12.0/thrift-0.12.0.tar.gz二 环境要求硬件要求硬件要求如下表所示2.操作系统 三 配置编译环境在编译安装之前,需要配置编译环境,安装一些必要的编译工具(如gcc,maven)和运行环境依赖(如jdk和selinux)等。3.1 安装Openjdk下载并安装到指定目录(如/opt/tools/installed):wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gztar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gzmv jdk8u191-b12 /opt/tools/installed/配置java环境变量,在/etc/profile文件末尾处增加下面的代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12PATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME PATH运行下面命令,使修改的环境变量生效:source /etc/profile3.2 安装Maven下载并安装到指定目录(如/opt/tools/installed):wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gztar -zxf apache-maven-3.5.4-bin.tar.gzmv apache-maven-3.5.4 /opt/tools/installed/修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATHexport MAVEN_HOME JAVA_HOME PATH运行下面的命令,是修改的环境变量生效:source /etc/profile修改maven配置文件中的:本地仓路径、远程仓等:配置文件路径:/opt/tools/installed/apache-maven-3.5.4/conf/settings.xml本地仓库配置:<!--默认在“~/.m2/”目录下,修改成你自己想保存的目录--><localRepository>/path/to/local/repo</localRepository>远程仓库配置:<!--修改成自己搭建的maven仓库,如果没有,可以使用下面的aliyun --><mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>配置代理: <proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>用户名</username> <password>密码</password> <host>代理服务器网址</host> <port>代理服务器端口</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy> </proxies> 3.3 安装GCC挂载OS镜像:mount YOUR_OS.iso /media -o loop修改/etc/yum.repos.d/Base.repo文件,配置yum本地源:[Local]name=CentOS-7.4 Localbaseurl=file:///media/enabled=1gpgcheck=0运行下面的命令,使yum源配置生效:yum clean allyum makecacheyum安装GCC相关软件:yum install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64 libgcc.aarch64四 获取源码根据实践,thrift在编译安装时依赖于boost,为节省时间,先在系统上完成boost的安装。wget http://sourceforge.net/projects/boost/files/boost/1.53.0/boost_1_53_0.tar.gztar xvf boost_1_53_0.tar.gzcd boost_1_53_0./bootstrap.shsudo ./b2 install此次版本的thrift版本为0.10.0,首先从镜像获取对应的源码包:wget https://mirrors.tuna.tsinghua.edu.cn/apache/thrift/0.10.0/thrift-0.10.0.tar.gz正常情况下,按README的说明操作,就可以完成整个编译:解压下载获取到的源码,然后进入到目录中,在目录中执行: ./bootstrap.sh./configure --with-lua=nomakemake install 五 编译正常情况下,按README的说明操作,就可以完成整个编译:解压下载获取到的源码,然后进入到目入中,在目录中执行: ./bootstrap.sh./configure --with-lua=nomakemake install 六 运行和验证七 FAQ7.1.1 提示找不到Python.h以及cStringIO.h头文件这种错误的原因,是因为系统中安装的Python版本没有将相关的头文件包含在” /usr/local/include/”对应的软件目录中。重新安装Python版本即可,本文档中也遇到了相同的问题,重新安装了python 2.7后解决问题。 7.1.2 提示无法引用boost的若干类问题问题现象2.解决方法出现这个问题,先确认boost 是否已完成编译安装,如果已经完成,则需要修改编译脚本。注意,需要修改的脚本不止一处,分别是(本文档中将thrift下载到了/home/hello目录中,根据实际的下载目录去调整)/home/hello/thrift-0.10.0/compiler/cpp/src/Makefile 和/home/hello/thrift-0.10.0/compiler/cpp/test/Makefile在文件中找到内容 “LIBS = -lrt -lpthread”,修改变为“LIBS = -lrt -lpthread -lboost_atomic -lboost_system”7.1.3 提示无法获取maven-ant-tasks JAR包无法获取问题现象解决方法 有可能出现了安装程序无法访问服务器的问题,需要我们手工来完成下载。针对这个问题,根据提示,使用wget 获取的对应的jar包,并拷贝到提示中的目录中。但这个安装程序一定要自己下载成功才会继续完成编译,因此我们需要手工注释掉该文件的下载(因为我们已经手工下载成功)。修改方法:路径本文档中将thrift下载到了/home/hello目录中,根据实际的下载目录去调整):“/home/hello/thrift-0.10.0/lib/java/build.xml”,修改位置见下图。7.1.4 提示读取slf4j-api JAR包出错问题现象 解决方法可以查看一下该文件大小,报错是只有2K大小,是安装包本身有误,手工下载覆盖即可。下载地址:http://repo2.maven.org/maven2/org/slf4j/slf4j-api/1.7.12/slf4j-api-1.7.12.jar7.1.5 提示下载pom/jar包出错问题现象这类错误出现时,有明确的提示告诉用户需要什么软件包,在什么地方下载,以及如何安装; 解决方法我们只需要根据它的提示,然后使用mvn来进行安装。比如:mvn install:install-file -DgroupId=org.slf4j -DartifactId=slf4j-api -Dversion=1.7.12 -Dpackaging=jar -Dfile=slf4j-api-1.7.12.pom mvn install:install-file -DgroupId=org.apache.httpcomponents -DartifactId=httpclient -Dversion=4.4.1 -Dpackaging=jar -Dfile=httpclient-4.4.1.jar标黄部分就是需要手工下载的文件7.1.6 提示Bundler包出错问题现象 解决方法一般情况,生成插件包支持JAVA,Python即可满足大部分情况,这个报错出现是因为在编译脚本默认所有语言的插件的生成,我们可以编加编译脚本,将不必要的编译注释掉。修改的文件目录:/home/hello/thrift-0.10.0/lib/Makefile修改内容如下图:
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签