源码python打包成deb

@ Author: lebhoryi@gmail.com

@ Date: 2021/10/28

0x01 背景故事

Ubuntu 20.04 系统,默认存在 Python38.

需要在系统中安装另一个版本的 Python:Python35。

已经存在 Python3 的情况下,安装另外一个 Python3.x 需要通过源码安装,(官方建议)

下载链接:https://www.python.org/downloads/release/python-354/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w6WfesyE-1635408060084)(./images/4e4eb9ddcbebd2ebf57ec46ff72851ea_1.png)]

源码安装步骤:

# 源码安装步骤
tar -xzvf Python-x.x.x.tgz
cd Python-x.x.x
./configure
make -j  # 可能需要管理员权限
make install

装了Python之后,怎么卸载?

0x02 要解决的问题

之前已经安装了 Python37,想要让系统“干净”一点,Python37 用不到,Python35 和 Python38 才是我想要的。

就遇到了一个问题:

“如何卸载源码安装的 Python37”?

网上有教程:

在安装的时候,指定路径,然后卸载的时候删除即可

./configure --prefix <PATH>

“linux, configure --prefix=/”的作用是:编译的时候用来指定程序存放路径 。

1、不指定prefix,可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc。其它的资源文件放在/usr /local/share。

2、指定prefix,直接删掉一个文件夹就够了。

那么我想要删除的话,需要重新安装一遍,然后删除,有没有更简单的方法?

有的,就是 checkinstall ,Debian 系的都支持用 checkinstall 将源码打包成 deb

0x03 将源码打包成 deb

该方法适用于一切 debian 系

使用 auto-apt 和 checkinstall

sudo apt install checkinstall auto-apt

# 如果找不到 auto-apt
wget https://mirrors.edge.kernel.org/ubuntu/pool/universe/a/auto-apt/auto-apt_0.3.24_amd64.deb
sudo dpkg -i auto-apt_0.3.24_amd64.deb
sudo apt install -f

#在源码目录中
auto-apt run ./configure
make
checkinstall

# 这样会生成一个deb包,卸载和重新安装就非常方便了

#完全卸载 (packagename具体的名字在checkintall完成之后会有提示)
sudo dpkg -r packagename
#用生成的deb包重新安装
sudo dpkg -i ***.deb

# 列出包中安装的文件位置
sudo dpkg -L packagename

# 检查是否安装成功
sudo dpkg -l | grep packagename
# 同上
sudo apt list --installed | grep packagename

0x04 其他

如何更换系统中的 python 版本?

# 查看当前的python路径
whereis python  

# 查看python软连接指向
# 一般是 /usr/bin/local/python
ll /usr/bin/local/python
# lrwxrwxrwx 1 root root 24 Oct 28 21:48 /usr/local/bin/python -> /usr/local/bin/python3.8

方法一:通过重定向软连接

# python 3.8
ln -sf /usr/local/bin/python3.8 /usr/local/bin/python
# python 3.5
ln -sf /usr/local/bin/python3.5 /usr/local/bin/python
# 查看python版本
python --version

方法二:通过 update-alternative

update-alternatives --install /usr/local/bin/python python /usr/local/bin/python3.8 2
update-alternatives --install /usr/local/bin/python python /usr/local/bin/python2.7 1
update-alternatives --list pythonxxxx
update-alternatives --config python

参考链接:

  1. linux, configure --prefix=/有什么用
  2. 怎么卸载用 make install 编译安装的软件? - Kevin Li的回答 - 知乎
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值