ubuntu安装软件包及问题集锦apt

     以下各种问题是在docker的ubunt20.04容器中操作

1.bash: add-apt-repository: command not found

原因:add-apt-repository包未安装

解决:执行如下命令

sudo apt-get install software-properties-common python-software-properties

2.安装gcc 9

sudo apt-get update
sudo apt-get install  build-essential

该命令会安装很多软件包,其中包括gccg++make

3.安装cmake

Ubuntu16.04安装cmake3.14.5_天启的博客-CSDN博客

4.安装redis

#更新
sudo apt-get update
#安装redis
sudo apt-get install redis-server

#查看redis服务状态
ps -ef |grep redis

配置redis

1.设置redis端口

默认端口为6379,可以修改为自己想要的

2.设置密码

 3.允许远程访问

目前只允许本地访问,要允许远程连接,需要注释掉#bind 127.0.0.1::1之前的

 启动连接redis

1.启动redis 服务

终端执行redis-server

 2.连接redis

本地启动 redis-cli
远程连接(需要本地安装redis客户端) redis-cli -h host(远程ip) -p port(端口号) -a password(密码)

5.安装python3.7.12

1)下载

wget https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tar.xz

 2)解压

 tar xvJf Python-3.7.12.tar.xz

3)安装依赖

sudo apt install build-essential libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev zlib1g-dev -y

4)编译

./configure --enable-optimizations
 make&&sudo make install

此时,通过python3可以使用python

5)设置软连接

有时python默认的是python2.x,每次输入python3比较麻烦,可以更改设置

这种方式比较慢,另一种方式:

#更新
apt-get update    

#安装必要组件
apt install software-properties-common

#添加PPA存储库
add-apt-repository ppa:deadsnakes/ppa

#安装
sudo apt update
sudo apt install python3.7

6安装pip

#安装pip,会同时安装python和pip
apt-get install python3-pip

#升级
pip3 install --upgrade pip

#卸载
apt-get remove python3-pip

结果如下

要同时安装python3.7和pip3.7可以如下

apt-get update
apt install software-properties-common -y   //需要手动选择时区,可在dockerfile中设置
add-apt-repository ppa:deadsnakes/ppa -y
apt search python3.7
apt install python3.7 -y 
python3.7 -V #查看
ln -sf /usr/bin/python3.7 /usr/bin/python3   #将指定版本切换为Python3.7

#安装pip3.7
apt-get install curl -y
apt-get install vim -y  
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
apt install python3.7-distutils -y
apt-get install python3.7-dev -y 
python3.7 get-pip.py

//安装成功
 
# 安装 launchpadlib
sudo pip install launchpadlib
 
测试是否安装成功
pip3.7 --version
 
如果有遇到 C 实现的 pip 安装不了, 则需要安装。
sudo apt-get install python3.7-dev
 
 
 
##安装指定版本的python包,通过==指定
pip3.7 install pyarrow==6.0.0
 

6.1安装kafka-python,pymysql

安装kafka-python,pymysql

pip3 install kafka-python
pip3 install pymysql

6.2安装numpy

      ubuntu安装numpy可以使用如下命令

apt-get update
pip3 install numpy

    因为上述安装的是python3,若不是,则使用python-numpy

验证numpy

root@9583aba11679:/install# python3
Python 3.7.12 (default, Mar  3 2022, 12:29:54) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from numpy import *
>>> eye(4)
array([[1., 0., 0., 0.],
       [0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.]])
>>> 

      切记不可将文件名命名为numpy.py,否则运行python3 numpy.py时会出错(若numpy.py文件内使用了numpy模块)

6.3安装其他

#安装scipy
pip3 install scipy

#安装pandas
pip3 install pandas

#安装matplotlib
pip3 install matplotlib

#安装Django,此处安装的3.0.6版本,此处可以修改版本
pip3 install Django==3.0.6 -i https://pypi.tuna.tsinghua.edu.cn/simple

6.4安装pyton3.9

apt install -y wget build-essential libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev

wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
tar xzf Python-3.9.0.tgz
cd Python-3.9.0
 ./configure --enable-optimizations
make
make install

root@8400ffb964bb:/# python3
Python 3.9.0 (default, Sep  1 2022, 07:58:41)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

安装python3.9对应的pip,要使用python3.9执行get-pip.py,下述的python3已经执行python3.9

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
root@8400ffb964bb:/# pip -V
pip 22.2.2 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)

另一种方式

apt-get update
apt install software-properties-common
 
add-apt-repository ppa:deadsnakes/ppa
apt install python3.9
python3


root@0c5624fa0249:/# python3
Python 3.8.10 (default, Jun 22 2022, 20:18:18)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

删除原来的,建立软连接
rm -rf /usr/bin/python3
ln -s /usr/local/bin/python3 /usr/bin/python3

安装pip,并升级到最新版
apt-get install python3-pip -y
pip3 install --upgrade pip

关于pip与pip3

如果只安装了python2.x,则只能使用pip
如果只安装了python3.x,则pip和pip3是等价的
如果同时安装了Python2和Python3,则pip默认给Python2用,pip3指定给Python3用

7.安装boost-1.78

此处主要是获得boost-python模块,因为使用了python3.7

1)下载解压

wget https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.gz

tar xvJf boost_1_78_0.tar.gz

2)安装,进入解压后的目录

./bootstrap.sh --with-python=/usr/local/bin/python3
./bootstrap.sh --with-libraries=system,thread,python

./b2 install
./b2 cxxflags=-fPIC cflags=-fPIC --c++11

会在usr/local目录下分别生成include和lib目录

此时得到

3)安装,进入解压后的目录

./bootstrap.sh --with-python=/usr/local/bin/python3

./b2 install


./bootstrap.sh --with-python=/usr/bin/python3 --prefix=/usr/local/boost-1.78
 ./b2 install 



其中/usr/bin/python3 软连接到/usr/local/bin/python3

同样会在/usr/local目录下生成include和lib目录,和2)的include目录是一样的,此时lib目录为

编译安装libcurl

wget https://curl.se/download/curl-7.81.0.tar.gz

tar zxvf curl-7.81.0.tar.gz

cd /curl-7.81.0


./configure --prefix=/usr/local/curl-7.81.0/ --with-wolfssl

make 

make install

8.安装glibc

     由于原来的glibc太高,需要降级,ldd  --version查看glibc版本

root@9697b27b4cca:/glibc-2.17# ldd --version
ldd (Ubuntu GLIBC 2.31-0ubuntu9.2) 2.31
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

安装glibc2.17步骤如下

wget https://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz

tar xzvf glibc-2.17.tar.gz

cd glibc-2.17

mkdir build

cd build

../configure --prefix=/opt/glibc-2.17

make 

make install

9.安装neo4j

推荐第三种方式

方式1

#下载
wget https://neo4j.com/business-subscription/?edition=enterprise&release=4.4.4&flavour=unix

#解压



cd /neo4j-community-4.4.4/bin

./neo4j console

这一步会提示没有java环境,需要安装Java SDK

安装Java jdk 

sudo apt-get update
sudo apt-get -y install openjdk-11-jdk
java --version

继续操作,执行./neo4j console,结果如下

也可以使用./neo4j start这种方式启动。 

这种方式使用wget经常会失败,不方便

方式2:


#1.更新软件包
apt-get update

#2.安装一些必需软件包,将允许apt使用https链接软件包
apt install apt-transport-https ca-certificates curl software-properties-common  -y

#3.添加Neo4j包存储库的GPG密钥到系统
curl -fsSL https://debian.neo4j.com/neotechnology.gpg.key |  apt-key add -

#4.将neo4j 4.4存储库添加到系统的APT源中
add-apt-repository "deb https://debian.neo4j.com stable 4.1"

#5.安装neo4j,此步骤会同时安装java11,和cypher-shell(用来与neo4j交互)
apt install neo4j -y

这种方式安装的有点多,不方便。

方式3:

第一步:安装neo4j


#1.添加GPG
wget -O - https://debian.neo4j.com/neotechnology.gpg.key |  apt-key add -

#2.将Neo4j添加到列表中,此处可以指定要安装的neo4j版本,此处指定4.4
echo 'deb https://debian.neo4j.com stable 4.4' |  tee /etc/apt/sources.list.d/neo4j.list

#3.更新
apt-get update

#4.查看可以的4.4版本
apt list -a neo4j

#5.安装neo4j 4.4.4,输入选项6,31
apt install neo4j=1:4.4.4 -y

#6.查看neo4j版本号
neo4j --version
neo4j 4.4.4



第二步:安装java jdk

上一步会自动安装java jdk,若未安装,则手动安装

#安装java jdk
apt-get update
sudo apt-get -y install openjdk-11-jdk
java --version

第三步:启动neo4j

which neo4j

neo4j start

  结果如下:

9.1配置

        配置文件的位置在etc/neo4j/neo4j.conf


# 监听地址(四个0表示所有IP地址可以访问,默认为localhost,仅本机可以访问)
dbms.connectors.default_listen_address=0.0.0.0

# 指定http监听端口(默认为7474,在此可以指定服务器开放的端口号,例如此处的5002)
dbms.connector.http.listen_address=:5002

# 指定bolt监听端口(默认为7687,在此可以指定服务器开放的端口号,例如此处的5003)
dbms.connector.bolt.listen_address=:5003

# 指定数据库文件存储路径【默认为系统的/var/lib/neo4j/data,考虑数据存储安全,因此不建议存储到默认的系统磁盘目录下,进行自定义配置比较好】
dbms.directories.data=/var/lib/neo4j/data

# 指定默认的数据库名称【graph.db】
dbms.active_database=graph.db

1.允许远程访问

2.neo4j服务开机自启动

     neo4j没有设置为系统重新启动时启动,设置如下

9.2使用neo4j

     主要介绍命令行如何使用neo4j,提供cypher-shell与neo4j交互,默认的用户名、密码都是neo4j,首次使用需要修改密码,这里我将新密码修改为newneo4j

输入:exit退出cypher-shell 

在其他服务连接neo4j时可能报如下错误

{
  "errors" : [ {
    "code" : "Neo.ClientError.Security.Unauthorized",
    "message" : "No authentication header supplied."
  } ]
}

解决方法如下:

  1. 停止neo4j服务,并且删除data/dbms/auth,重新启动
  2. 修改neo4j.conf配置文件,取消验证机制,修改如下:
dbms.security.auth_enabled=false

10.安装elasticsearch

1)安装并启动es

#1.导入es公共GPG密钥
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch |  apt-key add -

#2.
apt-get install apt-transport-https

#2.添加es软件源
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-7.x.list

#4.更新软件源
apt-get update

#5.安装es
apt-get install elasticsearch

#6.启动es
/etc/init.d/elasticsearch start

#查看es状态
/etc/init.d/elasticsearch status

2)使用curl 验证

#终端输入curl http://localhost:9200
curl http://localhost:9200

#返回内容如下

{
  "name" : "cd4e0f85340e",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "c9VWYT4KS5Wi4gum0LcWxg",
  "version" : {
    "number" : "7.17.1",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "e5acb99f822233d62d6444ce45a4543dc1c8059a",
    "build_date" : "2022-02-23T22:20:54.153567231Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

   3)修改配置文件

4)允许远程访问

5)设置随docker容器或主机开机自启动

在安装es时会提示使用

### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
 sudo systemctl daemon-reload
 sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
 sudo systemctl start elasticsearch.service

6)安装kibana

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.17.1-linuxx86_64.tar.gz

tar -xzf kibana-7.17.1-linux-x86_64.tar.gz

cd kibana-7.17.1-linux-x86_64/

./bin/kibana  --allow-root

10.1简单使用

#1.创建索引
curl -XPOST 'localhost:9200/test'

#插入数据
curl -XPUT 'localhost:9200/student/user/1?pretty' -H 'Content-Type: application/json' -d '{"name": "wqh","gender":"male","age":"18","about":"I will carry you","interests":["cs","it"]}'

11.Ubuntu安装软件时自动选择Geographic area和Time zone

        在ubuntu安装一些软件时经常需要手动选择

     主要是因为从tzdata2018开始,系统默认采用交互方式,导致安装一些软件的过程中涉及到配置tzdata时需要手动输入。

      docker容器中解决方法如下:ubuntu20.04 

#1.设置tzdata前端类型(通过export)
export DEBIAN_FRONTEND=noninteractive

#2.安装tzdata,此时采用的默认时区为etc/utc
apt-get install -y tzdata

#3.修改时区
ln -fs /usr/share/zoneinfo/Europe/Stockholm /etc/localtime

#4.重新配置tzdata,使时区设置生效
dpkg-reconfigure -f noninteractive tzdata


#查看时区
root@cd4e0f85340e:/# date
Mon Mar 21 18:22:20 HKT 2022

      若是在dockerfile中可以使用ENV设置环境变量,在第一个RUN之前添加如下命令

DEBIAN_FRONTEND=noninteractive

然后安装tzdata的步骤和上面一样即可。

12.vim 中文乱码

 1)临时解决办法

每次打开vim后,输入

:set encoding=utf-8

2)一次性解决办法

cd ~/.vimrc

##输入如下内容
set encoding=utf-8

保存退出,再打开vim文件,可以显示中文了。

13.安装mysql

安装前准备工作

##安装前,检测是否有自带的MySQL
rpm -qa |grep mysql

##若提示rpm not found,则先安装rpm apt-get install rpm -y

##若有自带MySQL,先卸载
rpm -e mysql      //普通方式卸载
rpm -e --nodeps mysql    //强力方式卸载

1)下载

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

2)解压

tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz 

3)移动并重命名

##移动
mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/
##重命名
cd /usr/local
mv mysql-5.7.26-linux-glibc2.12-x86_64/ mysql-5.7.26

4)创建MySQL用户组和用户

##创建MySQL用户组和用户
groupadd mysql
useradd -r -g mysql mysql

5)创建MySQL数据目录并修改权限

##创建MySQL数据目录
cd /
mkdir -p data
cd data/
mkdir -p mysql

##赋予权限
chown mysql:mysql -R /data/mysql



6)配置参数

vim /etc/my.cnf

内容为
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql-5.7.26
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0


7)初始化MySQL

cd /usr/local/mysql-5.7.26/bin/
 ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql-5.7.26/ --datadir=/data/mysql/ --user=mysql --initialize

这一步可能报错./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决:
apt-get install libaio* numactl -y
重新执行上一步即可

8)查看初始密码

vim /data/mysql/mysql.err

9)启动MySQL,修改密码

../support-files/mysql.server start

这一步步需要

10)添加软连接并启动

ln -s /usr/local/mysql-5.7.26/support-files/mysql.server /etc/init.d/mysql 
ln -s /usr/local/mysql-5.7.26/bin/mysql /usr/bin/mysql
service mysql restart

查看运行情况

ps -ef |grep mysql


root@8f333be57d2c:/usr/local/mysql-5.7.26/bin# ps -ef |grep mysql
root      3974     1  0 11:28 pts/0    00:00:00 /bin/sh /usr/local/mysql-5.7.26/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/mysql.pid
mysql     4197  3974  0 11:28 pts/0    00:00:10 /usr/local/mysql-5.7.26/bin/mysqld --basedir=/usr/local/mysql-5.7.26 --datadir=/data/mysq --plugin-dir=/usr/local/mysql-5.7.26/lib/plugin --user=mysql --log-error=/data/mysql/mysql.err --pid-file=/data/mysql/mysql.pid --socket=/tmp/mysql.sock --port=3306
root      4290     1  0 12:39 pts/0    00:00:00 grep --color=auto mysql

11)启动mysql,修改密码

mysql -u root -p

可能会提示确实依赖,安装如下

apt-get install libncurses5

修改密码,输入

SET PASSWORD = PASSWORD('123456');

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

flush privileges;
root@8f333be57d2c:/usr/local/mysql-5.7.26/bin# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.7.26

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> set password=password('123456')
    -> ;
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> alter user 'root'@'localhost' password expire never;
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

现在再执行mysql -u root -p 可以输入123456进入了

12.1解决MySQL表中中文乱码或显示为问号

1)进入MySQL输入如下指令查看编码格式

show variables like 'char%';


mysql> show variables like 'char%';
+--------------------------+-----------------------------------------+
| Variable_name            | Value                                   |
+--------------------------+-----------------------------------------+
| character_set_client     | latin1                                  |
| character_set_connection | latin1                                  |
| character_set_database   | utf8                                    |
| character_set_filesystem | binary                                  |
| character_set_results    | latin1                                  |
| character_set_server     | utf8                                    |
| character_set_system     | utf8                                    |
| character_sets_dir       | /usr/local/mysql-5.7.26/share/charsets/ |
+--------------------------+-----------------------------------------+
8 rows in set (0.01 sec)

2)修改/etc/my.cnf

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql-5.7.26
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
init_connect='SET NAMES utf8'    ##新增
character_set_server=utf8     ##修改
symbolic-links=0

[mysql]
default-character-set=utf8     ##新增

3)重启mysql

service mysql restart
apt-get install libatlas-base-dev

14.编译安装OpenCV4.6

参考在Ubuntu20.04 LTS中安装OpenCV4.5.4_wanghq2013的博客-CSDN博客

1)下载4.6源码

apt-get install git -y
git clone https://github.com/opencv/opencv.git

2)安装依赖

依次安装gcc,cmake,python3---gcc9.3,cmake3.14.5,python3.7

为支持GUI , Camera (v4l)和Media (ffmpeg, gstreamer) 等,安装GTK,

apt-get install libavcodec-dev libavformat-dev libswscale-dev
apt-get install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev

为支持gtk3*

apt-get install libgtk-3-dev

可选项用于支持PNG, JPEG, JPEG2000, TIFF, WebP 等图片格式。

apt-get install libpng-dev
apt-get install libjpeg-dev
apt-get install libopenexr-dev
apt-get install libtiff-dev

3)设置安装路径

cd opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4.6 ..

或者
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4.6 -D_GLIBCXX_USE_CXX11_ABI=0 ..
该方式的目的在于关闭C++11 特性

也可以在CMakeLists.txt中设置

add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
或者
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")

4)安装

make
make install

15.编译arrow

编译CPP组件

官方文档见Building Arrow C++ — Apache Arrow v10.0.0

1)拉取指定分支

此时使用apache-arrow-9.0.0分支,更高的版本部分特性使用了C++17 

git clone --recursive https://github.com/apache/arrow.git

git checkout apache-arrow-9.0.0
cd arrow/cpp
mkdir build

2)修改CMakeLists.txt

指定使用C++14,且是以CXX11_ABI旧版本

##2.修改CMakeLists.txt
CMAKE_MINIMUM_REQUIRED(VERSION 3.16)
SET(CMAKE_CXX_STANDARD 14)
SET(CMAKE_CXX_FLAGS  "-D_GLIBCXX_USE_CXX11_ABI=0")

3)编译

需要设置一些编译选项,parquet和plasma默认不编译,若需要,则需要指定

#3.编译
cd build
cmake  -DCMAKE_INSTALL_PREFIX=/arrow/cpp/build/install  -DCMAKE_BUILD_TYPE=release -DARROW_PLASMA=ON -DARROW_PARQUET=ON -DARROW_PYTHON=ON ..
make
make isntall
    


arrow-10.0以上的版本可以使用如下命令

cmake  -DCMAKE_INSTALL_PREFIX=/arrow/cpp/build/install  -DCMAKE_BUILD_TYPE=release -DARROW_BUILD_EXAMPLES=ON -DARROW_BUILD_TESTS=ON -DARROW_PLASMA=ON -DARROW_PARQUET=ON -DARROW_CSV=ON -DARROW_BUILD_UTILITIES=ON -DARROW_FILESYSTEM=ON -DARROW_JSON=ON -DARROW_DATASET=ON ..

此时可在/arrow/cpp/build/install目录下看到include,lib,share三个目录

4)其他知识:

可选目标

  • -DARROW_BUILD_BENCHMARKS=ON:构建可执行基准。

  • -DARROW_BUILD_EXAMPLES=ON:构建使用 Arrow C++ API 的示例。

  • -DARROW_BUILD_INTEGRATION=ON:构建额外的可执行文件,用于在不同的 Arrow 实现之间练习协议互操作性。

  • -DARROW_BUILD_UTILITIES=ON:构建可执行实用程序。

  • -DARROW_BUILD_TESTS=ON:构建可执行的单元测试。

  • -DARROW_ENABLE_TIMING_TESTS=ON:如果构建单元测试,请启用那些依赖挂钟计时的单元测试(此标志在 CI 上被禁用,因为它会使测试结果不稳定)。

  • -DARROW_FUZZING=ON:构建模糊测试目标和相关的可执行文件。

可选组件

  • -DARROW_BUILD_UTILITIES=ON: 构建 Arrow 命令行实用程序
  • -DARROW_COMPUTE=ON:计算内核函数和其他支持
  • -DARROW_CSV=ON: CSV 阅读器模块
  • -DARROW_CUDA=ON:用于 GPU 开发的 CUDA 集成。取决于 NVIDIA CUDA 工具包。用于构建库的 CUDA 工具链可以使用$CUDA_HOME环境变量进行自定义。
  • -DARROW_DATASET=ON: 数据集 API,意味着文件系统 API
  • -DARROW_FILESYSTEM=ON: 用于访问本地和远程文件系统的文件系统 API
  • -DARROW_FLIGHT=ON:Arrow Flight RPC系统,至少依赖gRPC
  • -DARROW_FLIGHT_SQL=ON: 箭飞行 SQL
  • -DARROW_GANDIVA=ON: Gandiva 表达式编译器,依赖于 LLVM、Protocol Buffers 和 re2
  • -DARROW_GANDIVA_JAVA=ON: Java 的 Gandiva JNI 绑定
  • -DARROW_GCS=ON:使用 GCS 支持构建 Arrow(需要 GCloud SDK for C++)
  • -DARROW_HDFS=ON: Arrow 与 libhdfs 集成以访问 Hadoop 文件系统
  • -DARROW_JEMALLOC=ON: 构建基于 Arrow jemalloc 的分配器,默认开启
  • -DARROW_JSON=ON: JSON 阅读器模块
  • -DARROW_MIMALLOC=ON: 构建基于 Arrow mimalloc 的分配器
  • -DARROW_ORC=ON: Arrow 与 Apache ORC 的集成
  • -DARROW_PARQUET=ON: Apache Parquet 库和 Arrow 集成
  • -DPARQUET_REQUIRE_ENCRYPTION=ON: Parquet 模块化加密
  • -DARROW_PLASMA=ON: Plasma 共享内存对象存储
  • -DARROW_PLASMA_JAVA_CLIENT=ON: 为 Plasma 构建 Java 客户端
  • -DARROW_PYTHON=ON:此选项自 10.0.0 起已弃用。这将在未来的版本中删除。请改用 CMake 预设。或者,您可以直接启用ARROW_COMPUTEARROW_CSVARROW_DATASET、 ARROW_FILESYSTEMARROW_HDFSARROW_JSON
  • -DARROW_S3=ON:支持与 Amazon S3 兼容的文件系统
  • -DARROW_WITH_RE2=ON使用 re2 库构建对正则表达式的支持,默认情况下启用,并在何时ARROW_COMPUTE或是ARROW_GANDIVA时使用ON
  • -DARROW_WITH_UTF8PROC=ON: 使用 utf8proc 库构建对 Unicode 属性的支持,默认开启,并在ARROW_COMPUTEARROW_GANDIVA 时使用ON
  • -DARROW_TENSORFLOW=ON: 在启用 TensorFlow 支持的情况下构建 Arrow

ARROW中可用的压缩选项有

  • -DARROW_WITH_BROTLI=ON: 构建对 Brotli 压缩的支持
  • -DARROW_WITH_BZ2=ON: 构建对 BZ2 压缩的支持
  • -DARROW_WITH_LZ4=ON: 构建对 lz4 压缩的支持
  • -DARROW_WITH_SNAPPY=ON: 构建对 Snappy 压缩的支持
  • -DARROW_WITH_ZLIB=ON: 构建对 zlib (gzip) 压缩的支持
  • -DARROW_WITH_ZSTD=ON: 构建对 ZSTD 压缩的支持

        如果系统中安装了多个Python版本,则需要将参数传递给CMAKE,以便找到正确的可执行文件、头文件和库,如-DPython3_EXECUTABLE=<path/to/bin/python>让 CMake 选择您正在使用的 Python 可执行文件。

       对于旧版本的 CMake (<3.15),您可能需要通过-DPYTHON_EXECUTABLE 而不是-DPython3_EXECUTABLE.

编译python组件

cd arrow/python
修改CMakeLists.txt
CMAKE_MINIMUM_REQUIRED(VERSION 3.16)
SET(CMAKE_CXX_STANDARD 14)
SET(CMAKE_CXX_FLAGS  "-D_GLIBCXX_USE_CXX11_ABI=0")

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=release ..

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值