写目录
- kali遇到“已安装的 post-installation 脚本 返回了错误的问题的解决
- kali python2 损坏的问题
- kali中python3 的pip无法下载包
- kali apt只有只能按照python3.9的pip的问题
- kali更新报错没有release的问题
kali遇到“已安装的 post-installation 脚本 返回了错误的问题的解决
直入主题两个方案
出现这个问题的话你可以理解为是软件卸载残留导致的软件无法安装问题.
在 /var/lib/dpkg/info 这目录下存放着很多软件的安装信息.基本上就是这个信息出现了问题导致了软件的安装问题.或者卸载问题.
方案一
根据提示去比如
错误提示:
已经安装 A 子进程post-installation什么什么的错误
那么直接按照提示删掉 A相关的文件
rm -rf A.*
方案二
这个很暴力
直接删除那个文件
rm -rf /var/lib/dpkg/info
然后再创建一个新的
mkdir /var/lib/dpkg/info
之后重装所有软件
apt upgrade
这个绝对可以解决问题
但是耗时较长,当然你选择重装系统也行
之后千万不要乱动配置文件,不要问为什么,不然我不会写这篇博客.
kali python2 损坏的问题
重装,基本上是版本高了
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
sudo python get-pip.py
此时注意网络良好
否则会出现这个问题 (port = 443)
不慌重新跑一下就行
之后关于pip的使用,当你重新修复后,你会发现你的pip3 似乎用不了了,原因很简单,由于某些链接的问题所以你的系统找不到它,此时你可以选则找到pip3然后创建链接,不过你也可以选择使用指令选定使用哪一个pip
python -m pip
python3 -m pip
此时你就可以这样来区分,前一个是python2 后一个是python3
关于pip镜像源的问题
见这篇文章:
关于python模块的下载方法及技巧 最后面.完成操作后,关机重启.美滋滋.
kali中python3 的pip无法下载包
问题重现:出现此类报错.
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/httpbin/
Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/httpbin/
Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/httpbin/
Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/httpbin/
Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/httpbin/
Could not fetch URL https://pypi.org/simple/httpbin/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/httpbin/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
Could not find a version that satisfies the requirement httpbin (from versions: )
No matching distribution found for httpbin
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSCon
此时基本上是要重装python3
下面依次输入下列指令(由于我的kali刚刚下线了,没有截图)
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
tar -zxvf Python-3.7.0.tgz
mkdir /usr/local/Python-3.7(这个只是安装目录,你可以不指定,默认在 /usr/bin目录下)
cd Python-3.7.0/
./configure --enable-optimizations --prefix=/usr/local/python3.7/(所有的问题就在这,这里还要加参数)
./configure --enable-optimizations --prefix=/usr/local/python3.7/ --with-ssl-default-suites=openssl (这才是正确指令)
make && make install
如果有报错,安装依赖就好了
apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev
make install
之后创建链接
ln -s -b ......这个是二进制的文件加上-b参数
之后基本上你的pip就恢复正常了.
这里我要说明的是当你的kali安装中文输入法后会安装python3.9,这个版本的python有很多的库还暂时不兼容,很容易出事,我的话是重新装了一下kali之后安装了老的工具,结果我不知道python3.9被默认安装了,python3是3.9版本而不是以前的3.7搞得我很尴尬,最后重装了几次虚拟机终于发现了这个问题,不得已自行安装python3.7 现在我的kali里面是有2.7 3.7 3.8 3.9 的python版本的
kali apt只有只能按照python3.9的pip的问题
目前的话我们的kali的apt源只有3.9版本的distutils,这意味着我们如果想要按照python3.9一下版本的pip的话是无法直接通过apt-get install python3.8-pip安装的。
同时也无法通过pip.tar来安装,或者python3 pip.py install安装.因为都需要那个玩意。
这里的话有两种方式。
方法一,我是参考了kali 中多个python3.x 使用对应的pip,解决 No module named ‘distutils.util‘ 这篇博客。但是具体操作比较复制,博主说的也不清除,而且我目前更本没有办法去添加PPA。这个看各位大佬去试试了
那么我第二种方式是。直接重新编译安装python3.9一下版本。
这个时候要注意的就是
当你切换你自己安装的那个python版本后,对应的pip也要创建链接
最后为什么我不使用3.9版本,一个原因坑,目前有很多第三方库都还不支持3.9或者说是适配没有做好。最简单的例子就是。你用pygame写一个小游戏后,用3.9的pyinstaller去打包程序根本打包不了一堆报错。但是你切换到别的版本例如3.7 完美通过
kali更新报错没有release的问题
问题描述
apt-get update指令报错
具体报错描述大致如下
E: 仓库 “https://download.docker.com/linux/debian kali-rolling Release” 没有 Release 文件。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
解决方案
进入/etc/apt/sources.list.d目录
cd /etc/apt/sources.list.d
删除后缀为.list的文件
ls
rm *.list
之后问题成功解决,此方法同样适用于Ubuntu