security - 错误修补 Magento 1.7.1 Hunk #1 失败

标签 security magento patch

看到最后Critical Reminder我的 Magento 仪表板 v.1.7.0.2 中的通知 (2 important security patches (SUPEE-5344 and SUPEE-1533)...)
因此,我在其他 Magento 中正确下载并安装了它们(例如 1.6.01.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/

相关文章:

android - 在 Android 中独家访问麦克风

security - 处理应用程序传输安全(kCFStreamErrorDomainSSL,-9802)

java - 哈希用户密码并检查Android中数据库中的哈希值

magento - 在 Magento 的管理产品网格中添加最终价格?

linux - 如何修改 Linux 内核以更改 uname 返回的版本字符串?

java - 过时的 com.ms.security 的等效安全功能是什么?

magento - 如何从 eav_attribute 表获取实体(例如客户)的数据以显示在客户网格中以供管理员使用

api - 调用 magento soap api 立即过期

macos - 通过替换为 NOP 来修补 CALLL 在用户空间中有效,但在内核空间中无效

image - 在 svn diff 补丁中包含图像文件