linux切换软件版本,Linux中dpkg工具update-alternatives实现符号链接软件版本的切换(转)...

一、功能作用

update-alternatives是dpkg的实用工具,用来维护系统命令的符号链接,以决定系统默认使用什么命令。

在Debian系统中,我们可能会同时安装有很多功能类似的程序和可选配置,如Web浏览器程序(firefox,konqueror)、窗口管理器(wmaker、metacity)和鼠标的不同主题等。这样,用户在使用系统时就可进行选择,以满足自已的需求。

但对于普通用户来说,在这些程序间进行选择配置会较困难。update-alternatives工具就是为了解决这个问题,帮助用户能方便地选择自已喜欢程序和配置系统功能。

最明显的场景,比如同时安装了OpenJDK和JDK,那么在命令行上使用java时就可以通过这个命令来进行切换。

二、位置

/usr/bin/update-alternatives

三、格式用法

update-alternatives [ ...]

四、主要参数

Commands:

--install[--slave] ...在系统中加入一组替换项.--remove 从 替换组中去除 项.--remove-all 从替换系统中删除 替换组.--auto 将 的主链接切换到自动模式.--display 显示关于 替换组的信息.--query machine parseable version of --display .--list 列出 替换组中所有的可用替换项.--get-selections list master alternative names and their status.--set-selections read alternative status from standard input.--config 列出 替换组中的可选项,并就使用其中哪一个,征询用户的意见.--set 将 设置为 的替换项.--all 对所有可选项一一调用 --config 命令.

是指向 /etc/alternatives/ 的符号链接>. (e.g. /usr/bin/pager)

是该链接替换组的主控名. (e.g. pager)

是替换项目标文件的位置. (e.g. /usr/bin/less)

是一个整数,在自动模式下,这个数字越高的选项,其优先级也就越高.Options:

--altdir 指定不同的可选项目录.--admindir 指定不同的管理目录.--log 设置log文件.--force allow replacingfiles with alternative links.--skip-auto skipprompt foralternatives correctly configured

in automaticmode (relevant for --config only)--verbose 详尽的操作进行信息,更多的输出.--quiet 安静模式,输出尽可能少的信息.--help 显示本帮助信息.--version 显示版本信息.

五、应用实例

1、列出可用的候选命令

update-alternatives --list java

2、显示和修改实际指向的候选命令,

sudo update-alternatives --config java

3、配置系统上所有的候选命令

sudo update-alternatives --all

4、显示一个命令链接的所有可选命令

update-alternatives --display editor

5、将 的主链接切换到自动模式

sudo update-alternatives --auto editor

6、在系统中加入一组替换项

sudo update-alternatives --install x-cursor-theme x-cursor-theme /etc/X11/cursors/Gold.theme 70

参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误提示是因为系统已经有另一个进程正在使用 `/var/lib/dpkg/lock-frontend` 文件,导致无法进行安装操作。 在 Linux 系统,每个软件包管理器都会使用类似于 `dpkg` 或 `apt` 的工具来管理软件包的安装、更新和卸载。当你使用这些工具时,它们会锁定相关的文件,以确保在进行操作时不会发生冲突。 要解决这个问题,你可以执行以下步骤: 1. 检查是否有其他进程正在运行:首先,你可以使用 `ps aux | grep apt` 命令来查看是否有其他与 apt 相关的进程在运行。如果找到类似的进程,可以使用 `kill` 命令终止它们。例如,可以使用 `sudo killall apt` 命令来停止所有 apt 相关的进程。 2. 删除锁文件:如果没有其他进程运行,则可能是锁文件没有被正确删除。可以使用以下命令删除锁文件: ```bash sudo rm /var/lib/dpkg/lock-frontend sudo rm /var/lib/dpkg/lock ``` 3. 更新软件包缓存:最后,你可能需要更新软件包缓存以确保系统可以正确识别可用的软件包。可以使用以下命令更新软件包缓存: ```bash sudo apt update ``` 完成以上步骤后,再次尝试安装软件包,应该就不会出现该错误了。如果问题仍然存在,你可以尝试重启系统并再次尝试。 ### 回答2: 这个错误提示是因为在安装或更新软件包时,系统检测到 dpkg 已经在被其他软件或进程占用的情况下,无法获得锁定文件 /var/lib/dpkg/lock-frontend。 通常情况下,这个问题是由于另一个软件包管理器(如 apt-get、aptitude、synaptic 等)正在运行或在后台进行操作导致的。为了解决这个问题,我们可以采取以下步骤: 1. 首先,我们可以尝试关闭正在运行的软件包管理器。可以通过终端输入以下命令来查看是否有其他包管理器正在运行: ``` ps aux | grep -i apt ``` 然后查看输出结果,如果显示有其他正在运行的相关进程,可以尝试终止它们: ``` sudo kill <进程号> ``` 2. 如果没有其他软件包管理器运行的进程,我们可以检查是否存在锁定文件 /var/lib/dpkg/lock-frontend。我们可以通过以下命令来检查: ``` ls /var/lib/dpkg/lock-frontend ``` 如果文件存在,说明该文件已被锁定。我们可以尝试删除这个锁定文件: ``` sudo rm /var/lib/dpkg/lock-frontend ``` 3. 如果以上方法仍然无法解决问题,可以尝试使用如下命令进行系统修复: ``` sudo dpkg --configure -a sudo apt --fix-broken install sudo apt-get update sudo apt-get upgrade ``` 最后,当这些步骤完成后,您可以再次尝试安装软件包,应该不再出现 "could not get lock /var/lib/dpkg/lock-frontend" 的错误提示。 ### 回答3: "could not get lock /var/lib/dpkg/lock-frontend. it is" 这个错误是由于另一个进程正在使用 /var/lib/dpkg/lock-frontend 文件而导致的。 在Linux,当我们想要安装或更新软件包时,系统会锁定相关的文件,以防止多个进程同时修改它们。当你看到这个错误消息时,意味着另一个进程正在使用这个文件。 为了解决这个问题,我们可以采取以下步骤: 1. 首先,我们需要确认是否有另一个进程正在运行或占用 /var/lib/dpkg/lock-frontend 文件。我们可以通过运行以下命令来检查: ``` ps aux | grep -i apt ``` 2. 如果有结果显示,意味着有其他进程正在使用该文件。我们可以杀掉这些进程,使用以下命令: ``` sudo kill <进程ID> ``` 注意替换 `<进程ID>` 为实际的进程ID。 3. 如果没有其他进程正在运行,但是仍然出现此错误,可能是因为锁文件没有正确释放。我们可以尝试删除锁文件,然后重新运行安装命令。使用以下命令删除锁文件: ``` sudo rm /var/lib/dpkg/lock-frontend ``` 4. 最后,我们可以尝试重新运行安装命令。例如,如果我们正在使用apt工具安装软件包,我们可以再次运行命令: ``` sudo apt install <软件包名称> ``` 注意替换 `<软件包名称>` 为实际要安装的软件包的名称。 这些步骤通常可以解决该错误,并允许我们继续进行软件包的安装。如果问题仍然存在,可能需要更进一步的排查和解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值