我在 Amazon EC2 上全新安装了 CentOS 7.1。启动后我执行了:
yum update
然后我使用以下命令启用了 EPEL:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
很好。之后我尝试安装x2go
使用以下命令行:
yum -y install x2goserver-xsession
我收到很多行,底部写着:
--> Finished Dependency Resolution
Error: Package: x2goserver-4.0.1.19-3.el7.x86_64 (epel)
Requires: perl(File::Which)
Error: Package: x2goserver-4.0.1.19-3.el7.x86_64 (epel)
Requires: perl(Config::Simple)
Error: Package: x2goserver-4.0.1.19-3.el7.x86_64 (epel)
Requires: perl(Capture::Tiny)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
真正奇怪的是,在全新安装 CentOS 7.0 的 Linode 上,同样的程序完全可以正常工作。为什么 Amazon EC2 无法安装 x2go?有什么想法可以解决这个问题吗?
答案1
首先,这与 Amazon EC2 服务器和 Linode 服务器完全无关。这是一个简单但仍然很复杂的问题,即 am RPM 需要系统上未安装的依赖项。清除这些依赖项,一切就都好了。
首先,看一下返回的错误:
--> Finished Dependency Resolution
Error: Package: x2goserver-4.0.1.19-3.el7.x86_64 (epel)
Requires: perl(File::Which)
Error: Package: x2goserver-4.0.1.19-3.el7.x86_64 (epel)
Requires: perl(Config::Simple)
Error: Package: x2goserver-4.0.1.19-3.el7.x86_64 (epel)
Requires: perl(Capture::Tiny)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
问题是您只需要在主命令之前安装Requires: perl(File::Which)
,Requires: perl(Config::Simple)
和。那些是Requires: perl(Capture::Tiny)
Perl CPAN 模块。显然 RPM 不处理那些 Perl 特定的依赖项。
虽然我不熟悉x2go
,这应该适用于安装 Perl CPAN 模块。
首先,进入服务器上的主目录:
cd ~/
接下来,在你的系统上安装 Perl,如下所示:
sudo yum install perl
或者您可能需要运行此命令来安装 Perl 和 CPAN:
sudo yum install perl-SPAN
但完成后,运行cpan
像这样通过sudo
:
sudo cpan
现在为 CPAN 设置安装 YAML:
install YAML
最后,像这样安装实际的 CPAN 模块:
install File::Which Config::Simple Capture::Tiny
完成后退出:
quit
现在yum
再次运行该命令:
yum -y install x2goserver-xsession
希望一切顺利。但如果所有这些都不起作用——或者出现更多错误——这可能意味着您需要在 Amazon EC2 实例上明确使用 CentOS 7.0 操作系统。