Linux入职基础-5.15_系统设置(命令实例)

系统设置(命令实例)

一:命令列表

alias 定义命令别名

bind 了解有哪些按键组合与其功能

clear 清空终端屏幕

chroot 改变根目录

crontab自动化定时任务

clock 调整 RTC 时间

date 查看修改系统时间

dircolors 设置 ls 指令在显示目录或文件时所用的色彩

declare 设置/显示shell环境变量

depmod 分析可载入模块的相依性

rpm  软件包管理(详见专题)

insmod  加载模块

modprobe加载模块

lsmod  显示已载入系统的模块

rmmod  删除模块

dmesg 显示开机信息

enable 启动/关闭shell内部命令

eval重新运算求出参数的内容

export设置环境变量

kbdconfig设置键盘类型

lilo安装核心载入,开机管理程序

liloconfig  调整lilo设置的程序

set  设置各种shell选项或者列出shell变量

ntsysv图形化设置系统服务

rdate   从远程主机获取时间

resize  设置终端窗口大小

time   测试命令执行时间

setup  图形界面设置

timeconfig设置时区

ulimit  限定shell启动进程资源

unset  删除自定义变量或函数

chkconfig系统服务设置

hwclock  显示/设置硬件时钟

mkkickstart根据目前系统的设置来建立组态文件,供其他电脑在安装时使用。

unalias   删除别名

二、实例解说

 


你遇到的错误是一个典型的 **dpkg 文件冲突问题**,具体信息如下: ``` dpkg: error processing archive ...: trying to overwrite '/usr/lib/python3/dist-packages/shiboken2/__init__.py', which is also in package python3-shiboken2 5.13.0-1 ``` 和 ``` trying to overwrite '/usr/lib/python3/dist-packages/PySide2/__init__.py', which is also in package python3-pyside2 5.13.0-2 ``` --- ## 🔴 错误原因分析 ### ✅ 核心问题:**文件被多个包同时拥有(文件冲突)** Debian/Ubuntu 的包管理系统不允许一个文件被两个不同的 `.deb` 包“声称”属于它 —— 这叫 **file conflict(文件覆盖冲突)**。 你现在试图安装: - `libshiboken2-py3-5.15_5.15.2-2build2_amd64.deb` - `libpyside2-py3-5.15_5.15.2-2build2_amd64.deb` 但这些新包想写的文件(如 `/usr/lib/python3/dist-packages/shiboken2/__init__.py`)**已经被旧版本的 `python3-shiboken2` 和 `python3-pyside2` 占用**。 👉 所以 `dpkg` 拒绝覆盖,报错退出 → 导致 `E: Sub-process /usr/bin/dpkg returned an error code (1)`。 --- ## ✅ 解决方案:强制允许覆盖(使用 `--force-overwrite`) 由于这是已知的兼容性问题(从旧版 PySide2 到新版),我们可以安全地强制让新包覆盖旧文件。 ### 步骤 1:使用 `dpkg` 强制安装,并允许文件覆盖 ```bash sudo dpkg -i --force-overwrite /var/cache/apt/archives/libshiboken2-py3-5.15_5.15.2-2build2_amd64.deb sudo dpkg -i --force-overwrite /var/cache/apt/archives/libpyside2-py3-5.15_5.15.2-2build2_amd64.deb ``` > 💡 `--force-overwrite` 参数告诉 dpkg:“我知道这个文件已被其他包占用,但我仍要覆盖。” --- ### 步骤 2:修复依赖关系(非常重要) 强制安装后,APT 的依赖状态可能不一致,必须运行: ```bash sudo apt install -f ``` 这个命令会: - 自动解决缺失或中断的依赖 - 配置刚刚强制安装的包 - 移除冲突的旧包(如有必要) ✅ 大多数情况下,这会自动完成清理工作。 --- ### ✅ 完整流程总结: ```bash # 1. 强制覆盖安装有冲突的包 sudo dpkg -i --force-overwrite /var/cache/apt/archives/libshiboken2-py3-5.15_*.deb sudo dpkg -i --force-overwrite /var/cache/apt/archives/libpyside2-py3-5.15_*.deb # 2. 修复剩余依赖 sudo apt install -f ``` 完成后,你应该可以正常继续安装 ROS 或其他依赖它们的软件。 --- ## 🛠️ 可选:提前卸载旧包(更干净的方式) 如果你不介意先删除旧版本,也可以这样做: ```bash sudo apt remove python3-shiboken2 python3-pyside2 ``` 然后再安装目标包: ```bash sudo apt install libshiboken2-py3-5.15 libpyside2-py3-5.15 ``` 这样就不会出现文件冲突。 > ⚠️ 注意:`python3-pyside2` 是较老版本(5.13),而 `libpyside2-py3-5.15` 是更新的 5.15 版本。Ubuntu 22.04 (Jammy) 默认支持的是 5.15,所以升级是合理的。 --- ## 🔍 补充说明:为什么会出现这个问题? | 原因 | 说明 | |------|------| | 软件源混合使用 | 混合了不同 Ubuntu 版本的 PPA(比如从 focal 或 hirsute 加了旧源) | | 手动安装过旧包 | 曾手动 `dpkg -i` 安装过旧版 pyside2 | | ROS 或 Qt 开发环境升级 | 从 ROS Noetic(18.04)迁移过来时残留旧包 | 建议检查是否添加了不必要的第三方源: ```bash ls /etc/apt/sources.list.d/ ``` 如果有非官方 Qt 或 KDE 相关 PPA,考虑禁用: ```bash sudo add-apt-repository --remove ppa:some/unofficial-qt-ppa ``` --- ## ✅ 验证是否修复成功 ```bash # 查看新包是否正确安装 dpkg -L libshiboken2-py3-5.15 | grep __init__.py dpkg -L libpyside2-py3-5.15 | grep __init__.py # 检查 Python 是否能导 python3 -c "from PySide2.QtCore import Qt; print('OK')" ``` 输出应为无错误并打印 `OK`。 --- ## ✅ 总结 | 问题 | 解法 | |------|------| | `trying to overwrite 'xxx', which is also in package yyy` | 文件冲突 | | 原因 | 新旧版本 `.deb` 包都声明了同一个文件 | | 解决方法 | 使用 `--force-overwrite` + `apt install -f` | | 推荐流程 | 先 `dpkg -i --force-overwrite`,再 `apt install -f` | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值