kdir: 无法创建目录 "/usr/local/nginx": 权限不够
时间: 2023-09-20 18:11:26 浏览: 167
这个错误表示您没有足够的权限在`/usr/local/nginx`目录下创建目录。在Linux系统中,只有管理员或具有足够权限的用户才能在系统的根目录下进行操作。
您可以尝试以下解决方案:
1. 使用管理员权限运行命令:在命令前添加`sudo`以获取管理员权限,然后输入管理员密码。例如:`sudo mkdir /usr/local/nginx`
2. 使用具有足够权限的用户执行命令:如果您有一个具有足够权限的用户,可以使用该用户执行命令。例如:`sudo -u username mkdir /usr/local/nginx`,其中`username`是具有足够权限的用户的用户名。
请注意,对系统根目录进行更改需要谨慎操作,确保您知道自己在做什么,并且有正确的权限和许可。
相关问题
KDIR := /lib/modules/$(shell uname -r)/build
这是一个 Makefile 中的语句,用于设置内核源代码目录的路径。`$(shell uname -r)` 是一个 shell 命令,用于获取当前操作系统的内核版本号。`/lib/modules/` 是内核模块的安装目录,`build` 则是内核源代码的目录名。因此,`KDIR` 的值就是当前操作系统内核的源代码路径。这个路径在编译内核模块时会用到。
ifneq ($(KERNELRELEASE),) obj-m:=DriverFramework.o else KDIR := /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) all: make -C $(KDIR) M=$(PWD) modules clean: make -C $(KDIR) M=$(PWD) clean endif
这段代码是什么意思呢?
这是一个 Makefile 文件,用于编译 Linux 内核模块。
第一行的 ifneq 表示如果 KERNELRELEASE 变量已经定义了,就执行下面的 obj-m 命令,否则执行下面的 KDIR 和 PWD 命令。
如果 KERNELRELEASE 已经定义了,说明这个 Makefile 是被内核源码树中的 Makefile 调用的,这时候要编译内核模块,所以要执行 obj-m 命令来生成目标文件。
如果 KERNELRELEASE 没有被定义,说明这个 Makefile 是被用户手动调用的,这时候要编译内核模块,所以要执行 KDIR 和 PWD 命令来设置内核源码树的路径和当前路径。然后执行 make 命令来编译内核模块。
最后,如果用户执行了 make clean 命令,就会执行 make 命令中的 clean 命令来清除编译生成的文件。
阅读全文