{"id":39,"date":"2003-09-03T23:49:55","date_gmt":"2003-09-03T22:49:55","guid":{"rendered":"http:\/\/wp.devco.net\/?p=39"},"modified":"2009-10-09T17:39:13","modified_gmt":"2009-10-09T16:39:13","slug":"experiences_in_upgrading_redhat_and_freebsd","status":"publish","type":"post","link":"https:\/\/www.devco.net\/archives\/2003\/09\/03\/experiences_in_upgrading_redhat_and_freebsd.php","title":{"rendered":"Experiences in upgrading RedHat and FreeBSD"},"content":{"rendered":"

Today I had to<\/a> upgrade Exim<\/a> on my RedHat and my FreeBSD machine.
\nThe experience was hugely different in the two cases and highlights to me again that
RPM<\/a> is from the Devil.<\/p>\n


\nFreeBSD provides a
centralised repository<\/a> of all Ported Applications, this repository is maintained by the FreeBSD core team and quality controlled on real systems. The ports system is tracked for your version of FreeBSD and typically builds from source optimised for your system and its libraries. More on this here<\/a>.
\nRedHat has no centralised system apart from the offical packages that RedHat provides in the distribution. If you want to deviate from the RedHat supplied software – such as not using sendmail – then you have to rely on the providers of your application to provide a package. If your provider does not provide a package then it is up to third parties to provide packages.
\nToday I had to try and find RPM packages for Exim. The previous source for packages was unavailable at the time and so I had to hunt down someone else that seemed to have a
decent RPM<\/a>. This took about 45 minutes, it required me to download all the various bits and peices of the source RPM. After some editing of the Spec File and reading of the rpmbuild man page I managed to get the RPM built.
\nThe next problem was upgrading the previous Exim – which was split into exim and exim-base RPMs – with one that was just a Exim package. I was forced to backup my configs (always a good idea) and uninstall manually the exim-base and exim packages with the –nodeps option.
\nAt this point it all went bad, RPM hung and stopped responding.
This<\/a> is<\/a> known<\/a> bug<\/a> in RedHat 8.0. I was forced to reboot the server as in the past this eventually let to a complete lock up of the UML<\/a> host. After this I force uninstalled the old Exim packages – without running the preun scripts since the previous uninstall failed halfway. I then installed the new package and started Exim after verifying my configs were correct.
\nAt this point another problem appeared. The old exim RPM was using exim:mail while the new one used mail:mail, I had to manually go chown my spool files and so forth. After about an hour finally the RedHat machine was upgraded.
\nThe reason this took so long is a direct result of the disjointed development process in RedHat, the lack of standards in RedHat and in general the messy state of the Linux distribution world.
\nI then moved to my FreeBSD machines. I
cvsup’d<\/a> the ports tree and noticed they had already amended the port with the patch. I edited the Makefile slightly to my specific needs and ran – after shutting down my current exim:
\n# portupgrade -o mail\/exim-old exim
\nWhen this completed I simply started up my Exim again. Case closed, took 5 minutes.
\nI know which one I prefer.
\nRelated Links:
\n
RPM Hell<\/a>
\n
Portupgrade<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"

Detail on my experience upgrading Exim<\/a> on my FreeBSD<\/a> and RedHat<\/a> machines.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","footnotes":""},"categories":[1],"tags":[39,62,32],"_links":{"self":[{"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/posts\/39"}],"collection":[{"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/comments?post=39"}],"version-history":[{"count":1,"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/posts\/39\/revisions"}],"predecessor-version":[{"id":947,"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/posts\/39\/revisions\/947"}],"wp:attachment":[{"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/media?parent=39"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/categories?post=39"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devco.net\/wp-json\/wp\/v2\/tags?post=39"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}