The directory of kernel headers (version @@VMWARE@@ UTS_RELEASE) does not match

内核头文件安装
本文介绍了解决Linux内核头文件版本不匹配的问题步骤。包括确定内核版本、下载相应内核源码、配置及编译内核等,最终实现VM-wareTools的正确安装。

The directory of kernel headers (version @@VMWARE@@ UTS_RELEASE) does not match
your running kernel (version 2.6.18-128.el5xen). Even if the module were to
compile successfully, it would not load into the running kernel

此错误主要是想找Linux内核的包含头文件找不到。要解决此问题需要安装内核源代码。

1. 首先要查看内核版本号:
root@localhost ~# uname -r // 查看内核版本号或者uname –a
如果是RHEL5的话内核应该是 2.6.18-8.el5xen
2. 已经知道自己的内核是“2.6.18-8.el5xen”,可以去此网站
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.8.tar.gz 下载到符合自己系统的内核源码。
3.root@localhost ~tar zxvf linux-2.6.16.8.tar.gz -C /usr/src
将文件解压到指定目录/usr/src。
4. 进入/usr/src目录下,用root@localhost ~mv linux-2.6.18.8 linux将解压好的文件夹名“linux-2.6.18.8”改变成“linux”。
5. 进入/usr/src/linux目录下。分别运行:
make mrproper
make oldconfig
make
执行第二个命令时碰到提示一路回车就行,第三个命令如果要完全执行完的话,可能会需要几个小时,最好让它编译完毕之后,再装虚拟机工具。如果在make刚开始执行时,即使生成了version.h和utsrelease.h,若按Ctrl+C强行退出编译。在安装完VM-ware Tools后,很可能导致系统无法正常启动。
6. 编译完毕后,进入/usr/src/linux/include/linux,用root@localhost ~vi utsrelease.h (按i是插入,修改完后按Esc,然后按Shift+:,输入wq!按回车,修改完毕可以用more utsrelease.h查看是否修改成功)将里面的版本号改成2.6.18-8.el5xen
同上再修改version.h,在原来的基础上增加一行#define UTS_RELEASE "2.6.18-8.el5xen",保存退出。
7. 重新启动系统,如果不重启,在安装VM-ware Tools后可能会碰到一些问题
8. 重启后就可以正常安装VM-ware Tools了。
9. 假如要改变分辨率,运行/usr/bin/vmware-config-tools.pl即可修改。

转自http://wenwen.soso.com/z/q163741315.htm

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12378643/viewspace-619564/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12378643/viewspace-619564/

在Kotlin中使用Retrofit进行网络请求时,可以通过注解来实现拼接在接口里的参数。以下是如何使用@Headers、@GET和@Path注解来实现这一功能的示例: 首先,确保你已经在项目中添加了Retrofit的依赖: ```groovy implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' ``` 然后,定义一个接口来描述你的API请求: ```kotlin import retrofit2.http.GET import retrofit2.http.Headers import retrofit2.http.Path interface ApiService { @Headers("Cache-Control: no-cache") @GET("users/{user}/repos") suspend fun listRepos(@Path("user") user: String): List<Repo> } ``` 在这个接口中: - `@Headers("Cache-Control: no-cache")` 用于添加请求头。 - `@GET("users/{user}/repos")` 定义了一个GET请求,`{user}` 是一个占位符。 - `@Path("user")` 用于将方法的参数值绑定到请求路径中的 `{user}` 位置。 接下来,创建一个Retrofit实例并使用这个接口: ```kotlin import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory val retrofit = Retrofit.Builder() .baseUrl("https://api.github.com/") .addConverterFactory(GsonConverterFactory.create()) .build() val apiService = retrofit.create(ApiService::class.java) fun main() { // 假设我们在协程中调用 runBlocking { val repos = apiService.listRepos("octocat") repos.forEach { repo -> println(repo.name) } } } ``` 在这个示例中: - `Retrofit.Builder()` 用于创建一个Retrofit实例。 - `baseUrl("https://api.github.com/")` 设置了基础URL。 - `addConverterFactory(GsonConverterFactory.create())` 添加了Gson转换器,用于将JSON响应转换为Kotlin对象。 - `apiService.listRepos("octocat")` 调用了我们在接口中定义的方法,并传递了参数 `"octocat"`。 这样,你就可以使用@Headers、@GET和@Path注解来实现拼接在接口里的参数了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值