RHEL/AOSP8.1 Build aosp_x86_64-eng with emulator http_proxy

本文档详细介绍了如何在AOSP8.1环境下为x86_64架构构建Android系统,并在过程中设置HTTP代理。包括使用预构建的emulator进行构建,以及如何通过命令行设置代理,解决HTTP访问问题。

 

 

 

 

Refer to  原

AOSP8.1 Build aosp_x86_64-eng

https://blog.youkuaiyun.com/hushui/article/details/80882557

 

### Default

android-8.1.0_r33 with  emulator for X86_64bit

lake@localhost:~/Google/android-8.1.0_r33$ /home/lake/Google/android-8.1.0_r33/prebuilts/android-emulator/linux-x86_64/emulator  -verbose

 

######### Set proxy on command 

lake@localhost:~/Google/android-8.1.0_r33$ history  |grep  http_proxy
 4020  export  http_proxy="http://10.24.1.1:8080/" 

 

############# Note  HTTP is OK in emulator/webview.   HTTPS fails 

lake@localhost:~/Google/android-8.1.0_r33$ /home/lake/Google/android-8.1.0_r33/prebuilts/android-emulator/linux-x86_64/emulator  -verbose    -http-proxy     http://10.24.1.1:8080
emulator:Android emulator version 26.1.3.0 (build_id 4240222) (CL:365325bb96fad1ae7ca8a8961b2c78d85491a0b0)
emulator:Found ANDROID_PRODUCT_OUT: /home/lake/Google/android-8.1.0_r33/out/target/product/generic_x86_64
emulator:Found build target architecture: x86_64
emulator:argv[0]: '/home/lake/Google/android-8.1.0_r33/prebuilts/android-emulator/linux-x86_64/emulator'; program directory: '/home/lake/Google/android-8.1.0_r33/prebuilts/android-emulator/linux-x86_64'
emulator:try dir /home/lake/Google/android-8.1.0_r33/prebuilts/android-emulator/linux-x86_6

.................

setting up http proxy: proxy=10.24.1.1 port=8080
.....................


 

copying pyarrow/tests/data/parquet/v0.7.1.some-named-index.parquet -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/parquet creating build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet copying pyarrow/tests/parquet/__init__.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet copying pyarrow/tests/parquet/common.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet copying pyarrow/tests/parquet/conftest.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet copying pyarrow/tests/parquet/encryption.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet copying pyarrow/tests/parquet/test_basic.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet copying pyarrow/tests/parquet/test_compliant_nested_type.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet copying pyarrow/tests/parquet/test_data_types.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet copying pyarrow/tests/parquet/test_dataset.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet copying pyarrow/tests/parquet/test_datetime.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet copying pyarrow/tests/parquet/test_encryption.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet copying pyarrow/tests/parquet/test_metadata.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet copying pyarrow/tests/parquet/test_pandas.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet copying pyarrow/tests/parquet/test_parquet_file.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet copying pyarrow/tests/parquet/test_parquet_writer.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet running build_ext creating /tmp/pip-install-dl5m4829/pyarrow_931e5c2bca224624822e920044173860/build/temp.linux-x86_64-cpython-312 -- Running cmake for pyarrow cmake -DPYTHON_EXECUTABLE=/home/mlkj/miniconda3/envs/llm/bin/python3.12 -DPython3_EXECUTABLE=/home/mlkj/miniconda3/envs/llm/bin/python3.12 "" -DPYARROW_BUILD_CUDA=off -DPYARROW_BUILD_FLIGHT=off -DPYARROW_BUILD_GANDIVA=off -DPYARROW_BUILD_DATASET=off -DPYARROW_BUILD_ORC=off -DPYARROW_BUILD_PARQUET=off -DPYARROW_BUILD_PARQUET_ENCRYPTION=off -DPYARROW_BUILD_PLASMA=off -DPYARROW_BUILD_S3=off -DPYARROW_BUILD_HDFS=off -DPYARROW_USE_TENSORFLOW=off -DPYARROW_BUNDLE_ARROW_CPP=off -DPYARROW_BUNDLE_BOOST=off -DPYARROW_GENERATE_COVERAGE=off -DPYARROW_BOOST_USE_SHARED=on -DPYARROW_PARQUET_USE_SHARED=on -DCMAKE_BUILD_TYPE=release /tmp/pip-install-dl5m4829/pyarrow_931e5c2bca224624822e920044173860 error: command 'cmake' failed: No such file or directory [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for pyarrow Failed to build pyarrow error: failed-wheel-build-for-install × Failed to build installable wheels for some pyproject.toml based projects ╰─> pyarrow
最新发布
11-22
你遇到的这个错误: ``` error: command 'cmake' failed: No such file or directory ``` 以及 ``` Failed to build wheel for pyarrow ``` 说明:**你在用 `pip install pyarrow` 时,系统尝试从源码编译 `pyarrow`,但缺少必要的构建工具链(尤其是 `cmake`)**。 --- ## ❌ 问题本质 - `pyarrow` 是一个包含大量 C++ 扩展的库。 - 当你运行 `pip install pyarrow==8.0.0` 时,如果 **没有预编译的 wheel 匹配你的环境(Python 3.12 + Linux x86_64)**,pip 就会尝试下载源码并本地编译。 - 编译需要: - `cmake` - `C++ 编译器 (g++)` - `ninja`(可选) - `pkg-config` - 网络能访问依赖项 而你现在 **缺少 `cmake`**,所以失败了。 --- ## ✅ 正确解决方案:避免源码编译,直接安装预编译 wheel ### ✅ 方法一:使用 Conda 安装(推荐!最简单) 因为 `pyarrow` 在 `conda-forge` 中提供了完整的预编译包,不会触发编译过程。 ```bash conda install -c conda-forge pyarrow=8.0.0 ``` ✅ 这是解决该问题最快、最稳定的方式! > ✔️ 不需要 cmake > ✔️ 不需要 g++ > ✔️ 不会报错 > ✔️ 安装速度快 --- ### ✅ 方法二:使用 pip + 指定平台兼容的预编译 wheel(不推荐用于 Python 3.12) 如果你坚持用 `pip`,可以尝试: ```bash pip install --only-binary=all pyarrow==8.0.0 ``` 这表示:“只安装二进制 wheel,绝不从源码构建”。 但如果找不到匹配你环境的 wheel(比如 Python 3.12 太新),仍然会失败。 > 💡 目前(2025 年初)对 Python 3.12 的 `pyarrow==8.0.0` 预编译支持有限,容易 fallback 到源码构建。 --- ### ✅ 方法三:先安装构建依赖,再尝试编译(复杂,仅限无法用 Conda 时) 如果你必须用 pip 且不能跳过编译,请先安装系统依赖: #### Ubuntu/Debian: ```bash sudo apt update sudo apt install -y cmake g++ pkg-config libboost-dev libarrow-dev ``` #### CentOS/RHEL/Fedora: ```bash sudo yum install -y cmake gcc-c++ pkgconfig boost-devel arrow-devel # 或 Fedora: # sudo dnf install cmake gcc-c++ pkgconfig boost-devel arrow-devel ``` #### 然后重试安装: ```bash pip install pyarrow==8.0.0 ``` 但这依然可能失败,因为 `libarrow-dev` 版本需与 pyarrow 匹配。 --- ## 🚫 为什么不建议在生产中从源码编译 pyarrow? | 问题 | 说明 | |------|------| | 耗时长 | 编译可能持续 10~30 分钟 | | 内存高 | 峰值内存 >4GB,小内存机器会 OOM | | 失败率高 | 依赖版本冲突、网络中断等 | | 不稳定 | 构建参数不对会导致运行时崩溃 | 👉 所以:**永远优先选择预编译方式** --- ## ✅ 推荐完整流程(基于 Conda) ```bash # 1. 卸载之前失败的 pyarrow(部分安装残留) pip uninstall pyarrow -y # 2. 使用 conda 安装指定版本 conda install -c conda-forge pyarrow=8.0.0 # 3. 验证安装成功 python -c "import pyarrow as pa; print(pa.__version__)" ``` 输出应为: ``` 8.0.0 ``` --- ## ✅ 接着安装 datasets(不再报错) ```bash pip install "datasets==2.13.1" ``` 此时 `datasets` 会使用已安装的 `pyarrow`,不会再尝试编译。 --- ## ✅ 最终验证脚本 ```python # test_arrow.py import pyarrow as pa from datasets import Dataset print("PyArrow version:", pa.__version__) ds = Dataset.from_dict({"text": ["hello", "world"]}) print("Dataset:", ds) ``` 运行: ```bash python test_arrow.py ``` 预期输出: ``` PyArrow version: 8.0.0 Dataset: Dataset({ features: ['text'], num_rows: 2 }) ``` ✅ 成功! --- ## 🔁 总结:一句话记住 > ❌ 不要用 `pip install pyarrow==x.x.x` 在无构建环境的机器上安装 > ✅ 改用:`conda install -c conda-forge pyarrow=8.0.0` > ✅ 才能避免 `cmake` 缺失导致的编译失败! ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值