安装 Just Clang/LLVM 文档吗?

安装 Just Clang/LLVM 文档吗?

如何仅安装 Clang 和 LLVM 的文档和手册页?我根据 LLVM 网站上的源代码从源代码编译了当前版本,它运行良好,但由于它是一个本地自包含存储库(它可以从您的主目录运行,假设您的路径中有它的 bin 子目录),它不会安装手册页或文档。

我卸载了 Clang/LLVM 的 Ubuntu 包以避免任何可能的冲突,但这也删除了 Clang 手册页。我如何只安装手册页和文档。如果手册页从技术上讲来自与安装的编译器相比的几个版本,那么我可以接受(如果需要)。

谢谢。

答案1

  1. 清理包缓存:sudo apt-get clean
  2. 下载 debs:sudo apt-get install -d clang llvm
  3. 将 debs 解压到“工作”目录下:find /var/cache/apt/archives/ -name "*.deb" -exec dpkg-deb -x {} work \;
  4. 将文档和手册页复制到 /usr/share:sudo cp -a work/usr/share/{doc,man} /usr/share/

您现在可以删除工作目录:rm -rf work

我注意到有很多与 llvm 相关的软件包。将所有需要的软件包添加到步骤 2,特别是 -doc(llvm-2.8-doc、llvm-2.9、llvm-3.0)。

答案2

Debian 软件包不知道软件包中的哪些文件是文档文件。因此,您唯一的办法就是偷懒,手动下载软件包,然后只提取其中的手册页。

  1. 下载软件包,但不要立即安装:

    这里的挑战是确定哪个包实际上包含您要查找的手册页。例如,clang-3.8 包没有自己的 clang 手册页,您需要安装 clang-3.6...

    # apt download clang-3.6
    [...]
    # ls clang*deb
    clang-3.6_1%3a3.6.2-3ubuntu2_amd64.deb
    
  2. 仅安装手册页

    sudo dpkg install --path-exclude=/* --path-include=/usr/share/man \
        clang-3.6_1%3a3.6.2-3ubuntu2_amd64.deb
    

警告:包管理器现在认为您已正确安装了 clang。因此系统可能会出现错误。例如,它 sudo apt install clang-3.6会告诉您包已安装最新版本,但它不会执行任何操作。您必须sudo apt remove clang-3.6先执行此操作,然后才能真正安装它。此外,任何包升级都将用包的完整版本覆盖精简的手动安装。

您已收到警告。请自行承担风险。

也就是说,做这样奇怪的事情可能是有价值的,例如在创建超小的docker镜像时。

相关内容