pacman安装软件包时文件冲突的解决方法

arhclinux下用pacman安装docker-compose的时候,报以下错误(截取了一部分):

 

在archlinux的wiki中(见参考部分),查到问题的原因:pacman安装时发现文件冲突,也就是文件安装前已经存在了。

所以先分两步走排查原因,一种是pacman安装,另一种是非pacman安装。

如果是pacman安装的,自然是pacman依赖没做好,可以通过pacman -Qo来查询文件所属的软件包:

返回如果类似这样:

那就是pacman的问题了,明明安装过了却没记录下来,就需要往上报bug了。

但是如果是这样的:

那就是我们不知道什么时候自己安装上去的,把这个文件夹先做个备份转移走。

根据之前的错误提示,挨个排查(我的例子中就是urllib3和request),如果都是非pacman以来,就先都备份,然后重新执行pacman的安装应该就可以了。

参考:Archlinux Pacman

作者使用的pacman版本:Pacman v5.1.0 - libalpm v11.0.0

scp被.bashrc中的echo打断问题

很多人喜欢在.bashrc中输出一些东西,比如一些字符画。但是,如果我们往这台机器scp东西的时候,会发现输出了短短一行数据就结束了。

这是因为echo中断了scp,scp会使用标准输入输出来传递自己的协议数据。可以通过如下方式避免这类情况:

  • 通过检查inertactive选项,可以通过这样一个判断来检查:
  • 使用tty来检查,比如:
  • 检查$SSH_TTY的值。

如此就可以区分登录的shell类型,避开对scp的影响了。

参考:SCP doesn't work when echo in .bashrc?