Linux 软件多版本管理问题:Fedora 29 使用 SCL (Software Collections);Ubuntu 使用 update-alternatives;

在社区中SCL 由Centos 项目进行维护,所以我们使用CentOS 7 SCL源。CentOS SCL中提供了devtoolset-7-gcc-c++,版本正好为 gcc version 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC) 

首先需要下载CentOS 7 SCL源CentOS-SCL-el7.tar.gz,这里提供百度云Google Drive的地址。

下载后解压,将其中的repo文件和key文件复制到/etc/目录下:

sudo cp ./etc/* /etc -rf  

安装devtoolset-7-gcc-c++:

sudo dnf install devtoolset-7-gcc-c++ 

安装完毕后,若要在当前控制台使用gcc 7.3,使用命令:

scl enable devtoolset-7 bash
更多关于scl的用法,可以参考 scl -help。若系统没有安装scl,使用  sudo dnf install scl即可

参考链接:

https://blog.csdn.net/u010158659/article/details/53608285

http://blog.51cto.com/hashlinux/1772066

https://www.softwarecollections.org/en/docs/

https://www.softwarecollections.org/en/scls/rhscl/devtoolset-7/

http://mirror.centos.org/centos/7/sclo/x86_64/rh/

## 2023年03月05日22:53:23 简记:

- Ubuntu 中多使用 update-alternatives 工具管理多版本软件;具体原理还没有了解,在这里简记一下;

- 个人实验过程中,还是使用重编译软件和环境变量进行管理;防止自己的环境被他人影响和影响他人的环境;

### 2023年03月05日23:13:18 原理补充:

update-alternatives 使用两层软链接来进行管理软件;但是其只是负责管理,具体安装还是依赖 apt 工具,这与 scl 的设计理念不同;scl我理解是 shell 级别的软件环境定制;

update-alternatives 系统层面的一种软件版本管理;

            /usr/bin/名称 (软链接)
                      |
                      V
  /etc/alternatives/名称  (软链接)  [每次更改就使它指向另一个程序的实际地址,并在配置文件中说明当前是自动还是手动]
                      |
                      V
                  程序实际路径

其配置文件,默认存储在;默认通过dpkg自动管理,一般还是不建议修改;我还是推荐使用环境变量单独管理软件版本。

/var/lib/dpkg/alternatives/名称

参考链接:

https://zhuanlan.zhihu.com/p/20797436

https://www.baeldung.com/linux/update-alternatives-command

https://man7.org/linux/man-pages/man1/update-alternatives.1.html

保持更新;

posted @ 2019-02-20 15:09  Michael-Xu  阅读(816)  评论(0编辑  收藏  举报