与包文件系统-3.2中的文件冲突

时间:2014-11-27 13:44:30

标签: linux mono centos

经过反复尝试并尝试谷歌这个问题,我一直困扰着,并且正在寻找我的伙伴们的帮助。

wiki tcadmin之后,我必须运行以下命令

wget http://www.tcadmin.com/installer/mono-2.11.4-i386.rpm
yum -y install mono-2.11.4-i386.rpm --nogpgcheck
/opt/mono-2.11.4/bin/mozroots --import --sync --quiet
/opt/mono-2.11.4/bin/mono --aot -O=all /opt/mono-2.11.4/lib/mono/2.0/mscorlib.dll
for i in /opt/mono-2.11.4/lib/mono/gac/*/*/*.dll; do /opt/mono-2.11.4/bin/mono --aot -O=all $i; done

当我到达yum部分时它失败并输出此错误。

file / from install of mono-2.11.4-bi.x86_64 conflicts with file from package filesystem-3.2-18.el7.x86_64

大多数网站和地方建议使用覆盖或强制命令,但这听起来很愚蠢,可能会导致我自己和系统出现问题。

我已经向该公司提供了一张关于此问题供应维基的公司的机票,但我还没有回复。

另一个建议是提取rpm并逐个移动文件,但这非常耗时。

使用以下内容回复了门票;

  

强制安装是安全的,因为所有文件都放在/opt/mono-2.11.4中,但是在centos 7上有一个bug会阻止tcadmin正常工作。

3 个答案:

答案 0 :(得分:6)

对于发生在这个帖子上的其他任何人,我很高兴地报告,虽然我没有遇到此错误安装mono(这是一个完整的其他过程)我在尝试安装TCAdmin时遇到了它本身,但在使用rpmrebuild修改规范后,我能够在CentOS 7上完成TCAdmin的安装。

只需安装rpmrbebuild,运行rpmrebuild -pe {packagename}.rpm,向下滚动到%files部分,然后删除任何违规目录的行(在我的情况下,' /'和' /主页'目录),保存并退出,按y,并记下结果位置。就我而言,它是/root/rpmbuild/RPMS/noarch/{packagename}.rpm

遍历该目录并运行yum -y install ./{packagename.rpm,它将毫不费力地安装。

同样也应该适用于返回与文件系统错误冲突的任何其他包。只需相应调整上述示例中的包名称即可。

*感谢尊敬的艾哈迈德·萨米尔(Ahmad Samir)用this帖子中的帖子指出了我正确的方向。

答案 1 :(得分:4)

尝试在CentOS 7上安装Fluentd代理时遇到了同样的问题:

(venv)[user@machine01 tmp]$ sudo rpm -ivh td-agent-2.1.1-0.x86_64.rpm 
warning: td-agent-2.1.1-0.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID a12e206f: NOKEY
Preparing...                          ################################# [100%]
    file /opt from install of td-agent-2.1.1-0.x86_64 conflicts with file from package filesystem-3.2-18.el7.x86_64

我不会说降级整个操作系统是解决方案。也许一个优雅的解决方法是重建.rpm文件,以避免那些正在发生冲突的文件系统。您可以通过使用rpmrebuild命令修改spec文件来完成此操作。

但是,如果您信任要安装的软件,或者您想尝试无论如何工作,那么更简单(也更快)的解决方法是强制安装rpm。这就是我做的......

(venv)[user@machine01 tmp]$ sudo rpm -ivh --force td-agent-2.1.1-0.x86_64.rpm 
warning: td-agent-2.1.1-0.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID a12e206f: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:td-agent-2.1.1-0                 ################################# [100%]
adding 'td-agent' group...
adding 'td-agent' user...
Installing default conffile...
prelink detected. Installing /etc/prelink.conf.d/td-agent-ruby.conf ...
Configure td-agent to start, when booting up the OS...

......它对我有用

(venv)[user@machine01 tmp]$ sudo systemctl start td-agent.service
(venv)[user@machine01 tmp]$ sudo systemctl status td-agent.service
td-agent.service - LSB: td-agent's init script
   Loaded: loaded (/etc/rc.d/init.d/td-agent)
   Active: active (running) since vie 2014-12-12 09:34:09 CET; 4s ago
  Process: 17178 ExecStart=/etc/rc.d/init.d/td-agent start (code=exited, status=0/SUCCESS)
...

希望有所帮助

答案 2 :(得分:1)

这是centos 7的固有问题。

回到centos 6修复它。