赞
踩
以下各种问题是在docker的ubunt20.04容器中操作
原因:add-apt-repository包未安装
解决:执行如下命令
sudo apt-get install software-properties-common python-software-properties
- sudo apt-get update
- sudo apt-get install build-essential
该命令会安装很多软件包,其中包括gcc
,g++
和make
。
Ubuntu16.04安装cmake3.14.5_天启的博客-CSDN博客
- #更新
- sudo apt-get update
- #安装redis
- sudo apt-get install redis-server
-
- #查看redis服务状态
- ps -ef |grep redis
-
默认端口为6379,可以修改为自己想要的
目前只允许本地访问,要允许远程连接,需要注释掉#bind 127.0.0.1::1之前的
终端执行redis-server
本地启动 redis-cli
远程连接(需要本地安装redis客户端) redis-cli -h host(远程ip) -p port(端口号) -a password(密码)
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
- #安装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
- 安装kafka-python,pymysql
-
- pip3 install kafka-python
- pip3 install pymysql
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模块)
- #安装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
- 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用
此处主要是获得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
-
由于原来的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
-
推荐第三种方式
方式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
结果如下:
配置文件的位置在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
-
neo4j没有设置为系统重新启动时启动,设置如下
主要介绍命令行如何使用neo4j,提供cypher-shell与neo4j交互,默认的用户名、密码都是neo4j,首次使用需要修改密码,这里我将新密码修改为newneo4j
输入:exit退出cypher-shell
在其他服务连接neo4j时可能报如下错误
- {
- "errors" : [ {
- "code" : "Neo.ClientError.Security.Unauthorized",
- "message" : "No authentication header supplied."
- } ]
- }
解决方法如下:
dbms.security.auth_enabled=false
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
- #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"]}'
在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的步骤和上面一样即可。
1)临时解决办法
每次打开vim后,输入
:set encoding=utf-8
2)一次性解决办法
- cd ~/.vimrc
-
- ##输入如下内容
- set encoding=utf-8
保存退出,再打开vim文件,可以显示中文了。
安装前准备工作
- ##安装前,检测是否有自带的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进入了
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
参考在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
官方文档见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_COMPUTE
、ARROW_CSV
、ARROW_DATASET
、 ARROW_FILESYSTEM
、ARROW_HDFS
和ARROW_JSON
。-DARROW_S3=ON
:支持与 Amazon S3 兼容的文件系统-DARROW_WITH_RE2=ON
使用 re2 库构建对正则表达式的支持,默认情况下启用,并在何时ARROW_COMPUTE
或是ARROW_GANDIVA
时使用ON
-DARROW_WITH_UTF8PROC=ON
: 使用 utf8proc 库构建对 Unicode 属性的支持,默认开启,并在ARROW_COMPUTE
或ARROW_GANDIVA
时使用ON
-DARROW_TENSORFLOW=ON
: 在启用 TensorFlow 支持的情况下构建 ArrowARROW中可用的压缩选项有
-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
.
- 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 ..
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。