# Ubuntu 安裝筆記 ## X86 ### 參考連結 [具體安裝](https://blog.jihongo.com/posts/2020/10/29/install-ubuntu-on-a-usb-drive/) [set nomodeset](https://www.dell.com/support/kbdoc/zh-tw/000123893/%E6%89%8B%E5%8B%95-nomodeset-%E5%85%A7%E6%A0%B8%E9%96%8B%E6%A9%9F%E8%A1%8C%E9%81%B8%E9%A0%85-linux-%E5%95%9F%E5%8B%95) [grub名詞](https://documentation.suse.com/zh-tw/sles/12-SP5/html/SLES-all/cha-grub2.html) [各種名詞解釋(nomodeset, acpi...)](https://medium.com/caesars-study-review-on-web-development/acpi-osi-linux-nomodeset%E6%98%AF%E4%BB%80%E9%BA%BC%E6%84%8F%E6%80%9D-%E5%8A%9F%E8%83%BD-42d8e2c444c3) [wsl vs virtualbox](https://medium.com/%E6%B5%A6%E5%B3%B6%E5%A4%AA%E9%83%8E%E7%9A%84%E6%B0%B4%E6%97%8F%E7%BC%B8/wsl-docker-virtual-box-on-hyper-v-ca77deebcf86) [docker安裝](https://docs.docker.com/desktop/install/ubuntu/) [docker-ce-cli](https://stackoverflow.com/questions/72299444/docker-desktop-doesnt-install-saying-docker-ce-cli-not-installable) [docker打不開!](https://stackoverflow.com/questions/75907472/docker-desktop-does-not-launch-on-ubuntu-failed-to-start-docker-desktop-service) ### 推薦做的事! #### build-essential + 安裝完後先使用以下指令讓它自動下載重要的組件,後續可以省掉很多工作! ```bash= sudo apt-get install build-essential ``` #### conda 安裝 https://www.anaconda.com/docs/getting-started/miniconda/install#linux-terminal-installer #### 雙系統時間問題 + 如果跟我一樣使用雙系統的人可能會發現每次使用完ubuntu後,跳回windows時間總會跑掉,可以用以下的指令把ubuntu的時間調到跟windows一樣 + 原因:其實是因為windows和ubuntu抓取時區跟設定時間的邏輯不一樣,導致他們兩個配合不了([參考](https://weirenxue.github.io/2021/06/17/ubuntu_windows_time/)) + Windows:取得硬體時間 (BIOS 的時間) 直接為當地時間 (Local Time)。 + Ubuntu:取得硬體時間 (BIOS 的時間) 並視之為 UTC+0,所以顯示出來的時間是硬體時間 +8 後的結果,也就是 Windows 的時間 +8。 ```bash= sudo apt-get install ntpdate # network time protocol date sudo ntpdate time.windows.com # 從微軟公司的時間伺服器取得時間 ``` <!-- #### homebrew + 習慣用mac的人(像我)可以下載homebrew在ubuntu裡面用 + 先下載build tools! ```bash= sudo apt-get install build-essential procps curl file git ``` + 再來下載本體 ```bash= /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` + 最後把它加到path讓你可以正常的在terminal使用! ```bash= test -d ~/.linuxbrew && eval "$(~/.linuxbrew/bin/brew shellenv)" test -d /home/linuxbrew/.linuxbrew && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.bashrc ``` + 測試一下! ```bash= brew install hello ``` ![圖片](https://hackmd.io/_uploads/rklM99XuA.png) --> ### 需要的可以用 #### 推薦要裝的東西 - imwheel ```bash= # 滑鼠滾輪預設超慢,推薦調快。 ".*" None, Up, Button4, 3 None, Down, Button5, 3 Control_L, Up, Control_L|Button4 Control_L, Down, Control_L|Button5 Shift_L, Up, Shift_L|Button4 Shift_L, Down, Shift_L|Button5 # ``` - pavucontrol ```bash= sudo apt install pavucontrol ``` #### docker安裝 + 可以去[docker官方](https://docs.docker.com/desktop/install/ubuntu/)安裝,基本上就是下面這樣 + 官方其實有說是這樣 + SDN docker 安裝! + ![image](https://hackmd.io/_uploads/SJBg-l1Wbx.png) + 先setup docker apt repository ```bash! # Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update ``` + 然後再去做apt-get ```bash! sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ``` + 測試安裝結果 ```bash! sudo docker run hello-world sudo docker version ``` <!-- + 首先先下載檔案本人[deb](https://desktop.docker.com/linux/main/amd64/157355/docker-desktop-amd64.deb?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64&_gl=1*1uvn7x9*_gcl_au*MjI2MjM4MzY0LjE3MjExMTM3MTI.*_ga*MTM0MzgzNTk2NC4xNzIxMTEzNzEy*_ga_XJWPQMJYHQ*MTcyMTExMzcxMS4xLjEuMTcyMTExNDU5NS4yMi4wLjA.) + 因為ubuntu 24.04的支援問題,官方說要執行下面 ```bash= sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 ``` + 接下來(記得底下那個docker-desktop那個要改成你正確的路徑!) ```bash= sudo apt-get update sudo apt-get install ./docker-desktop-<arch>.deb ``` + 理論上執行接下來這行就會動了 ```bash= systemctl --user start docker-desktop ``` + 接下來就是踩雷筆記了 + 首先我執行上面的apt-get install時遇到 ```bash= docker-desktop : Depends: docker-ce-cli but it is not installable ``` + 執行下面的指令 ```bash= sudo apt install -y ca-certificates curl gnupg lsb-release sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update -y ``` + 再執行一次install ```bash= sudo apt-get install ./docker-desktop-<arch>.deb ``` + 跳下面這個錯誤可以不用理它 ```bash= Download is performed unsandboxed as root as file docker-desktop- <version>-<arch>.deb couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) ``` + 後來執行下面這個完全沒反應 ```bash= systemctl --user start docker-desktop ``` + 可以用force-reload就解決了 ```bash= systemctl --user force-reload docker-desktop ``` + 如果還是不行可以看看[這篇](https://stackoverflow.com/questions/75907472/docker-desktop-does-not-launch-on-ubuntu-failed-to-start-docker-desktop-service) ##### 解決需要使用sudo 才能跑docker指令 - 將當前的使用者新增到 Docker 群組: 使用以下命令將你的使用者名(通常是 $USER)新增到 Docker 群組 ```bash= sudo usermod -aG docker $USER ``` - 重啟 ```bash= sudo systemctl restart docker ``` - 可以重開機或者執行下面這段直接更新權限(但你關掉這個terminal就會不見,所以建議重開機直接解決) ```bash= newgrp docker ``` - 執行這個會過沒有出現permission deny就代表對了 ```bash= docker ps ``` --> #### python venv + 若你要用到python環境,可能會遇到不能直接pip install 的問題 -> 因為現在python怕你亂裝套件導致python環境出問題,所以要求你需要使用虛擬環境架設套件 + 怎麼做? + 先安裝 ```bash= pip3 install virtualenv ``` + 首先先創建venv環境 ```bash= python3 -m venv myenv #myenv可以改成你喜歡的名字 ``` + 將你的terminal使用該環境開啟,就可以在裡面正常的使用python! ```bash= source myenv/bin/activate ``` + 若你習慣使用code runner和vscode + 點開code runner的設定,並且在setting json裡面把python的設置改為在myenv/bin裡面的python檔 + 另外你在vscode可能會看到他的lib出現波浪號 + 在vscode按下ctrl(cmd) + shift + p + 輸入 ``` Python: Select Interprete ``` + 然後一樣貼上剛剛那個python檔路徑 ## mac(arm) - https://www.youtube.com/watch?v=nUhQy5PDj2A&t=594s - 遠端連接 ```bash= ssh 使用者名稱@ip地址 ``` - 理論上他會跳出以下內容,輸入yes(因為你是初次使用這個裝置用ssh連過去) ```bash= This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? ``` - "This key is not known by any other names." - 這代表SSH客戶端沒有之前記錄過這個遠端服務器的密鑰。因為這是你第一次連接到一個新的server。 - "Are you sure you want to continue connecting (yes/no/[fingerprint])?" - 這是一個安全確認。系統在確認你是否要繼續連接, 即使這個服務器的密鑰是未知的。 - 然後你就輸入那個系統的密碼,理論上你就可以進到他的terminal(命令行介面),然後可以輸入ls去確認是不是跟你那台遠端電腦輸出的是一樣的 ```bash= ls ```