将补丁文件应用到ubuntu服务器

将补丁文件应用到ubuntu服务器

有人可以解释一下如何将补丁文件应用到 ubuntu 服务器内核吗?我正在尝试申请补丁文件,用于tcp_collapse_max_bytes在 ubuntu 服务器上启用 TCP 通信选项中的选项。我跟着答案并尝试应用.patch但出现同样的错误。

这是我的步骤:首先,我将目录更改为内核源文件夹:

cd /usr/src/linux-headers-5.15.0-58-generic

然后我运行命令patch -p0 ~/file.patch

但我得到了以下信息,它一直要求我输入要修补的文件

can't find file to patch at input line 44
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
...
...
File to patch: 

我认为我在错误的目录中工作,但我不确定。

答案1

我发现我必须下载源代码并修补下载的源代码。由于某种我不太清楚的原因,其中的代码/usr/src/并不是官方 Linux 的确切代码。 (可能是我的 VPS 提供商修改了它们)。我跟着这些步骤并下载代码后应用补丁,然后编译内核并安装。

因此,以下步骤对我有帮助:

  1. 从官方网站下载对应的linux内核源码,例如内核.org

  2. 解压内核并更改目录,即cd linux-5.15.**

  3. 应用补丁patch -p1 < path/to/patch/0014-add-a-sysctl-to-enable-disable-tcp_collapse-logic.patch

  4. 编译修补后的内核并安装它。根据发行版,此步骤可能略有不同,并且还需要一些依赖项。但通常涉及以下命令:

make menuconfig

make

请注意,步骤 4 可能因 Linux 发行版而异,并且可能需要安装一些其他软件包来编译和安装内核。

相关内容