Some clarification on old library removal.
Removable libraries list is visible with
da build list_removals
. Libraries can be removed one by one manually or almost all of them with
da build remove_items
. It is
almost because it will remove all libraries except
iconv
. It needs to be removed manually because after fully removing
iconv
library all software comonents needs to be rebuit with
da build all
. We are forcing it to be removed manually to display this warning and prepare admins for some downtime (until all services are rebuilt).
It is possible to
disable iconv
without fully removing it, by removing
only the header files. That way the old packages will continue to work and new software will not fail to build (exim and PHP). However I would still recommend to remove it fully and rebuild all the packages.
Old libraries removal order is important! Command
da build list_removals
will list them in the order they should be removed. For example removing
iconv
before libxml2
is removed would cause system-wide breakage of non DA related binaries (for example
yum
will stop working). CustomBuild will refuse removing
iconv
if it spots at least any other old library not yet removed.
Most straightforward way to clean-up old system would be:
da build remove_items
- remove all libraries except iconv.
da build remove_old_local libiconv
- remove iconv.
da build all
- rebuild everything. Note: after iconv is removed, but before everything is rebuilt some services will not work if restarted.
A more cautions approach minimizing service downtime could be:
da build list_removals
- check how many of the old libraries there are, useful if any of them needs to be restored.
da build remove_items
- remove all libraries except iconv.
da build remove_old_local libiconv
- remove iconv and create backup (actually only to create backup ).
da build restore_old_local libiconv
- restore back iconv so that all existing software would work fine for the time being.
rm -f /usr/local/include/{iconv.h,libcharset.h,localcharset.h}
- remove only iconv headers (we still have full iconv backup just in case)
da build all
- rebuild everything, iconv from /usr/local should not be used by the rebuit software
da build remove_old_local libiconv
- remove iconv for good now.
It is quite hard to re-create all possible system versions with all possible old libraries combinations so we are not automating these steps inside CustomBuild and instead exposing them to the sysadmin to execute it manually. At any time it is possible to restore libraries back with
da build restore_old_local {name}
.
Any feedback would be really appreciated. Are there any more old libraries in /usr/local that we are not detecting and removing? Does the steps above work reliably? Have you ever needed to restore old library from backup? Thanks.