1

Linux 3.7.7 (安定) カーネルをインストールしました。私の目標は、最新の安定バージョン (3.8.2) を取得するために、3.7.7-8 から .... まで、利用可能なすべての増分パッチを適用することです。

3.7.7-8、3.7.8-9、3.7.9-10 をダウンロードして適用しました。kernel.org で入手できる次の増分パッチは 3.8.1-2 です。3.8.1-2 を (最新のインストール済みバージョン、つまり 3.7.10 の上に) 適用しようとすると、「リバースされた (または以前に適用された) パッチが検出されました!」というメッセージがほとんど表示されません。メッセージ、私は魔法のように適用されるはずでしたが.

3.8.0パッチが適用されていなかったために発生したと思いました。しかし、kernel.org には 3.8.0 がありません (インクリメンタルでもなんでも) ので、選択の余地はありませんでした。

3.8.2 に到達する唯一の方法 (古い安定版リリースにパッチを適用して最新版に更新することによる) は、3.8.1 の安定版ソース全体をダウンロードすることでした (これは 3.7.x の後に利用できる最初で唯一のものであるため)。 3.8.2 リリースに到達するまで、すべての増分 3.8.1.x パッチを適用します。

それはそのように動作するはずですか、それとも実際には 2.6.x バージョンから始めて、最終的に最新の 3.8.2 (何でも) リリースに取得するすべての増分パッチを適用することができますか?

パッチを当てる以外に何も提案しないでください。私は教育目的でこの方法に興味があり、生き残るのに十分なだけのものを手に入れたとき、私は死んでも生きている状況にもありません。私はそれがうまくいくかどうか知りたいだけです、多分(私がこれをやったのは初めてです)私は何か間違ったことをしました(!?)

4

1 に答える 1

2

Linux バージョンは次のように動作します。

.
.
.
|
3.5
|  \- 3.5.1 - 3.5.2 - 3.5.3 - ...
|
3.6
|  \- 3.6.1 - 3.6.2 - 3.6.3 - ...
|
3.7
|  \- 3.7.1 - 3.7.2 - 3.7.3 - ...
|
3.8
|  \- 3.8.1 - 3.8.2 - 3.8.3 - ...
|
.
.
.

これは、 から3.5まで3.6に 1 つのパッチがあり、そのパッチにはパッチが含まれていない3.5.*(つまり、と3.5.*の間3.5ではなく3.6、別のブランチにある) ことを意味します。実際、torvalds Linux 自体は3.*.*パッチをまったく認識しません。バグ修正を古いカーネルにバックポートするのは他の人々であり、それらのパッチを作成するのは彼らです。

とはいえ、たとえば を持ってい3.5.2て に到達したい3.6場合は、最初に3.5.23.5.1パッチを逆に適用してから、パッチを適用する必要があります3.6

リバース (または以前に適用された) パッチを取得する理由は、まさに上で説明したとおりです。3.7との間の変更の一部は、3.8バックポートのバグ修正パッチを通じて (あなたによって) 既に適用されています3.7.*

于 2013-03-05T13:30:59.823 に答える