看到最后Critical Reminder
我的 Magento 仪表板 v.1.7.0.2 中的通知 (2 important security patches (SUPEE-5344 and SUPEE-1533)...)
因此,我在其他 Magento 中正确下载并安装了它们(例如 1.6.0
、 1.6.1
),但在此版本中出现这些错误 1.7.0.2
[root@oc1 httpdocs]# sh PATCH_SUPEE-1533_EE_1.12.x_v1-2015-02-10-08-19-16.sh
Checking if patch can be applied/reverted successfully...
ERROR: Patch can't be applied/reverted successfully.
patching file app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php
Hunk #1 FAILED at 444.
1 out of 1 hunk FAILED -- saving rejects to file app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php.rej
patching file app/code/core/Mage/Adminhtml/controllers/DashboardController.php
Hunk #1 FAILED at 92.
1 out of 1 hunk FAILED -- saving rejects to file app/code/core/Mage/Adminhtml/controllers/DashboardController.php.rej
我正在搜索,我找到了这个 Magento patch failing to install post ,但它对我不起作用
我在 Windows、Mac 和 Linux 上下载了 .sh 文件,结果是一样的...一些想法?
最佳答案
我在本地机器上使用 Windows。服务器当然是Linux。我使用 Git 进行版本控制。
长话短说:尝试使用 dos2unix
实用程序来尝试获取 .php 文件的行尾以匹配 .sh 补丁文件。 (我认为您也可以在 .sh 文件上运行 dos2unix 或在 .sh 文件上运行 unix2dos - 使它们相同的某种组合)。
虽然我认为你的错误信息看起来和我的有点不同。实际上,您是否查看了“拒绝文件”?如果这不是行尾故障,您能想到 1.6 和 1.7 安装之间有什么不同吗? (我已经使用我在此处描述的方法修补了 1.7.0.2 和 1.9.0.1)。如果您检查 Graph.php 文件,是否有任何编辑?
以下是有关对我有用的更多信息:
我使用了 Cygwin(Gitbash 似乎在 Linux 与 Windows 文件路径中挣扎,并给出了错误 /app/etc must exist
)。此外,我必须以管理员身份运行 Cygwin 才能解决文件权限错误(这很奇怪,可能是我的设置所独有的)。
但我需要做的主要事情是运行 dos2unix
在补丁试图修复的文件上 diff
.我通过编辑 .sh 补丁文件来做到这一点,您可以在文件末尾看到这些文件具有将要更改的文件的路径。
所以我编辑了 .sh 文件,在注释 # 5. File pathes
之前的第 66 行添加了这两行。 :-
# extra steps for windows CRLF:
dos2unix app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php
dos2unix app/code/core/Mage/Adminhtml/controllers/DashboardController.php
您可能需要考虑 B 计划并手动编辑文件;没有那么多变化。
不过,补丁 5344 确实有更多更改。对于那个,我在评论
# 5. File pathes
之前添加了这些行在文件中 PATCH_SUPEE-5345_CE_1.7.0.2_v1-2015-02-10-08-11-22.sh
:-# extra steps for windows CRLF:
dos2unix lib/Varien/Db/Adapter/Pdo/Mysql.php
dos2unix app/code/core/Mage/XmlConnect/Model/Observer.php
dos2unix app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizeController.php
dos2unix app/code/core/Mage/Core/Controller/Request/Http.php
dos2unix app/code/core/Mage/Admin/Model/Observer.php
这对我有用。我阅读了一些 Stack Overflow 的答案来提出这个解决方案。似乎“补丁”命令对行尾非常敏感。您可能会尝试的另一件事是将 -w 标志添加到 diff 命令中(再次通过编辑 .sh 文件),这应该会使 diff 忽略行首和行尾的空白,但它对我不起作用。
http://unixhelp.ed.ac.uk/CGI/man-cgi?diff
作为最后一个问题,我会注意到我需要添加
patch
通过重新运行 Cygwin 命令到 Cygwin setup-x86.exe
“安装或更新”程序以添加到包含 patch
的开发包中.
关于security - 错误修补 Magento 1.7.1 Hunk #1 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29703404/