注意事項
請注意
建議搭配前面的 Part 2 服用
更新時間 2025.11.06
一般開發相關
Clang
Ubuntu
使用以下指令安裝
sudo apt install clang
Fedora
使用以下指令安裝
sudo dnf install clang
VS Code
Ubuntu
透過 vscode 安裝包安裝
前往
https://code.visualstudio.com/Download
下載 .deb
接著執行以下命令
sudo apt install ./<file>.deb
# If you're on an older Linux distribution, you will need to run this instead:
# sudo dpkg -i <file>.deb
# sudo apt-get install -f # Install dependencies
手動加入 apt repo 安裝 vscode
#安裝必要工具並加入簽章金鑰
sudo apt-get install wget gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo install -D -o root -g root -m 644 microsoft.gpg /usr/share/keyrings/microsoft.gpg
rm -f microsoft.gpg
建立一個檔案檔名及路徑如下
/etc/apt/sources.list.d/vscode.sources
並且加入以下內容
Types: deb
URIs: https://packages.microsoft.com/repos/code
Suites: stable
Components: main
Architectures: amd64,arm64,armhf
Signed-By: /usr/share/keyrings/microsoft.gpg
最後執行以下命令即可完成
sudo apt install apt-transport-https
sudo apt update
sudo apt install code
# or code-insiders
Fedora
使用 .rpm 安裝包
notice:
使用此方法,vscode 將無法自動更新
前往
https://code.visualstudio.com/Download
下載 .rpm
接著執行以下命令
# file 為下載的檔名
sudo dnf install <file>.rpm
手動安裝 (Recommend)
notice:
由於 Microsoft 採用「手動簽章」與特定發布流程,
YUM 套件庫的更新有時可能會延遲最多 3 小時,
也就是說新版本的 VS Code 並不會立即出現在倉庫中。
安裝金鑰與設定 dnf 套件庫
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\nautorefresh=1\ntype=rpm-md\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/vscode.repo > /dev/null
更新套件快取並安裝 VS Code
dnf check-update
sudo dnf install code
# or code-insiders
如果使用 yum,改用以下指令來更新套件快取並安裝 VS Code
yum check-update
sudo yum install code
# or code-insiders
pyenv
首先安裝 dependency,使用以下指令安裝
sudo dnf install make gcc patch zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk8-devel libffi-devel xz-devel libuuid-devel gdbm-libs libnsl2
接著自動安裝
使用以下命令
curl -fsSL https://pyenv.run | bash
請對每個使用者做操作
p.s 可以自動化,但我懶得寫腳本,而且怕有權限問題
2025.10.09,算了,我還是寫了,其實是直接幹別人的來修改
Bash
以下為單使用者安裝流程
執行以下指令來把必要設定加入 ~/.bashrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc
如果系統上有下列檔案之一:
~/.profile
~/.bash_profile
~/.bash_login
那麼請也把同樣的三行指令加入這些檔案中。
若都沒有,就新建一個 ~/.profile
# ~/.profile
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init - bash)"' >> ~/.profile
# ~/.bash_profile
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init - bash)"' >> ~/.bash_profile
最後使用以下命令來套用設定
exec "$SHELL"
Zsh
以下為單使用者安裝流程
執行以下命令來將設定加入 ~/.zshrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init - zsh)"' >> ~/.zshrc
最後使用以下命令來套用設定
exec "$SHELL"
為所有使用者安裝(全域安裝)
這邊有兩種方法,一種是土炮方法,另一種是共用
嚴格來說,共用用到後面,在 virtualenv 的地方會爆開,雖然正常使用 python 是沒問題就是了,但總之不建議
為所有使用者安裝(自動為每個使用者單獨安裝)
這就是前面說的土炮方法
其實就是寫個東西,讓所有新建立的使用者會有一份 pyenv 就對了
記住,這邊的步驟請按照順序,不然會出問題
記住,這邊的步驟請按照順序,不然會出問題
記住,這邊的步驟請按照順序,不然會出問題
首先安裝 dependency,使用以下指令安裝
sudo dnf install make gcc patch zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk8-devel libffi-devel xz-devel libuuid-devel gdbm-libs libnsl2
接著正常安裝
使用以下指令
curl -fsSL https://pyenv.run | bash
好,這個會把 pyenv 安裝在 ~/.pyenv 這裡
請先進去看有沒有 shim 這個資料夾,沒有的話很好
現在,我們把這個資料夾 copy 到 /etc/skel/ 底下
sudo cp -r .pyenv/ /etc/skel/
進去檢查一下
cd /etc/skel
ls -la
確定有 .pyenv 在
好,現在在 /etc/skel 底下,把 .zshrc 加入以下內容
這是給新的使用者建立模板用的
cd /etc/skel
sudo nano .zshrc
# 輸入以下內容
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - zsh)"
存檔離開
離開之後,也對自己設定變數,使用以下指令
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init - zsh)"' >> ~/.zshrc
這樣就會把變數加進去自己的 shell
之後重開自己的 shell,輸入
pyenv --version
應該會顯示出版本
之後新建的使用者,原則都會帶有 pyenv 了
至此,結束安裝
為所有使用者安裝(共用一個環境)
此方法極度不建議使用,除非你不會用到 virtualenv
此方法極度不建議使用,除非你不會用到 virtualenv
此方法極度不建議使用,除非你不會用到 virtualenv
此方法會為所有新建的使用者安裝(原有使用者需另外設定),若是現在的使用者需額外設定
首先安裝 dependency,使用以下指令安裝
sudo dnf install make gcc patch zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk8-devel libffi-devel xz-devel libuuid-devel gdbm-libs libnsl2
接著使用以下指令安裝
此指令是我修改 pyenv 自帶的 pyenv-installer 來的,我已經放到 gitbub 上,直接 curl 他即可
有修改一些安裝位置之類的,有興趣可參考以下網址
https://github.com/JoeYang1412/pyenv-installer-systemwide/tree/global-install
使用以下指令安裝
curl -L https://raw.githubusercontent.com/JoeYang1412/pyenv-installer-systemwide/refs/heads/global-install/bin/pyenv-installer | sudo bash
之後設定權限
因為裝在系統目錄中,可能有權限問題
因此先設定好權限,僅供群組使用
並設定 SGID,之後新建檔案即可自動套用
使用以下指令設定權限
先設定好權限以免等一下遇到一堆問題
# 建立一個名為 pyenv_group 的新群組
sudo groupadd pyenv_group
# 將一個已經存在的使用者,加入到指定的群組中
sudo usermod -aG <群組名稱> <使用者名稱>
# 建立一個全新的使用者,並在建立的同時將他加入指定的群組。
# sudo useradd -m -G <群組名稱> <使用者名稱>
# 立即套用群組
newgrp pyenv_group
# 建立 ACL 規則
sudo setfacl -R -m g:pyenv_group:rwx /usr/local/share/pyenv
sudo setfacl -R -m d:g:pyenv_group:rwx /usr/local/share/pyenv
接著設定新使用者建立時,自動加入此群組
sudo nano /etc/default/useradd
# 在現有存在的文件內找到以下選項並修改,不用動其他的
GROUPS=pyenv_group
若是現有的使用者想要使用全域安裝的版本
可以輸入以下指令來加入 .zshrc,以便立即使用
echo 'export PYENV_ROOT="/usr/local/share/pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init - zsh)"' >> ~/.zshrc
最後輸入 exec $SHELL
之後重開終端機即可使用
接著對於之後新增的使用者預設使用 pyenv
需要設定 path 等資訊
上面的下載會將原有的 pyenv 下載到 /usr/local/share/pyenv 底下
下載完後
進入 /etc/skel/
建立 .zshrc 檔案
加入以下變數
export PYENV_ROOT="/usr/local/share/pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - zsh)"
之後新建使用者就可以直接呼叫 pyenv