ubuntu之一些安裝配置的坑


前言

本博客記錄自己使用ubuntu的一些錯誤和坑。

ubuntu不支持yum下載安裝機制

  • 命令 sudo apt install yum 是可以安裝yum的,但安裝好后執行:
$ yum install gcc

報錯:

There are no enabled repos.
 Run "yum repolist all" to see the repos you have.
 You can enable repos with yum-config-manager --enable <repo>
  • ubuntu不支持yum的下載安裝機制,需要使用apt.

執行ubuntu 更新源出現錯誤:

Reading package lists… Done
E: Problem executing scripts APT::Update::Post-Invoke-Success ‘if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi’
E: Sub-process returned an error code
  • 解決辦法:
cd /tmp && mkdir asfix
cd asfix
wget https://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.deb
wget https://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.deb
sudo dpkg -i *.deb
  • 重新update后問題解決;

ubuntu安裝python3.6后pip命令錯誤

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

Could not fetch URL https:*******: There was a problem confirming the ssl certificate: 
Can't connect to HTTPS URL because the SSL module is not available. - skipping
  • 原因是缺少ssl模塊。
sudo apt install openssl
sudo apt-get install libssl-dev

# 嘗試在python交互窗口輸入
import ssl

# 如果找不到那么要重新編譯安裝python

sudo ./configure --with-ssl
sudo make
sudo make install

# 如果提示找不到ssl先不用管,依舊編譯安裝。
# 最好在安裝python版本前先安裝openssl和libssl-dev

Ubuntu更新時提示錯誤 E: Sub-process /usr/bin/dpkg returned an error code (1)

按下面操作依次執行

$ sudo su //root權限
$ sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old //現將info文件夾更名
$ sudo mkdir /var/lib/dpkg/info //再新建一個新的info文件夾

//更新
$ sudo apt-get update 
$ apt-get -f install

$ sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old 
//執行完更新操作后會在info文件夾下生成一些文件,現將這些文件全部移到info_old文件夾下

$ sudo rm -rf /var/lib/dpkg/info // delete新建的info文件夾
$ sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info //把以前的info文件夾重新改回名字

sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old
sudo mkdir /var/lib/dpkg/info
sudo apt-get update 
apt-get -f install
sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old 
sudo rm -rf /var/lib/dpkg/info
sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info

Ubuntu安裝redis是指定make test報錯:You need tcl 8.5 or newer in order to run the Redis test

# 需要更新tcl到更高的版本
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz  
sudo tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/  
cd  /usr/local/tcl8.6.1/unix/  
sudo ./configure  
sudo make  
sudo make install  

Ubuntu安裝報錯:update-rc.d: error: insserv rejected the script header

# 一般是配置文件設置死循環帶來的錯誤
先將/etc/init.d中的程序啟動文件移動到其他的位置,然后重新執行

apt install xxx

最后將啟動文件移動回/etc/init.d文件夾中

Ubuntu提示:/etc/init.d/functions: No such file or directory

functions這個腳本是給/etc/init.d里邊的文件使用的。提供了一些基礎的功能,但是Ubuntu16.04默認/etc/init.d/目錄下不帶這個文件,
其實這個文件在/lib/apparmor/目錄下,設置一個軟連接到/etc/init.d/就可以解決這個問題。

ln -s /lib/apparmor/functions /etc/init.d/functions

ubuntu其pip后出現ImportError: cannot import name main

  • 修改pip文件
將pip文件:
from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

改為:
from pip import __main__

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(__main__._main())

# 退出就可以正常使用了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM