Linux安装xmlto依赖包过多原因咨询(awesome wm 3.5编译依赖)
Great question! Let me break this down clearly—xmlto isn’t just a single standalone tool; it’s more like a wrapper that orchestrates a bunch of different XML conversion utilities to turn DocBook (or other XML-based) documents into man pages, HTML, PDF, and other formats. Here’s why those script language dependencies pop up:
It relies on format-specific backend tools
xmlto doesn’t do the heavy lifting of converting XML to man pages (or other outputs) all by itself. Instead, it calls specialized tools for each target format. Some of these backend tools are written in Ruby or Python. For example, certain DocBook-to-man converters or supplementary processing scripts might be implemented in Ruby, while others (like tools handling dynamic content in XML) could use Python.XSLT styling needs extra support
Most XML-to-* conversions use XSLT stylesheets to define how the XML structure maps to the output format. Some advanced XSLT processing tasks (like handling custom extensions, variable substitutions, or complex formatting logic) require helper scripts written in Ruby or Python. These get pulled in as dependencies to ensure full compatibility with common DocBook setups.Distro packaging defaults include full functionality
When you install xmlto via your package manager, it usually comes with support for all possible output formats out of the box—not just man pages. That means it pulls in dependencies for converting to HTML, PDF, and other formats too, many of which rely on Ruby/Python tools. If you only need man page generation (for compiling Awesome WM 3.5), you don’t actually need all those extras.
Quick fix for your use case:
If you’re on a Debian/Ubuntu-based system, try installing xmlto with minimal dependencies using:
sudo apt install xmlto --no-install-recommends
This skips the optional dependencies (like Ruby/Python-based tools for other formats) and only installs what’s needed for basic conversions like man pages. For RPM-based distros, look for a "minimal" or "core" xmlto package, or use your package manager’s flags to exclude recommended dependencies.
内容的提问来源于stack exchange,提问作者madjardi

