我需要将 php7.0-cli 安装到未连接到互联网的服务器上。为此,我尝试从以下来源的包中下载并安装 php7.0-cli:
https://pkgs.org/download/php70-php-cli
但是当我执行以下命令时:
sudo rpm -Uvh /opt/lampp/htdocs/php70-php-cli-7.0.21-1.el7.remi.x86_64.rpm
它说:
error: Failed dependencies:
php70-php-common(x86-64) = 7.0.21-1.el7.remi is needed by php70-php-cli-7.0.21-1.el7.remi.x86_64
因此目前需要:
php70-php-common-7.0.21-1.el7.remi.x86_64.rpm
php70-php-json-7.0.21-1.el7.remi.x86_64.rpm
php70-runtime-1.0-5.el7.remi.x86_64.rpm
我也下载并尝试安装。问题是
php70-php-json-7.0.21-1.el7.remi.x86_64.rpm
需要
php70-php-common-7.0.21-1.el7.remi.x86_64.rpm
这又需要
php70-php-json-7.0.21-1.el7.remi.x86_64.rpm
等等。所以问题是如何在未连接到互联网的 CentOS 机器上安装 php7.0-cli?也许有一些现成的软件包已经附带了 php7.0-cli 轻松离线安装所需的所有内容?我需要手动下载所需的所有软件包吗?也许有一个完整的 php 包可以离线下载并安装到服务器?
谢谢。
答案1
将所有文件放在一个目录中,然后同时安装它们
yum install /path/php*rpm
因此依赖关系解析可以同时考虑到您想要安装的所有内容。
答案2
来自装有最新 dnf 的 Fedora26 机器。
笔记:递归在撰写本文时,选项返回 192 个包。
dnf install 'dnf-command(repoquery)' 'dnf-command(download)'
mkdir -p /tmp/repo/Packages && cd $_
PKGS=$(dnf --quiet \
--disablerepo='*' \
--enablerepo=centos \
--repofrompath centos,http://mirror.centos.org/centos/7/os/x86_64/ \
--enablerepo=remi \
--repofrompath remi,http://rpms.remirepo.net/enterprise/7/safe/x86_64/ \
repoquery \
--requires php70-php-cli \
--resolve --recursive)
dnf --disablerepo='*' \
--enablerepo=centos \
--repofrompath centos,http://mirror.centos.org/centos/7/os/x86_64/ \
--enablerepo=remi \
--repofrompath remi,http://rpms.remirepo.net/enterprise/7/safe/x86_64/ \
download \
$PKGS
dnf clean packages
cd /tmp/repo/
createrepo .
将 /tmp/repo 目录复制到 CentOS7 机器,并添加一个新的 local.repo 作为
[local]
baseurl=file:///tmp/repo/
enabled=1
gpgcheck=0