# Linux 初始安裝及設定手冊 Part 3 ## 注意事項 請注意 建議搭配前面的 Part 2 服用 [Linux 初始安裝及設定手冊 Part 1 ( 說明及前置 )](https://hackmd.io/@JoeYang/HkXUyrBAel) [Linux 初始安裝及設定手冊 Part 2 ( 基礎安裝 )](https://hackmd.io/@JoeYang/S1klXnDRlx) Linux 初始安裝及設定手冊 Part 3 ( 一般開發相關 )(本篇) [Linux 初始安裝及設定手冊 Part 4 ( 容器相關開發環境 )](https://hackmd.io/@JoeYang/Sk2N6sP0el) [Linux 初始安裝及設定手冊 part 5 ( 常用工具 )](https://hackmd.io/@JoeYang/ByyMCsPCll) [Fedora install Nvidia Driver Guide](https://hackmd.io/@JoeYang/SkjToMrAxe) [Fedora install CUDA Toolkit Guide](https://hackmd.io/@JoeYang/r1m736Vk-e) [Fedora install cuDNN Guide](https://hackmd.io/@JoeYang/S13WPbBkbe) 更新時間 2025.11.06 ## 一般開發相關 ### Clang #### Ubuntu 使用以下指令安裝 ```bash sudo apt install clang ``` #### Fedora 使用以下指令安裝 ```bash sudo dnf install clang ``` --- ### VS Code #### Ubuntu ##### 透過 vscode 安裝包安裝 前往 `https://code.visualstudio.com/Download` 下載 `.deb` 接著執行以下命令 ```bash 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 ```bash #安裝必要工具並加入簽章金鑰 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` 並且加入以下內容 ```bash Types: deb URIs: https://packages.microsoft.com/repos/code Suites: stable Components: main Architectures: amd64,arm64,armhf Signed-By: /usr/share/keyrings/microsoft.gpg ``` 最後執行以下命令即可完成 ```bash 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` 接著執行以下命令 ```bash # file 為下載的檔名 sudo dnf install <file>.rpm ``` ##### 手動安裝 (Recommend) notice: 由於 Microsoft 採用「手動簽章」與特定發布流程, YUM 套件庫的更新有時可能會延遲最多 3 小時, 也就是說新版本的 VS Code 並不會立即出現在倉庫中。 安裝金鑰與設定 dnf 套件庫 ```bash 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 ```bash dnf check-update sudo dnf install code # or code-insiders ``` 如果使用 yum,改用以下指令來更新套件快取並安裝 VS Code ```bash 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 ``` 接著自動安裝 使用以下命令 ```bash curl -fsSL https://pyenv.run | bash ``` 請對每個使用者做操作 p.s 可以自動化,但我懶得寫腳本,而且怕有權限問題 2025.10.09,算了,我還是寫了,其實是直接幹別人的來修改 #### Bash 以下為單使用者安裝流程 執行以下指令來把必要設定加入 `~/.bashrc` ```bash 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` ```bash # ~/.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 # ~/.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` ```bash 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 就對了 <font color="red">記住,這邊的步驟請按照順序,不然會出問題</font> <font color="red">記住,這邊的步驟請按照順序,不然會出問題</font> <font color="red">記住,這邊的步驟請按照順序,不然會出問題</font> 首先安裝 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 ``` 接著正常安裝 使用以下指令 ```bash curl -fsSL https://pyenv.run | bash ``` 好,這個會把 pyenv 安裝在 `~/.pyenv` 這裡 請先進去看有沒有 `shim` 這個資料夾,沒有的話很好 現在,我們把這個資料夾 copy 到 `/etc/skel/` 底下 ```bash sudo cp -r .pyenv/ /etc/skel/ ``` 進去檢查一下 ```bash cd /etc/skel ls -la ``` 確定有 `.pyenv` 在 好,現在在 `/etc/skel` 底下,把 `.zshrc` 加入以下內容 這是給新的使用者建立模板用的 ```bash 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)" ``` 存檔離開 離開之後,也對自己設定變數,使用以下指令 ```bash 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,輸入 ```bash pyenv --version ``` 應該會顯示出版本 之後新建的使用者,原則都會帶有 pyenv 了 至此,結束安裝 ##### 為所有使用者安裝(共用一個環境) <font color="red">此方法極度不建議使用,除非你不會用到 virtualenv </font> <font color="red">此方法極度不建議使用,除非你不會用到 virtualenv </font> <font color="red">此方法極度不建議使用,除非你不會用到 virtualenv </font> 此方法會為所有新建的使用者安裝(原有使用者需另外設定),若是現在的使用者需額外設定 首先安裝 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` 使用以下指令安裝 ```bash curl -L https://raw.githubusercontent.com/JoeYang1412/pyenv-installer-systemwide/refs/heads/global-install/bin/pyenv-installer | sudo bash ``` 之後設定權限 因為裝在系統目錄中,可能有權限問題 因此先設定好權限,僅供群組使用 並設定 SGID,之後新建檔案即可自動套用 使用以下指令設定權限 先設定好權限以免等一下遇到一堆問題 ```bash # 建立一個名為 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 ``` 接著設定新使用者建立時,自動加入此群組 ```bash sudo nano /etc/default/useradd # 在現有存在的文件內找到以下選項並修改,不用動其他的 GROUPS=pyenv_group ``` 若是現有的使用者想要使用全域安裝的版本 可以輸入以下指令來加入 `.zshrc`,以便立即使用 ```bash 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
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up