here にある指示に従ってサーバーをセットアップしています。マシンにダウンロードしたパッチを適用する必要があると書かれています。私の質問は、この記事では次のコマンドを使用するように指示されていることです。
/usr/src/linux # patch -p1 < file.diff //note I replace file.diff w/ routes-2.6.36.16.diff
これは返します:
-bash: /usr/src/linux: No such file or directory
/linux #
は実際のLinuxカーネルのバージョン/ディレクトリに置き換える必要があると仮定します。次のコマンドを使用してこれを試しました。
/usr/src/linux-headers-2.6.35.22 patch -p1 < file.diff
これは同じものを返します。/usr/srcの内容を表示すると、linux-headers-2.6.35.22
とlinux-headers-2.6.35.22-generic-pae
の2つのディレクトリしかありません。カーネルにパッチを適用する正しい方法に関するガイダンスが必要です。
編集
/usr/src/linux-headers-2.6.35.22/ patch -p1 file.diff
を実行すると、-bash: /usr/src/linux-headers-2.6.35.22: is a directory
が取得されます。ここでパッチを適用する必要がある特定のファイルを見つける方法を知る必要があります...
欲求不満を避けるために、一般的にそのようなことをUbuntuの方法で行う必要があります。公式パッケージを使用した完全な手順は、次の場所にあります。
https://help.ubuntu.com/community/Kernel/Compile
依存関係のリストと、カスタムカーネルを起動して実行するための段階的なコマンドを提供します。
その手順に従うことで、カスタムカーネルを含むアンインストール可能なパッケージが作成されます。つまり、必要に応じて将来、公式のカーネルに戻すことができます。
ソースをダウンロードする必要があります。これはapt-srcを介して行うことができますが、(個人的に) kernel.org から最新のものを取得し、それを抽出し、パッチを適用します(デスクトップのようなローカルパスを使用するだけで、/usr/srcに隠してください!)そして "old fashioned way" の指示に従ってコンパイルしてください。
一部のパッチはカーネルの特定のバージョン(ポイントリリースを含む)専用であるため、20〜30分コンパイルする前にソースバージョンでパッチが機能することを確認してください。
しかし、あなたの特定の問題は、パッチを適用したいディレクトリにいる必要があるということです。あなたの場合:
cd /usr/src/linux-headers-2.6.35.22/
patch -p1 < /path/to/file.diff
明らかにパッチへのパスを変更します(または同じディレクトリに貼り付けます)。ソースファイルがルートによって所有されている場合は、Sudo
をパッチコマンドの前に付けるか、Sudo su
を実行してルートにします。
以下の手順は、コマンドラインプロンプト/usr/src/linux #
を示しています。これは、コマンドの一部として入力するものではありません。パッチを適用する入力コマンドは、patch
で始まり、そこから継続します。