docs: def remove(self,
  	           package,
  	           echo=None,
  	           options=None,
  	           timeout=shutit_global.shutit_global_object.default_timeout,
  	           note=None):
  		"""Distro-independent remove function.
  		Takes a package name and runs relevant remove function.
  
  		@param package:  Package to remove, which is run through package_map.
  		@param options:  Dict of options to pass to the remove command,
  		                 mapped by install_type.
  		@param timeout:  See send(). Default: 3600
  		@param note:     See send()
  
  		@return: True if all ok (i.e. the package was successfully removed),
  		         False otherwise.
  		@rtype: boolean
  		"""
  		# If separated by spaces, remove separately
  		shutit = self.shutit
  		if note != None:
  			shutit.handle_note('Removing package: ' + package + '\n' + note)
  		if options is None: options = {}
  		install_type = self.current_environment.install_type
  		cmd = ''
  		if install_type == 'src':
  			# If this is a src build, we assume it's already installed.
  			return True
  		elif install_type == 'none':
  			# If this is a none build, installing is invalid.
  			shutit.fail('ShutiIt has no install type for the identified OS, so cannot use install method. Inform maintainers if believed to be a bug.') # pragma: no cover
  		if install_type == 'apt':
  			cmd += 'apt-get purge'
  			opts = options['apt'] if 'apt' in options else '-qq -y'
  		elif install_type == 'yum':
  			cmd += 'yum erase'
  			opts = options['yum'] if 'yum' in options else '-y'
  		elif install_type == 'pacman':
  			cmd += 'pacman -R'
  			if 'pacman' in options:
  				opts = options['pacman']
  		elif install_type == 'apk':
  			cmd += 'apk del'
  			opts = options['apt'] if 'apt' in options else '-q'
  		elif install_type == 'emerge':
  			cmd += 'emerge -cav'
  			if 'emerge' in options:
  				opts = options['emerge']
  		elif install_type == 'docker':
  			cmd += 'docker rmi'
  			if 'docker' in options:
  				opts = options['docker']
  		elif install_type == 'brew':
  			cmd += 'brew uninstall'
  			if 'brew' in options:
  				opts = options['brew']
  			else:
  				opts += ' --force'
  		else:
  			# Not handled
  			return False
  		# Get mapped package.
  		package = package_map.map_packages(self, package, self.current_environment.install_type)
  		pw = self.get_sudo_pass_if_needed(shutit, ignore_brew=True)
  		if pw != '':
  			cmd = 'sudo ' + cmd
  			res = self.multisend(ShutItSendSpec(self,
  			                                    send='%s %s %s' % (cmd, opts, package),
  			                                    send_dict={'assword:':[pw, True]},
  			                                    timeout=timeout,
  			                                    exit_values=['0','100'],
  			                                    echo=echo,
  			                                    secret=True))
  			if res == -1:
  				# Should not happen
  				assert False, shutit_util.print_debug()
  		else:
  			self.send(ShutItSendSpec(self,
  			                         send='%s %s %s' % (cmd, opts, package),
  			                         timeout=timeout,
  			                         exit_values=['0','100'],
  				                     echo=echo,
  			                         ignore_background=False,
  			                         run_in_background=False,
  			                         block_other_commands=True))
  		shutit.handle_note_after(note=note)
  		return True