Centos使用unrar解压rar压缩包

在Centos上安装unrar并直接使用

  1. rarlab官网找到相应的版本进行下载,我使用的版本是RAR 6.00 for Linux x64

    wget https://www.rarlab.com/rar/rarlinux-x64-6.0.0.tar.gz
    
  2. 解压到指定目录

    tar xf rarlinux-x64-6.0.0.tar.gz -C /usr/local/
    
  3. 创建软链接

    ln -s /usr/local/rar/rar /usr/local/bin/rar
    ln -s /usr/local/rar/unrar /usr/local/bin/unrar
    
  4. 常用的解压命令unrar <命令> <压缩包>

    # 解压压缩文件到当前目录
    unrar e test.rar
    # 用绝对路径解压文件
    unrar x test.rar
    # 列出压缩包中的文件列表信息(简单)
    unrar l test.rar
    # 列出压缩包中的文件列表信息(详细)
    unrar v test.rar
    # 测试压缩文件
    unrar t test.rar
    

    想了解更多unrar的用法可以在linux命令手册上面查看

通过python执行unrar的相关操作

  1. 安装unrar库

    pip3 install unrar
    

    python3 -m pip install unrar
    
  2. 运行以下代码

    from unrar import rarfile
    

    如果运行没问题则证明安装成功,如果报Couldn't find path to unrar library则还需要系统编译安装unrar

  3. 安装依赖包

    yum install -y gcc gcc-c++
    
  4. 下载unrar包

    wget http://www.rarlab.com/rar/unrarsrc-5.4.5.tar.gz
    tar zxf unrarsrc-5.4.5.tar.gz
    cd unrar
    
  5. 编译、安装

    make lib
    make install-lib
    

    使用make lib命令将会自动编译库文件,再使用make install-lib命令产生 libunrar.so 文件(一般在 /usr/lib 目录下面)

  6. 配置环境变量

    vim /etc/profile
    

    在末尾加上以下语句并保存

    export UNRAR_LIB_PATH=/usr/lib/libunrar.so
    

    使用以下命令使变量生效

    source /etc/profile
    

    再次执行第二步就不会报错了

  7. 简单代码示例

    from unrar import rarfile
    
    
    rar = rarfile.RarFile('sample.rar')
    print(rar.namelist())  # 压缩包的文件列表
    
    rar.printdir()  # 打印压缩包的文件信息(详细)
    
    info = rar.infolist() # 文件信息迭代器对象列表
    for f in info:
        print(f.filename, f.file_size, f.date_time)  # 文件名 文件大小 修改时间
    
    rar.extractall()  # 解压
    

    想了解更多可以去python-unrar官方文档上查看