web-dev-qa-db-ja.com

カーネルディレクトリが空ですが、カーネルヘッダーがインストールされています

ホスト-Windows 7

ゲスト-CentOS

インストールしようとしていますkernel-headersのインストール中からyumを使用していますvmware-tools.10.0-229.7.2.e17.x86_64のカーネルヘッダーファイルへのパスを要求するメッセージが表示されます。

ランニング yum install kernel-headersパッケージカーネルヘッダー-3.10.0-229.7.2.e17.x86_64が既にインストールされ、最新バージョンを返しますしかし、ディレクトリ/usr/src/kernelsは空です。

カーネルヘッダーは別の場所にインストールされていますか?それとも、何か他のものをインストールするようyumに依頼する必要がありますか?

カーネルヘッダー用のvmware-toolsに提供されるパス

Searching for a valid kernel header path...
The path "" is not a valid path to the 3.10.0-229.7.2.e17.x86_64 kernel headers.
Would you like to change it? [yes]

パスを提供する/usr/include/linuxも同じ応答を返しますが、 ""を指定されたパスに置き換えます。

20
Kvothe

カーネルモジュールのビルドに必要なすべての依存関係をインストールするための正しいパッケージは、kernel-develです(詳細については、 CentOSのドキュメント を参照してください)。

ヘッダーは/usr/src/kernelsにはインストールされず、/usr/include(Cヘッダーファイルのデフォルトの場所)の下のいくつかのディレクトリにインストールされます。次を使用して、インストールしたkernel-headersパッケージの内容を一覧表示できます。

rpm -ql kernel-headers
9
mjturner

同じ問題がありました。多くのグーグルの後、このソリューションは私のために働きました。まず、インストールされているカーネルのバージョンを判別し、その正確なバージョンを使用してカーネルヘッダーパッケージをインストールします。

Sudo yum install "kernel-devel-uname-r == $(uname -r)"
25
MarkAu

CentOSバージョン7では、次に示すのはカーネルヘッダーのパスです。

/lib/modules/3.10.0-327.36.2.el7.x86_64/build/include

実行後yum install kernel-headers 2回(最新に更新)、問題が修正されました。実行中のカーネルバージョンとカーネルヘッダーバージョンが同じであることを確認してください。私のカーネルバージョンは3.10.0-327.36.2.el7.x86_64

4
Shanraj

私は同じ問題を抱えていましたが、上記の解決策は私にとってはうまくいきませんでした。それは私が使っているCentOS 7のビルドかもしれません。
これが私にとって問題を解決したものです...

カーネルヘッダーをインストールする

yum -y install kernel-devel

シンボリックリンクを設定して、VMwareツールがversion.hを見つけられるようにする

export kernel_headers=`ls -hd /usr/src/kernels/3*`
Sudo ln -s ${kernel_headers}/include/generated/uapi/linux/version.h ${kernel_headers}/include/linux/version.h
3
patrick fogarty

私はまったく同じ問題を抱えていました。

私の場合、私はkernel-dev *を削除して再度インストールする必要がありました:

yum -y remove kernel-devel*
yum -y install kernel-devel*
2
AxldenieD

Kernel-develパッケージをインストールしましたが、ヘッダーがインスタンスで実行されているものとは異なるカーネルバージョンのものであることがわかりました。問題を解決するために、私は走りました

Sudo yum upgrade

そして再起動し、それから大騒ぎせずにインストールされたvmware-tools。

2
sffc

質問に答えるために、カーネルソースは/ usr/src/kernels /にインストールされます。 kernel-develはインストールするパッケージです。

問題の解決策を提供するために、この問題の理由は、インストールされているカーネルが古く、kernel-develがリポジトリーに更新を持っていることです。そのため、kernel-develをインストールすると、新しいカーネルのソースがインストールされるため、vmware tools構成スクリプトでソースが見つかりません。 2つの可能な解決策があります。

  1. Kernelとkernel-develの両方が新しくなるようにカーネルを更新します。

    _Sudo yum upgrade_

新しいカーネルが読み込まれるように再起動してから、vmware tools構成スクリプトを実行します。

  1. カーネルの更新は常に可能であるとは限りません。その場合は、インストールされているカーネルバージョンと同じkernel-develバージョンをインストールしてください。

    Sudo yum install "kernel-devel-uname-r == $(uname -r)"
0
Gaurav

これは、Centosの新規インストールでうまくいったものです。

Sudo yum update
Sudo yum upgrade
Sudo yum install "kernel-devel-uname-r == $(uname -r)" gcc
./vmware-install.pl
0
Carsten

私はこれの回避策を見つけたと思います。

VMWareツールではなくopen-vm-toolsをインストールすることを推奨する提案を(VMWareのWebサイトでも)読んでいます。

yum install open-vm-tools

もちろん、いくつかの注意点があります。インストール後、必ず仮想マシンを再起動してください。

また、vSphereに通常表示される緑色のチェックマークの代わりに、灰色の「?」が表示されます。ただし、ツールが実行中であることを認識し、IPアドレス、実行中のOS、および「実行中(サードパーティ/独立)」の表示を表示します。

うまくいけば、これは誰かを助けるでしょう。私はこれに2日間費やしましたが、最終的にこの答えを見つけました。それは、ゲストOSとしてCentOS 7.2を使用してESXi 5.1およびvCenterを実行している私にとってはうまくいきました。

0
Eric