來個人類文章開頭好了,由於公司買了一台新的 GB10,為了能讓大家也跟上時代,所以架了不少服務在上面,大部份是 LLM 的,靠 OPENWEBUI 跟 Ollama,同事就可以使用了。但為了要導入 vibe coding, 選用了 aider, 但它是 python-based的,由於我們 build server 很舊了,是基於 ubuntu 18.04 的,所以需要製做 standalone 的 python 3.12,以及安裝下載 aider-chat 所需的所有套件,所以才有了此篇文章。
前言
這篇文章將教你如何使用 python-build-standalone 在舊版系統(如 Ubuntu 18.04)上快速建置一個完全獨立、可攜帶的 Python 3.12 環境,並完成 aider-chat 的離線套件準備與安裝。
下載 python 3.12
由於在舊系統上要重編 python 可能是項嚴重 dependency 的工程,有好心人士已經編了 static link 的 python 供人下載,我們可以取得 Python 3.12 Standalone 版本。請到這 python-build-standalone releases 下載選擇適合 18.04 的版本,尋找檔名包含 x86_64-unknown-linux-gnu-install_only 的檔案。這裡我們就下載 cpython-3.12.12+20251217-x86_64_v2-unknown-linux-gnu-install_only.tar.gz 。
測試運行
|
1 2 |
tar -xvf cpython-3.12.12+20251217-x86_64_v2-unknown-linux-gnu-install_only.tar.gz ./python/bin/python3 --version |
下載與安裝 aider 所需套件
|
1 2 3 4 5 |
mkdir aider_wheels ./python/bin/python3 -m pip download --only-binary=:all: --find-links=./aider_wheels \ -d ./aider_wheels aider-chat setuptools wheel ./python/bin/python3 -m pip download setuptools wheel -d ./aider_wheels ./python/bin/python3 -m pip download ollama -d ./aider_wheels |
下載完成後,就可以打包拿到另一台機器,解壓縮運行。
建立虛擬環境
將下列命令存成 setenv
|
1 2 3 4 5 |
./python/bin/python3 -m venv aider-env source aider-env/bin/activate export OLLAMA_API_BASE=http://127.0.0.1:11434 export AIDER_MODEL=ollama/qwen3-coder:30b-16k export AIDER_NO_CHECK_UPDATE=1 |
然後執行 source ./setenv 。這邊我們將OLLAMA 與 Aider 一些環境變數,也設了起來,請根據需要更改。往後要使用 aider, 也行請運行此檔。
安裝套件
接著我們將所需套件安裝進虛擬環境裡。
|
1 |
./aider-env/bin/pip install --no-index --find-links=./aider_wheels aider-chat |
設定 Ollama 參數
為避免各模型佔用太多VRAM,做了一些限制如下
|
1 2 3 4 5 6 7 |
sudo systemctl edit ollama # 加入 [Service] Environment="OLLAMA_FLASH_ATTENTION=1" Environment="OLLAMA_KV_CACHE_TYPE=q8_0" Environment="OLLAMA_KEEP_ALIVE=-1" Environment="OLLAMA_MAX_LOADED_MODELS=3" |
重啟 Ollama
|
1 |
sudo systemctl restart ollama |
開始 aider
上面的設定,就會將 aider 以及整個環境設置為
- Ollama 的服務位於 http://127.0.0.1:11434
- Ollama 使用模型 ollama/qwen3-coder:30b-16k
結語
本文就在此結束,本來是要講怎麼打包離線的新版 python,但越扯越多,希望懂的就懂,不懂的就僅限於打包了。



