2.6-2.9绝对路径和相对路径、CD命令、创建删除目录

Linux路径与目录操作
本文介绍了Linux系统中绝对路径与相对路径的概念,并详细讲解了如何使用cd、mkdir、rmdir和rm等命令进行目录切换与管理。

2.6-2.9绝对路径和相对路径

2.6 绝对路径和相对路径

如何理解绝对路径和相对路径
  • 对于Linux而言,是以目录来组织整个结构的。最上层是根目录(/),如果一个路径是从根目录(/)开始,则这是绝对路径,比如(/usr,/usr/local)。

  • 而相对路径则是相对于当前目录的,以当前目录为基础,向下查找对应的目录。书写时直接输入对应的目录即可,表示为(usr,usr/local)。举例说明:如果当前目录在/usr下,local则表示的绝对路径为/usr/local,从/usr查找下一个为local的目录。

绝对路径是从/开始的,相对路径是从当前目录开始的

举例:如果当前我们在root里gaohanwei这个目录下查看1.txt这个文件

  • 绝对路径:ls /root/gaohanwei/1.txt

  • 相对路径:ls 1.txt

使用绝对路径的好处是不管我们当前处于哪个路径下都可以使用绝对路径找到要查看使用的目录。

pwd        查看当前处于哪个目录

2.7 CD命令

cd命令语法

cd [相对路径或绝对路径或特殊符号]

  • 说明:
    不加参数时,默认切换到用户主目录,即环境变量HOME指定的目录,如root用户的HOME变量为/root,那么cd命令不带参数时便切换到/root目录下。

  • 特殊符号:

~表示用户主目录,即HOME变量指定的目录,如root用户的主目录为/root。

-表示前一个工作目录。

..表示上级目录。

.表示当前目录。

cd命令示例

1.查看当前目录

[root@localhost ~]# pwd

/root

2.参数为绝对路径

[root@localhost ~]# cd /home  
[root@localhost home]# pwd

/home

3.不加参数,默认切换到HOME变量指定的目录

[root@localhost home]# cd 

[root@localhost ~]# pwd

/root

4.中划线,表示前一个工作目录,这里的前一个目录是/home

[root@localhost ~]# cd -

/home

[root@localhost home]# pwd

/home

5.~ 波浪线表示用户主目录,和不加参数时类似。

[root@localhost home]# cd ~    

[root@localhost ~]# pwd

/root

6.参数为相对路径,这里是相对于/root目录

[root@localhost ~]# cd ../var/spool/mail/

[root@localhost mail]# pwd

/var/spool/mail

2.8 创建和删除目录mkdir rmdir

mkdir创建目录

mkdir命令用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。

  • 功能:创建一个目录
  • 语法:mkdir [选项] dirname目录名
  • 选项:

    -Z
    设置安全上下文,当使用SELinux时有效

    -m
    <目标属性>或--mode<目标属性>建立目录的同时设置目录的权限

    -p
    可以是一个路径名称。此时若路径中的某些目录尚不存在, 加上此选项后, 系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。

    --version
    显示版本信息

举例:
  1. 建立多层文件
mkdir - p 1/2          在当前目录下创建1目录并在1目录下创建2目录

rmdir删除空目录命令
  • 功能:删除空目录

  • 语法:rmdir [选项] dirname

  • 说明:dirname表示目录名。该命令从一个目录中删除一个或多个子目录项。需要特别注意的是,一个目录被删除之前必须是空的。

  • 选项:

    p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。

    -v 显示指令执行过程

注意:子目录被删除之前应该是空目录。就是说,该目录中的所有文件必须用rm命令全部,另外,当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是被删除目录的子目录。 虽然还可以用带有-r选项的rm命令递归删除一个目录中的所有文件和该目录本身,但是这样做存在很大的危险性。

要删除的空目录列表。当删除多个空目录时,目录名之间使用空格隔开。

举例:
1. 删除一个空目录
rmdir /root/aaa               删除/root下的aaa这个空目录
2 . 删除多个空目录
rmdir /root/aaa /root/bbb     删除/root下的aaa和bbb这两个空目录
rm删除非空目录和文件命令
  • 选项:

    -i 删除前逐一询问确认。

    -f 即使原档案属性设为只读,也直接删除,无需逐一确认。

    -r 将目录及以下之文件全都逐一删除。

rmdir是删除目录命令,rm是用来删除非空的目录和文件命令

rm -rf可以删除所有目录和文件,不需要是空的,需要谨慎使用


转载于:https://blog.51cto.com/13530586/2051963

[root@yfw ~]# cd /opt/openfire [root@yfw openfire]# java -version openjdk version "1.8.0_312" OpenJDK Runtime Environment (build 1.8.0_312-b07) OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode) [root@yfw openfire]# # 应输出:openjdk version "11.0.13" ... [root@yfw openfire]# sudo find /usr -name "java" -path "*/bin/java" 2>/dev/null | grep -i java-11 /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64/bin/java [root@yfw openfire]# export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64 [root@yfw openfire]# export PATH=$JAVA_HOME/bin:$PATH [root@yfw openfire]# java -version openjdk version "11.0.13" 2021-10-19 LTS OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing) [root@yfw openfire]# javac -version javac 11.0.13 [root@yfw openfire]# echo $JAVA_HOME /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64 [root@yfw openfire]# sudo yum install -y git maven Failed to set locale, defaulting to C.UTF-8 Last metadata expiration check: 1 day, 18:59:27 ago on Wed Oct 1 12:25:44 2025. Package git-2.27.0-1.el8.x86_64 is already installed. Dependencies resolved. ========================================================================================================== Package Arch Version Repo Size ========================================================================================================== Installing: maven noarch 1:3.5.4-5.module_el8.0.0+39+6a9b6e22 AppStream 27 k Installing dependencies: aopalliance noarch 1.0-17.module_el8.0.0+39+6a9b6e22 AppStream 17 k apache-commons-cli noarch 1.4-4.module_el8.0.0+39+6a9b6e22 AppStream 74 k apache-commons-codec noarch 1.11-3.module_el8.0.0+39+6a9b6e22 AppStream 288 k apache-commons-io noarch 1:2.6-3.module_el8.0.0+39+6a9b6e22 AppStream 224 k apache-commons-lang3 noarch 3.7-3.module_el8.0.0+39+6a9b6e22 AppStream 483 k apache-commons-logging noarch 1.2-13.module_el8.0.0+39+6a9b6e22 AppStream 85 k atinject noarch 1-28.20100611svn86.module_el8.0.0+39+6a9b6e22 AppStream 20 k cdi-api noarch 1.2-8.module_el8.0.0+39+6a9b6e22 AppStream 70 k geronimo-annotation noarch 1.0-23.module_el8.0.0+39+6a9b6e22 AppStream 25 k glassfish-el-api noarch 3.0.1-0.7.b08.module_el8.0.0+39+6a9b6e22 AppStream 105 k google-guice noarch 4.1-11.module_el8.0.0+39+6a9b6e22 AppStream 471 k guava20 noarch 20.0-8.module_el8.0.0+39+6a9b6e22 AppStream 2.1 M hawtjni-runtime noarch 1.16-2.module_el8.0.0+39+6a9b6e22 AppStream 43 k httpcomponents-client noarch 4.5.5-4.module_el8.0.0+39+6a9b6e22 AppStream 718 k httpcomponents-core noarch 4.4.10-3.module_el8.0.0+39+6a9b6e22 AppStream 638 k jansi noarch 1.17.1-1.module_el8.0.0+82+8ee6c375 AppStream 79 k jansi-native x86_64 1.7-7.module_el8.0.0+39+6a9b6e22 AppStream 75 k java-1.8.0-openjdk-devel x86_64 1:1.8.0.312.b07-2.el8_5 AppStream 9.8 M javapackages-tools noarch 5.3.0-1.module_el8.0.0+11+5b8c10bd AppStream 44 k jboss-interceptors-1.2-api noarch 1.0.0-8.module_el8.0.0+39+6a9b6e22 AppStream 33 k jcl-over-slf4j noarch 1.7.25-4.module_el8.0.0+39+6a9b6e22 AppStream 32 k jsoup noarch 1.11.3-3.module_el8.0.0+39+6a9b6e22 AppStream 386 k maven-lib noarch 1:3.5.4-5.module_el8.0.0+39+6a9b6e22 AppStream 1.4 M maven-resolver-api noarch 1:1.1.1-2.module_el8.0.0+39+6a9b6e22 AppStream 138 k maven-resolver-connector-basic noarch 1:1.1.1-2.module_el8.0.0+39+6a9b6e22 AppStream 51 k maven-resolver-impl noarch 1:1.1.1-2.module_el8.0.0+39+6a9b6e22 AppStream 177 k maven-resolver-spi noarch 1:1.1.1-2.module_el8.0.0+39+6a9b6e22 AppStream 40 k maven-resolver-transport-wagon noarch 1:1.1.1-2.module_el8.0.0+39+6a9b6e22 AppStream 39 k maven-resolver-util noarch 1:1.1.1-2.module_el8.0.0+39+6a9b6e22 AppStream 148 k maven-shared-utils noarch 3.2.1-0.1.module_el8.0.0+39+6a9b6e22 AppStream 165 k maven-wagon-file noarch 3.1.0-1.module_el8.0.0+39+6a9b6e22 AppStream 26 k maven-wagon-http noarch 3.1.0-1.module_el8.0.0+39+6a9b6e22 AppStream 27 k maven-wagon-http-shared noarch 3.1.0-1.module_el8.0.0+39+6a9b6e22 AppStream 49 k maven-wagon-provider-api noarch 3.1.0-1.module_el8.0.0+39+6a9b6e22 AppStream 63 k plexus-cipher noarch 1.7-14.module_el8.0.0+39+6a9b6e22 AppStream 29 k plexus-classworlds noarch 2.5.2-9.module_el8.0.0+39+6a9b6e22 AppStream 65 k plexus-containers-component-annotations noarch 1.7.1-8.module_el8.0.0+39+6a9b6e22 AppStream 24 k plexus-interpolation noarch 1.22-9.module_el8.0.0+39+6a9b6e22 AppStream 79 k plexus-sec-dispatcher noarch 1.4-26.module_el8.0.0+39+6a9b6e22 AppStream 37 k plexus-utils noarch 3.1.0-3.module_el8.0.0+39+6a9b6e22 AppStream 259 k publicsuffix-list noarch 20180723-1.el8 base 79 k sisu-inject noarch 1:0.3.3-6.module_el8.0.0+39+6a9b6e22 AppStream 339 k sisu-plexus noarch 1:0.3.3-6.module_el8.0.0+39+6a9b6e22 AppStream 180 k slf4j noarch 1.7.25-4.module_el8.0.0+39+6a9b6e22 AppStream 77 k Enabling module streams: maven 3.5 scala 2.10 Transaction Summary ========================================================================================================== Install 45 Packages Total download size: 19 M Installed size: 52 M Downloading Packages: (1/45): apache-commons-cli-1.4-4.module_el8.0.0+39+6a9b6e22.noarch.rpm 4.3 MB/s | 74 kB 00:00 (2/45): aopalliance-1.0-17.module_el8.0.0+39+6a9b6e22.noarch.rpm 860 kB/s | 17 kB 00:00 (3/45): publicsuffix-list-20180723-1.el8.noarch.rpm 3.3 MB/s | 79 kB 00:00 (4/45): apache-commons-codec-1.11-3.module_el8.0.0+39+6a9b6e22.noarch.rpm 11 MB/s | 288 kB 00:00 (5/45): apache-commons-io-2.6-3.module_el8.0.0+39+6a9b6e22.noarch.rpm 7.7 MB/s | 224 kB 00:00 (6/45): apache-commons-lang3-3.7-3.module_el8.0.0+39+6a9b6e22.noarch.rpm 14 MB/s | 483 kB 00:00 (7/45): atinject-1-28.20100611svn86.module_el8.0.0+39+6a9b6e22.noarch.rpm 1.7 MB/s | 20 kB 00:00 (8/45): apache-commons-logging-1.2-13.module_el8.0.0+39+6a9b6e22.noarch.r 4.2 MB/s | 85 kB 00:00 (9/45): geronimo-annotation-1.0-23.module_el8.0.0+39+6a9b6e22.noarch.rpm 3.6 MB/s | 25 kB 00:00 (10/45): cdi-api-1.2-8.module_el8.0.0+39+6a9b6e22.noarch.rpm 4.3 MB/s | 70 kB 00:00 (11/45): glassfish-el-api-3.0.1-0.7.b08.module_el8.0.0+39+6a9b6e22.noarch 7.8 MB/s | 105 kB 00:00 (12/45): hawtjni-runtime-1.16-2.module_el8.0.0+39+6a9b6e22.noarch.rpm 2.9 MB/s | 43 kB 00:00 (13/45): google-guice-4.1-11.module_el8.0.0+39+6a9b6e22.noarch.rpm 13 MB/s | 471 kB 00:00 (14/45): httpcomponents-client-4.5.5-4.module_el8.0.0+39+6a9b6e22.noarch. 16 MB/s | 718 kB 00:00 (15/45): httpcomponents-core-4.4.10-3.module_el8.0.0+39+6a9b6e22.noarch.r 15 MB/s | 638 kB 00:00 (16/45): guava20-20.0-8.module_el8.0.0+39+6a9b6e22.noarch.rpm 25 MB/s | 2.1 MB 00:00 (17/45): jansi-1.17.1-1.module_el8.0.0+82+8ee6c375.noarch.rpm 3.1 MB/s | 79 kB 00:00 (18/45): jansi-native-1.7-7.module_el8.0.0+39+6a9b6e22.x86_64.rpm 3.7 MB/s | 75 kB 00:00 (19/45): jboss-interceptors-1.2-api-1.0.0-8.module_el8.0.0+39+6a9b6e22.no 4.4 MB/s | 33 kB 00:00 (20/45): javapackages-tools-5.3.0-1.module_el8.0.0+11+5b8c10bd.noarch.rpm 2.1 MB/s | 44 kB 00:00 (21/45): jcl-over-slf4j-1.7.25-4.module_el8.0.0+39+6a9b6e22.noarch.rpm 2.6 MB/s | 32 kB 00:00 (22/45): maven-3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch.rpm 3.6 MB/s | 27 kB 00:00 (23/45): jsoup-1.11.3-3.module_el8.0.0+39+6a9b6e22.noarch.rpm 16 MB/s | 386 kB 00:00 (24/45): maven-resolver-api-1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch.rpm 7.2 MB/s | 138 kB 00:00 (25/45): maven-resolver-connector-basic-1.1.1-2.module_el8.0.0+39+6a9b6e2 3.5 MB/s | 51 kB 00:00 (26/45): maven-lib-3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch.rpm 22 MB/s | 1.4 MB 00:00 (27/45): maven-resolver-impl-1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch.rp 7.2 MB/s | 177 kB 00:00 (28/45): maven-resolver-spi-1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch.rpm 3.8 MB/s | 40 kB 00:00 (29/45): java-1.8.0-openjdk-devel-1.8.0.312.b07-2.el8_5.x86_64.rpm 63 MB/s | 9.8 MB 00:00 (30/45): maven-resolver-transport-wagon-1.1.1-2.module_el8.0.0+39+6a9b6e2 760 kB/s | 39 kB 00:00 (31/45): maven-resolver-util-1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch.rp 2.7 MB/s | 148 kB 00:00 (32/45): maven-shared-utils-3.2.1-0.1.module_el8.0.0+39+6a9b6e22.noarch.r 9.9 MB/s | 165 kB 00:00 (33/45): maven-wagon-file-3.1.0-1.module_el8.0.0+39+6a9b6e22.noarch.rpm 1.6 MB/s | 26 kB 00:00 (34/45): maven-wagon-http-3.1.0-1.module_el8.0.0+39+6a9b6e22.noarch.rpm 1.7 MB/s | 27 kB 00:00 (35/45): maven-wagon-provider-api-3.1.0-1.module_el8.0.0+39+6a9b6e22.noar 5.6 MB/s | 63 kB 00:00 (36/45): maven-wagon-http-shared-3.1.0-1.module_el8.0.0+39+6a9b6e22.noarc 2.8 MB/s | 49 kB 00:00 (37/45): plexus-cipher-1.7-14.module_el8.0.0+39+6a9b6e22.noarch.rpm 2.1 MB/s | 29 kB 00:00 (38/45): plexus-classworlds-2.5.2-9.module_el8.0.0+39+6a9b6e22.noarch.rpm 5.6 MB/s | 65 kB 00:00 (39/45): plexus-containers-component-annotations-1.7.1-8.module_el8.0.0+3 2.3 MB/s | 24 kB 00:00 (40/45): plexus-interpolation-1.22-9.module_el8.0.0+39+6a9b6e22.noarch.rp 6.4 MB/s | 79 kB 00:00 (41/45): plexus-sec-dispatcher-1.4-26.module_el8.0.0+39+6a9b6e22.noarch.r 2.1 MB/s | 37 kB 00:00 (42/45): plexus-utils-3.1.0-3.module_el8.0.0+39+6a9b6e22.noarch.rpm 11 MB/s | 259 kB 00:00 (43/45): sisu-inject-0.3.3-6.module_el8.0.0+39+6a9b6e22.noarch.rpm 13 MB/s | 339 kB 00:00 (44/45): slf4j-1.7.25-4.module_el8.0.0+39+6a9b6e22.noarch.rpm 6.5 MB/s | 77 kB 00:00 (45/45): sisu-plexus-0.3.3-6.module_el8.0.0+39+6a9b6e22.noarch.rpm 7.8 MB/s | 180 kB 00:00 ---------------------------------------------------------------------------------------------------------- Total 48 MB/s | 19 MB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : plexus-utils-3.1.0-3.module_el8.0.0+39+6a9b6e22.noarch 1/45 Installing : maven-resolver-api-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch 2/45 Installing : maven-wagon-provider-api-3.1.0-1.module_el8.0.0+39+6a9b6e22.noarch 3/45 Installing : maven-resolver-spi-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch 4/45 Installing : maven-resolver-util-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch 5/45 Installing : slf4j-1.7.25-4.module_el8.0.0+39+6a9b6e22.noarch 6/45 Installing : httpcomponents-core-4.4.10-3.module_el8.0.0+39+6a9b6e22.noarch 7/45 Installing : atinject-1-28.20100611svn86.module_el8.0.0+39+6a9b6e22.noarch 8/45 Installing : plexus-containers-component-annotations-1.7.1-8.module_el8.0.0+39+6a9b6e22.n 9/45 Installing : plexus-classworlds-2.5.2-9.module_el8.0.0+39+6a9b6e22.noarch 10/45 Installing : plexus-cipher-1.7-14.module_el8.0.0+39+6a9b6e22.noarch 11/45 Installing : hawtjni-runtime-1.16-2.module_el8.0.0+39+6a9b6e22.noarch 12/45 Installing : guava20-20.0-8.module_el8.0.0+39+6a9b6e22.noarch 13/45 Installing : apache-commons-io-1:2.6-3.module_el8.0.0+39+6a9b6e22.noarch 14/45 Installing : maven-shared-utils-3.2.1-0.1.module_el8.0.0+39+6a9b6e22.noarch 15/45 Installing : jansi-native-1.7-7.module_el8.0.0+39+6a9b6e22.x86_64 16/45 Installing : plexus-sec-dispatcher-1.4-26.module_el8.0.0+39+6a9b6e22.noarch 17/45 Installing : jcl-over-slf4j-1.7.25-4.module_el8.0.0+39+6a9b6e22.noarch 18/45 Installing : maven-resolver-impl-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch 19/45 Installing : plexus-interpolation-1.22-9.module_el8.0.0+39+6a9b6e22.noarch 20/45 Installing : geronimo-annotation-1.0-23.module_el8.0.0+39+6a9b6e22.noarch 21/45 Installing : apache-commons-logging-1.2-13.module_el8.0.0+39+6a9b6e22.noarch 22/45 Installing : apache-commons-lang3-3.7-3.module_el8.0.0+39+6a9b6e22.noarch 23/45 Installing : apache-commons-codec-1.11-3.module_el8.0.0+39+6a9b6e22.noarch 24/45 Installing : apache-commons-cli-1.4-4.module_el8.0.0+39+6a9b6e22.noarch 25/45 Installing : aopalliance-1.0-17.module_el8.0.0+39+6a9b6e22.noarch 26/45 Installing : google-guice-4.1-11.module_el8.0.0+39+6a9b6e22.noarch 27/45 Installing : jansi-1.17.1-1.module_el8.0.0+82+8ee6c375.noarch 28/45 Installing : maven-resolver-connector-basic-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch 29/45 Installing : maven-resolver-transport-wagon-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch 30/45 Installing : maven-wagon-file-3.1.0-1.module_el8.0.0+39+6a9b6e22.noarch 31/45 Installing : jsoup-1.11.3-3.module_el8.0.0+39+6a9b6e22.noarch 32/45 Installing : jboss-interceptors-1.2-api-1.0.0-8.module_el8.0.0+39+6a9b6e22.noarch 33/45 Installing : javapackages-tools-5.3.0-1.module_el8.0.0+11+5b8c10bd.noarch 34/45 Error unpacking rpm package javapackages-tools-5.3.0-1.module_el8.0.0+11+5b8c10bd.noarch Installing : java-1.8.0-openjdk-devel-1:1.8.0.312.b07-2.el8_5.x86_64 35/45 error: unpacking of archive failed on file /usr/bin/build-classpath;68df09d9: cpio: open error: javapackages-tools-5.3.0-1.module_el8.0.0+11+5b8c10bd.noarch: install failed Running scriptlet: java-1.8.0-openjdk-devel-1:1.8.0.312.b07-2.el8_5.x86_64 35/45 failed to link /usr/bin/appletviewer -> /etc/alternatives/appletviewer: Operation not permitted failed to link /usr/bin/clhsdb -> /etc/alternatives/clhsdb: Operation not permitted failed to link /usr/bin/extcheck -> /etc/alternatives/extcheck: Operation not permitted failed to link /usr/bin/hsdb -> /etc/alternatives/hsdb: Operation not permitted failed to link /usr/bin/idlj -> /etc/alternatives/idlj: Operation not permitted failed to remove link /usr/bin/jaotc: Operation not permitted failed to link /usr/bin/javah -> /etc/alternatives/javah: Operation not permitted failed to remove link /usr/bin/jdeprscan: Operation not permitted failed to link /usr/bin/jhat -> /etc/alternatives/jhat: Operation not permitted failed to remove link /usr/bin/jhsdb: Operation not permitted failed to remove link /usr/bin/jimage: Operation not permitted failed to remove link /usr/bin/jlink: Operation not permitted failed to remove link /usr/bin/jmod: Operation not permitted failed to link /usr/bin/jsadebugd -> /etc/alternatives/jsadebugd: Operation not permitted failed to remove link /usr/bin/jshell: Operation not permitted failed to link /usr/bin/native2ascii -> /etc/alternatives/native2ascii: Operation not permitted failed to link /usr/bin/schemagen -> /etc/alternatives/schemagen: Operation not permitted failed to link /usr/bin/wsgen -> /etc/alternatives/wsgen: Operation not permitted failed to link /usr/bin/wsimport -> /etc/alternatives/wsimport: Operation not permitted failed to link /usr/bin/xjc -> /etc/alternatives/xjc: Operation not permitted Installing : glassfish-el-api-3.0.1-0.7.b08.module_el8.0.0+39+6a9b6e22.noarch 36/45 Installing : cdi-api-1.2-8.module_el8.0.0+39+6a9b6e22.noarch 37/45 Installing : sisu-inject-1:0.3.3-6.module_el8.0.0+39+6a9b6e22.noarch 38/45 Installing : sisu-plexus-1:0.3.3-6.module_el8.0.0+39+6a9b6e22.noarch 39/45 Installing : maven-lib-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch 40/45 Installing : publicsuffix-list-20180723-1.el8.noarch 41/45 Installing : httpcomponents-client-4.5.5-4.module_el8.0.0+39+6a9b6e22.noarch 42/45 Installing : maven-wagon-http-shared-3.1.0-1.module_el8.0.0+39+6a9b6e22.noarch 43/45 Installing : maven-wagon-http-3.1.0-1.module_el8.0.0+39+6a9b6e22.noarch 44/45 Installing : maven-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch 45/45 Running scriptlet: maven-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch 45/45 failed to link /usr/bin/mvn -> /etc/alternatives/mvn: Operation not permitted failed to link /usr/bin/mvnDebug -> /etc/alternatives/mvnDebug: Operation not permitted warning: %post(maven-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch) scriptlet failed, exit status 2 Error in POSTIN scriptlet in rpm package maven Running scriptlet: java-1.8.0-openjdk-devel-1:1.8.0.312.b07-2.el8_5.x86_64 45/45 Running scriptlet: maven-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch 45/45 Verifying : publicsuffix-list-20180723-1.el8.noarch 1/45 Verifying : aopalliance-1.0-17.module_el8.0.0+39+6a9b6e22.noarch 2/45 Verifying : apache-commons-cli-1.4-4.module_el8.0.0+39+6a9b6e22.noarch 3/45 Verifying : apache-commons-codec-1.11-3.module_el8.0.0+39+6a9b6e22.noarch 4/45 Verifying : apache-commons-io-1:2.6-3.module_el8.0.0+39+6a9b6e22.noarch 5/45 Verifying : apache-commons-lang3-3.7-3.module_el8.0.0+39+6a9b6e22.noarch 6/45 Verifying : apache-commons-logging-1.2-13.module_el8.0.0+39+6a9b6e22.noarch 7/45 Verifying : atinject-1-28.20100611svn86.module_el8.0.0+39+6a9b6e22.noarch 8/45 Verifying : cdi-api-1.2-8.module_el8.0.0+39+6a9b6e22.noarch 9/45 Verifying : geronimo-annotation-1.0-23.module_el8.0.0+39+6a9b6e22.noarch 10/45 Verifying : glassfish-el-api-3.0.1-0.7.b08.module_el8.0.0+39+6a9b6e22.noarch 11/45 Verifying : google-guice-4.1-11.module_el8.0.0+39+6a9b6e22.noarch 12/45 Verifying : guava20-20.0-8.module_el8.0.0+39+6a9b6e22.noarch 13/45 Verifying : hawtjni-runtime-1.16-2.module_el8.0.0+39+6a9b6e22.noarch 14/45 Verifying : httpcomponents-client-4.5.5-4.module_el8.0.0+39+6a9b6e22.noarch 15/45 Verifying : httpcomponents-core-4.4.10-3.module_el8.0.0+39+6a9b6e22.noarch 16/45 Verifying : jansi-1.17.1-1.module_el8.0.0+82+8ee6c375.noarch 17/45 Verifying : jansi-native-1.7-7.module_el8.0.0+39+6a9b6e22.x86_64 18/45 Verifying : java-1.8.0-openjdk-devel-1:1.8.0.312.b07-2.el8_5.x86_64 19/45 Verifying : javapackages-tools-5.3.0-1.module_el8.0.0+11+5b8c10bd.noarch 20/45 Verifying : jboss-interceptors-1.2-api-1.0.0-8.module_el8.0.0+39+6a9b6e22.noarch 21/45 Verifying : jcl-over-slf4j-1.7.25-4.module_el8.0.0+39+6a9b6e22.noarch 22/45 Verifying : jsoup-1.11.3-3.module_el8.0.0+39+6a9b6e22.noarch 23/45 Verifying : maven-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch 24/45 Verifying : maven-lib-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch 25/45 Verifying : maven-resolver-api-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch 26/45 Verifying : maven-resolver-connector-basic-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch 27/45 Verifying : maven-resolver-impl-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch 28/45 Verifying : maven-resolver-spi-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch 29/45 Verifying : maven-resolver-transport-wagon-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch 30/45 Verifying : maven-resolver-util-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch 31/45 Verifying : maven-shared-utils-3.2.1-0.1.module_el8.0.0+39+6a9b6e22.noarch 32/45 Verifying : maven-wagon-file-3.1.0-1.module_el8.0.0+39+6a9b6e22.noarch 33/45 Verifying : maven-wagon-http-3.1.0-1.module_el8.0.0+39+6a9b6e22.noarch 34/45 Verifying : maven-wagon-http-shared-3.1.0-1.module_el8.0.0+39+6a9b6e22.noarch 35/45 Verifying : maven-wagon-provider-api-3.1.0-1.module_el8.0.0+39+6a9b6e22.noarch 36/45 Verifying : plexus-cipher-1.7-14.module_el8.0.0+39+6a9b6e22.noarch 37/45 Verifying : plexus-classworlds-2.5.2-9.module_el8.0.0+39+6a9b6e22.noarch 38/45 Verifying : plexus-containers-component-annotations-1.7.1-8.module_el8.0.0+39+6a9b6e22.n 39/45 Verifying : plexus-interpolation-1.22-9.module_el8.0.0+39+6a9b6e22.noarch 40/45 Verifying : plexus-sec-dispatcher-1.4-26.module_el8.0.0+39+6a9b6e22.noarch 41/45 Verifying : plexus-utils-3.1.0-3.module_el8.0.0+39+6a9b6e22.noarch 42/45 Verifying : sisu-inject-1:0.3.3-6.module_el8.0.0+39+6a9b6e22.noarch 43/45 Verifying : sisu-plexus-1:0.3.3-6.module_el8.0.0+39+6a9b6e22.noarch 44/45 Verifying : slf4j-1.7.25-4.module_el8.0.0+39+6a9b6e22.noarch 45/45 Installed: aopalliance-1.0-17.module_el8.0.0+39+6a9b6e22.noarch apache-commons-cli-1.4-4.module_el8.0.0+39+6a9b6e22.noarch apache-commons-codec-1.11-3.module_el8.0.0+39+6a9b6e22.noarch apache-commons-io-1:2.6-3.module_el8.0.0+39+6a9b6e22.noarch apache-commons-lang3-3.7-3.module_el8.0.0+39+6a9b6e22.noarch apache-commons-logging-1.2-13.module_el8.0.0+39+6a9b6e22.noarch atinject-1-28.20100611svn86.module_el8.0.0+39+6a9b6e22.noarch cdi-api-1.2-8.module_el8.0.0+39+6a9b6e22.noarch geronimo-annotation-1.0-23.module_el8.0.0+39+6a9b6e22.noarch glassfish-el-api-3.0.1-0.7.b08.module_el8.0.0+39+6a9b6e22.noarch google-guice-4.1-11.module_el8.0.0+39+6a9b6e22.noarch guava20-20.0-8.module_el8.0.0+39+6a9b6e22.noarch hawtjni-runtime-1.16-2.module_el8.0.0+39+6a9b6e22.noarch httpcomponents-client-4.5.5-4.module_el8.0.0+39+6a9b6e22.noarch httpcomponents-core-4.4.10-3.module_el8.0.0+39+6a9b6e22.noarch jansi-1.17.1-1.module_el8.0.0+82+8ee6c375.noarch jansi-native-1.7-7.module_el8.0.0+39+6a9b6e22.x86_64 java-1.8.0-openjdk-devel-1:1.8.0.312.b07-2.el8_5.x86_64 jboss-interceptors-1.2-api-1.0.0-8.module_el8.0.0+39+6a9b6e22.noarch jcl-over-slf4j-1.7.25-4.module_el8.0.0+39+6a9b6e22.noarch jsoup-1.11.3-3.module_el8.0.0+39+6a9b6e22.noarch maven-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch maven-lib-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch maven-resolver-api-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch maven-resolver-connector-basic-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch maven-resolver-impl-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch maven-resolver-spi-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch maven-resolver-transport-wagon-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch maven-resolver-util-1:1.1.1-2.module_el8.0.0+39+6a9b6e22.noarch maven-shared-utils-3.2.1-0.1.module_el8.0.0+39+6a9b6e22.noarch maven-wagon-file-3.1.0-1.module_el8.0.0+39+6a9b6e22.noarch maven-wagon-http-3.1.0-1.module_el8.0.0+39+6a9b6e22.noarch maven-wagon-http-shared-3.1.0-1.module_el8.0.0+39+6a9b6e22.noarch maven-wagon-provider-api-3.1.0-1.module_el8.0.0+39+6a9b6e22.noarch plexus-cipher-1.7-14.module_el8.0.0+39+6a9b6e22.noarch plexus-classworlds-2.5.2-9.module_el8.0.0+39+6a9b6e22.noarch plexus-containers-component-annotations-1.7.1-8.module_el8.0.0+39+6a9b6e22.noarch plexus-interpolation-1.22-9.module_el8.0.0+39+6a9b6e22.noarch plexus-sec-dispatcher-1.4-26.module_el8.0.0+39+6a9b6e22.noarch plexus-utils-3.1.0-3.module_el8.0.0+39+6a9b6e22.noarch publicsuffix-list-20180723-1.el8.noarch sisu-inject-1:0.3.3-6.module_el8.0.0+39+6a9b6e22.noarch sisu-plexus-1:0.3.3-6.module_el8.0.0+39+6a9b6e22.noarch slf4j-1.7.25-4.module_el8.0.0+39+6a9b6e22.noarch Failed: javapackages-tools-5.3.0-1.module_el8.0.0+11+5b8c10bd.noarch Error: Transaction failed [root@yfw openfire]#
最新发布
10-04
你遇到的错误是典型的 **RPM 安装失败问题**,尤其是在某些受限环境(如容器、SELinux 强制模式、只读文件系统或权限不足)中常见。 --- ## ❌ 问题分析 你在运行: ```bash sudo yum install -y git maven ``` 虽然 `git` 已安装,但 `maven` 安装过程中依赖大量 Java 工具包,其中最关键的是: - `javapackages-tools` - `java-1.8.0-openjdk-devel` - `maven` ### 🔴 失败关键点: ```text error: unpacking of archive failed on file /usr/bin/build-classpath;68df09d9: cpio: open failed to link /usr/bin/mvn -> /etc/alternatives/mvn: Operation not permitted ``` 这说明: 1. **无法写入 `/usr/bin`** 2. **无法创建符号链接(symlink)** 3. 常见于: - 使用了 **只读文件系统** - 在 **Docker 容器** 中没有足够权限 - **SELinux 拒绝操作** - 文件系统挂载为 `noexec` 或 `nosuid` --- ## ✅ 解决方案:绕过系统级安装,手动部署 Maven 既然 `yum` 安装失败,我们可以 **手动下载并配置 Apache Maven**,完全避开 RPM 包管理器的问题。 --- ### ✅ 步骤一:手动下载并安装 Maven(推荐方式) #### 1. 进入临时目录 ```bash cd /tmp ``` #### 2. 下载 Apache Maven(使用官方镜像) ```bash wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz ``` > ✅ 推荐版本:`3.8.8`(兼容 Java 11 + Openfire 插件构建) > > 其他镜像站: > - https://mirrors.sjtug.sjtu.edu.cn/apache/maven/ > - https://mirror.bit.edu.cn/apache/maven/ #### 3. 解压到 `/opt` ```bash sudo tar -xzf apache-maven-3.8.8-bin.tar.gz -C /opt/ ``` #### 4. 创建软链接方便升级 ```bash sudo ln -s /opt/apache-maven-3.8.8 /opt/maven ``` --- ### ✅ 步骤二:配置环境变量 #### 1. 编辑 profile 文件 ```bash sudo tee /etc/profile.d/maven.sh << &#39;EOF&#39; export M2_HOME=/opt/maven export PATH=$M2_HOME/bin:$PATH EOF ``` #### 2. 加载环境变量 ```bash source /etc/profile.d/maven.sh ``` --- ### ✅ 步骤三:验证安装成功 ```bash mvn -version ``` ✅ 正确输出应类似: ```text Apache Maven 3.8.8 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: /opt/maven Java version: 11.0.13, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64 Default locale: en, platform encoding: UTF-8 OS name: "linux", version: "4.18.0-348.el8.x86_64", arch: "amd64", family: "unix" ``` > 注意:这里会自动识别你之前设置的 `JAVA_HOME` → Java 11 ✅ --- ## 🧩 为什么这样做能成功? | 方法 | 是否需要 root 写 `/usr/bin` | 是否受 SELinux/RPM 管控 | 是否灵活 | |------|-------------------------------|---------------------------|----------| | `yum install maven` | 是 ❌(常失败) | 是 ❌ | 否 | | 手动安装到 `/opt` | 否 ✅(可控路径) | 否 ✅ | 是 ✅ | --- ## 🚀 继续编译 REST API 插件 你现在可以继续之前的流程: ### 1. 克隆代码 ```bash cd ~ git clone https://github.com/igniterealtime/openfire-restAPI-plugin.git cd openfire-restAPI-plugin git checkout tags/v2.2.0 -b build-2.2.0 ``` ### 2. 确保 `pom.xml` 配置正确 ```xml <properties> <openfire.version>4.9.2</openfire.version> <maven.compiler.source>11</maven.compiler.target> <maven.compiler.target>11</maven.compiler.target> </properties> ``` ### 3. 编译打包 ```bash mvn clean package ``` ✅ 成功后生成: ```text target/restapi-2.2.0.jar ``` --- ## 💾 部署插件 ```bash cp target/restapi-2.2.0.jar /opt/openfire/plugins/ chown openfire:openfire /opt/openfire/plugins/restapi-2.2.0.jar chmod 644 /opt/openfire/plugins/restapi-2.2.0.jar systemctl restart openfire ``` --- ## 🔍 查看日志确认加载 ```bash tail -f /opt/openfire/logs/openfire.log ``` 等待出现: ```text INFO: Plugin &#39;restapi&#39; loaded successfully ``` --- ## ✅ 总结:你现在完成了什么? | 任务 | 状态 | |------|------| | 设置 `JAVA_HOME` 到 Java 11 | ✅ | | 手动安装 Maven(绕过 yum 错误) | ✅ | | 编译 REST API v2.2.0 插件 | ✅ | | 部署插件到 Openfire | ✅ | | 重启服务并验证加载 | ✅ | --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值