所以,建議的做法,就是告訴 Ubuntu 說那幾個套件不要更新它們,然後,其它的,也許就可以考慮讓 Ubuntu 自動更新或由系統管理手動更,這樣,應該會比較保險一點哩 ! 而要設定套件為不更新的方式有二種,一個是用 dpkg 指令,另一個則是使用 apt-mark 這個指令來操作,而阿舍這篇的是第二種,因為阿舍覺得用 apt-mark 好像有比較方便哩 !
apt-mark 執行後會列出已變更的套件清單 |
下面就是用 apt-mark 指令來操作套件更不更新及檢視各種狀態的的操作方式哩 !
1. 找出套件名稱
套件名稱原則和安裝時所使用的相同,但是,不一定是你記住的相同,所以,建議用下面的指令來找出完整的套件名稱哩 ! (下面以找出 mongodb 套件為例 )
$ dpkg --get-selections | grep mongodb
2. 設定為停止自動更新
使用 apt-mark 加上 hold 選項,後面跟一個或多個套件名稱就可以把它們設定為停止自動更新,另外,套件名稱也可以用 * 號來讓 apt-mark 指令自己去搜尋符合的套件名稱來變更狀態,不過,用這個方式的話,要多注意一下它執行後所列出的符合清單哩 !
# 下面這一行是設定停止更新 mongodb 和 mongodb-dev 套件
$ sudo apt-mark hold mongodb mongodb-dev
# 使用 * 號的方式
$ sudo apt-mark hold mongodb*
3. 回復為自動更新
操作方式和上述的停止自動更新相同,只是把 hold 選項改成 unhold 或 auto 選項就可以了,而 unhold 和 auto 選項的差別,主要是在 unhold 只是解除 hold 的狀態,而 auto 則是回復交由套件管理系統自動管理,但 unhold 只是單純的取消掉 hold 的狀態而已哩 !
# 回復成自動狀態
$ sudo apt-mark auto mongodb-dev
# 取消 hold 狀態
$ sudo apt-mark unhold mongodb-dev
4. 設定為不被自動移除
當套件的更新狀態被設定為 auto 時,當系統發現某個套件沒有人用到它時,就會自動把它移除,如果你不希望系統幫你自動移掉某個你想用的套件時,就可以用 manual 選項來把防止被自動移除哩 !
$ sudo apt-mark manual mongodb-dev
5. 檢視手動、停用及自動更新的套件清單
最後,可以用 showhold 和 showauto 選項來看那些套件現在是 hold 的或是 auto 的狀態哩 !
# 檢視停用自動更新清單
$ sudo apt-mark showhold
# 檢視手動移除清單
$ sudo apt-mark showmanual
# 檢視自動更新清單
$ sudo apt-mark showauto | more
依阿舍的經驗來說,操作這此變更不難,而是難在維護,因為,如果沒有做定期檢視更新狀態的話,時間一久,再加上換人沒交接清楚,就有可能會到出問題了才知道有套件永遠都沒有更新到,所以,阿舍建議,這些動作可以在做自動更新前執行,然後,完成後,再把狀態改回來,這樣會比較不會留下一個洞哩 !
推薦閱讀
- 問題沒解決嗎? 更多的 Ubuntu 教學在 這裡
- Prompt Injection: 提示詞注入安全漏洞
- 二款 Mac 無痛安裝的 Stable Diffusion 軟體
- 用 AI 寫部落格文章好不好 ?
- 沒有免費的 Midjourney 和 Colab 又不想花錢怎麼辦 ?
- 不學 Prompt 技巧也能善用 ChatGPT 的簡單方法
- 企業 AI 應用:不只是聊天機器人
- Automatic 比 Automatic1111 更好用 ? 都是 Stable Diffusion WebUI
- Stable Diffusion 的 /describe 圖生文功能
- AI 畫出讓人可怖的美圖 !
有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁
沒有留言 :
張貼留言
歡迎留言提問和討論 .... 😁