Arch问题收集

error: failed to commit transaction (conflicting files)

这是说无法更新一个已经存在于文件系统上的库。
每个已安装的包都提供一个 /var/lib/pacman/local/package-version/files 文件,其中包含有关此包的元数据,如果这个包出了一些问题,就会导致出现“幽灵”的出现:明明在包中找不到它的身影,却依然“存在在文件系统之中”。
可以用pacman -Qo path/to/file 命令(yay也是一样的用法,它是pacman的一个封装,pacman有的操作yay基本都有)来检查包中是否真的有那个文件,如果真的有就把bug提交吧。
当然啦,一般是没有的~
这个时候,请重命名“存在于文件系统中”的文件并重新发出更新命令。不出意外,该文件会被删除,于是库被成功更新。
或者,你也可以选择使用

sudo pacman --overwrite "*" -Syu

这个命令可以强制覆盖文件,而非一个个手动修改,可以节省不少时间和精力。


curl: (35) error:0A000126:SSL routines::unexpected eof while reading

==> ERROR: Failure while downloading [某个网址]
Aborting...

这段话的意思是你用于下载软件的网址发生了更改,包已经过期了
试一下更新 yay 获取最新的东西并避免使用过时的 URL。

yay -Syu

konsole无法输入中文

先介绍一下 /etc/profile——

这是一个与环境变量有关的文件
环境变量(environment variables) 一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等

/etc/profile
不同于.bashrc文件(只对当前用户有用),本文件设置对所有用户起作用的环境信息(是全局变量)
/etc/enviroment是系统的环境变量,而/etc/profile 是所有用户的环境变量:前者与登录用户无关,后者与登录用户有关。
系统应用程序的执行一定与系统环境有关,但不一定与用户环境有关,所以对整个系统而言先执行/etc/environment。
然而在刚登录Linux时,用户环境建立的过程中总是先执行/etc/profile,然后在读取/etc/environment。如果同一个变量在用户环境(/etc/profile)和系统环境(/etc/environment)有不同的值,则以用户环境为准。

由上面的可以推出
当shell被调用时,它从两个初始文件 (/etc/profile和$HOME/.bash_project) 读取命令。/etc/profile包含了系统变量,它由系统管理员维护,普通用户的启动信息文件($HOME/.bash_project)由各用户自己维护。
对于用户的SHELL初始化而言是先执行/etc/profile,并从 /etc/profile.d 目录的配置文件中搜集shell的设置,再读取文件/etc/environment。

我们想要在终端中输入中文就要在这个 /etc/profile中进行一些改动——
需要使用export命令将局部变量导出,注意同名的环境变量,后写入的起作用

   export PATH=$PATH:/file/to/directory

在/etc/profile中加入这些东西:

export XIM_PROGRAM=fcitx

export XIM=fcitx

export GTK_IM_MODULE=fcitx

export QT_IM_MODULE=fcitx

export XMODIFIERS="@im=fcitx"

紧接着你需要重启电脑,因为在profile文件添加或修改的内容需要注销系统才能生效。

你可能感兴趣的:(Arch问题收集)