Removing man pages on Ubuntu Docker installation

I am trying to reduce the footprint of my Ubuntu docker image. Given that there is very little use for the man files and I deleted them, committed the image and then tried to use it. AFAICT it did no harm. However, I thought it worth asking here. Am I storing up any ugly problems for the future by doing this?


Short answer: no, this should not cause any major issue.


TL;DR

I think that you will not cause any major damage except these two cases:

  1. If do you need a manual for any command, you won't find it.
  2. The /usr/share/man folder will grow when you do a package install/update.

  1. Disable the apt cache:

    When you install a package with apt-get or aptitude on a Debian-based system, the downloaded package is, by default, kept in the APT cache located at /var/cache/apt/archives. This is really not necessary as you typically do not re-install the same package ever again. Over time, the content in /var/cache/apt/archives will grow.

    • Create a file in /etc/apt/apt.conf.d/ called 02nocache with these contents:

      Dir::Cache "";
      Dir::Cache::archives "";
      
    • Clear the apt cache:

      sudo rm -rf /var/cache/apt/archives 
      
  2. Disable man pages, locales and docs:

    You can disable a lot of rubbish doing this:

    • Create a file called 01_nodoc on /etc/dpkg/dpkg.cfg.d with these contents:

      # /etc/dpkg/dpkg.cfg.d/01_nodoc
      
      # Delete locales
      path-exclude=/usr/share/locale/*
      
      # Delete man pages
      path-exclude=/usr/share/man/*
      
      # Delete docs
      path-exclude=/usr/share/doc/*
      path-include=/usr/share/doc/*/copyright
      
    • Delete the current contents:

      sudo rm -rf /usr/share/doc/
      sudo rm -rf /usr/share/man/
      sudo rm -rf /usr/share/locale/
      

Logically there would be no harm for your system, but you still may loose when you need some man pages.

Also you should notice any update will create that directory again