kdir: 无法创建目录 "/usr/local/nginx": 权限不够
时间: 2023-09-20 09:11:26 浏览: 83
这个错误表示您没有足够的权限在`/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` 的值就是当前操作系统内核的源代码路径。这个路径在编译内核模块时会用到。
# Makefile5.3 obj-m := hello.o PWD := $(shell pwd) KVER ?= $(shell uname -r) KDIR := /lib/modules/$(KVER)/build all: $(MAKE) -C $(KDIR) M=$(PWD) #注意这里不是空格,是tab clean: rm -rf .*.cmd *.o *.mod.c *.ko .tmp_versions *.mod *.symvers *.order
这是一个简单的Linux内核模块的Makefile文件。该Makefile文件用于编译一个名为hello的内核模块。以下是各行代码的解释:
- `obj-m := hello.o`:指定模块名为hello.o,即编译后生成的内核模块文件名为hello.ko。
- `PWD := $(shell pwd)`:获取当前工作目录。
- `KVER ?= $(shell uname -r)`:获取当前内核版本号。
- `KDIR := /lib/modules/$(KVER)/build`:指定内核源码目录。
- `all: $(MAKE) -C $(KDIR) M=$(PWD)`:编译内核模块。
- `clean: rm -rf .*.cmd *.o *.mod.c *.ko .tmp_versions *.mod *.symvers *.order`:清除编译生成的文件。
在执行`make`命令时,会调用`all`目标,执行内核模块的编译。在执行`make clean`命令时,会调用`clean`目标,清除编译生成的文件。