近期在準備日常辦公環境時遇到了一些問題,咋一看這些問題都很基礎,最後的具體解決方式也很瑣碎,但預感到其會是某一類問題(應該是版本相容類問題)的通用靈感來源因此將其歸類整理起來。
問題1:centos 6安裝python3.12版本遇到ssl不生效的問題
在使用python時我一般比較喜歡較新的版本,而python2.7才是很多老版本centos自帶的,因此我在官網直接下載了python3.12的原始碼tarball,解壓之後根據README.md直接梭哈安裝:
./configure && make && make install
然後問題就來了,突然發現 python3 -m pip install 時有ssl相關的報錯,大約是:ssl module is not available 類似的報錯。
很詫異,以往安裝從未出現此類問題,於是./configure help了一下發現有個--with-openssl的option可以指定openssl的bin檔案,加上再來一遍問題依舊。
於是搜尋之,chatgpt和stackoverflow基本沒有找到可用答覆,只是額外發現了另一個明顯的問題標誌:import ssl會報 _ssl包不存在/不可用 這樣的錯誤。
當天擱置之,第二天早上醒來感覺可能是版本問題,於是換了幾個版本進行重試,最終確定降到3.6.5的版本安裝是比較順利的,且configure時會自動編譯ssl特性無需指定。
這個問題的本質還是因為隨著python版本的不斷髮展,一些較低版本的作業系統上其自帶的依賴包已經不好相容新版的python,未來處理此類問題會注意。
問題2:centos 6安裝tmux遇到依賴包不足的問題,主要是libevent
tmux一款linux平臺下很好用的會話維護工具,當你要執行耗時較久的命令卻又擔心由於網路波動、會話超時、會話長時間無主動訊號等因素導致會話中斷任務失敗時,tmux可以很好的解決此類問題。
但是在centos 6安裝此工具時卻發現相應的依賴包無法下載,嘗試更新yum repo卻發現國內大多數的rpm映象站已經遵循centos社群的倡議去除了centos 6版本的repo支援,因此直接yum install tmux的路有點難走,懶得去找合適的yum源了。
接下來到tmux的github裡查詢其他安裝方式,很幸運的是tmux專案裡提供了編譯安裝的辦法。
首先tmux的README裡說明了tmux的核心依賴包只有2個:libevent 2.x和 ncurses,看了下centos 6自帶的是libevent 1.x,ncurses沒版本要求倒是不用管了。
libevent 2.x的安裝同樣面臨yum源失效的問題,於是現在tmux的安裝變為了:編譯安裝libevent 2.x => 編譯安裝tmux
繼續遵循tmux的安裝文件進行libevent 2.x的編譯安裝,先去https://libevent.org/下了一個2.x的安裝包,然後遵循其README執行configure make一把梭哈安裝完畢。
然後回頭編譯安裝tmux一路暢通。
但是使用tmux時卻報了找不到libevent依賴的錯誤,很詫異;於是strace tmux的執行過程,發現他找的幾個libevent路徑都不是libevent 2.x實際安裝的路徑,雖然編譯安裝時找對了但是執行tmux時沒找到。
於是使用find命令找到libevent-2.x.so的實際檔案,做了個軟連線到tmux啟動實際查詢的lib PATH,最後總算好了。
問題3:win10安裝git後卻不能訪問gitlab的問題,提示認證演算法型別不符
本地win10系統在https://git-scm.com/download/win下載並安裝了最新的2.45版本的git,但是在訪問公司gitlab倉庫時卻遇到了ssh演算法型別不匹配的錯誤:
no matching host key type found. Their offer: ssh-rsa,ssh-dss
鬧麻了,於是ssh-keygen -t rsa重新生成了一遍秘鑰公鑰,更新了下gitlab個人賬號的ssh key配置,發現還是不行。
這次直接百度之,10s之後本著試一把的想法在.ssh里加了config檔案並配以以下內容:
Host * HostKeyAlgorithms ssh-rsa PubkeyAcceptedKeyTypes ssh-rsa
嘿,治好啦!但是我還是沒明白到底是gitlab本身的版本過低,還是我下載的git版本過高,亦或是其他網路安全問題。