{"id":1776,"date":"2010-02-16T13:44:25","date_gmt":"2010-02-16T11:44:25","guid":{"rendered":"http:\/\/code.openark.org\/blog\/?p=1776"},"modified":"2010-02-16T15:04:54","modified_gmt":"2010-02-16T13:04:54","slug":"to-not-yum-or-to-not-apt-get","status":"publish","type":"post","link":"https:\/\/code.openark.org\/blog\/mysql\/to-not-yum-or-to-not-apt-get","title":{"rendered":"To not yum or to not apt-get?"},"content":{"rendered":"<p>I&#8217;ve <a href=\"http:\/\/code.openark.org\/blog\/mysql\/manually-installing-multiple-mysql-instances-on-linux-howto\">written<\/a> shortly on this before. I like <strong>yum<\/strong>; I love <strong>apt-get<\/strong>; I prefer <em>not<\/em> to use them for MySQL installations. I consider a binary tarball to be the best MySQL installation format (source installations being a different case altogether).<\/p>\n<h4>Why?<\/h4>\n<p>I use <strong>yum<\/strong> and <strong>apt-get<\/strong> whenever I can and for almost all needs (sometimes preferring CPAN for Perl installations). But on a MySQL machine, I avoid doing so. The reason is either dependency hell or dependency mismatch.<\/p>\n<p>Package managers are supposed to solve the dependency hell issue. But package managers will rarely have an up to date MySQL version.<\/p>\n<p>I&#8217;ve had several experiences where a simple <strong>yum<\/strong> installation re-installed the MySQL version. I&#8217;ve had customers calling me up when, having installed something with <strong>yum<\/strong>, MySQL would not work anymore.<!--more--><\/p>\n<p><strong>yum install package-which-depends-on-mysql-server<\/strong> will install MySQL server on your system if it hasn&#8217;t been installed with <strong>yum<\/strong>. Are you on CentOS <strong>5.0<\/strong>? You&#8217;ll get MySQL <strong>5.0.22<\/strong>. Oh, did you already have a <strong>RPM<\/strong> installation for MySQL <strong>5.0.81<\/strong>? Sorry &#8211; it&#8217;s just been <em>downgraded<\/em>, plus <em>it won&#8217;t work<\/em> anymore since the error messages file has been changed since then.<\/p>\n<p>Don&#8217;t press &#8216;<strong>Y<\/strong>&#8216; too soon!<\/p>\n<p>Things are slightly better with <strong>apt-get<\/strong>. I&#8217;ve encountered less situations where <strong>mysql-server<\/strong> was on the dependency list. Many times it&#8217;s just the <strong>libmysqlclient<\/strong> package or the <strong>mysql-common<\/strong> one.<\/p>\n<p>But wait! Did you install <strong>mysql-common<\/strong>? Bonus! You get the elusive <strong>\/etc\/mysql\/my.cnf<\/strong> file created, and there goes your server configuration. Future spawns of the MySQL server \/ clients will read from the wrong configuration file, and will probably fail to load.<\/p>\n<p>Not to mention neither will help you out with multiple instances installation.<\/p>\n<h4>My argument<\/h4>\n<p>A sys admin recently argued with me that it was wrong of me to have the entire machine set up with <strong>yum<\/strong>, but have MySQL installed with binary tarball. He argued that it broke the entire setup. I expressed my opinion: <em>on a MySQL dedicated server, MySQL gets to be prioritized. It&#8217;s special<\/em>. It is the reason for the existence of the machine. I would imagine that same would hold for Apache on an Apache dedicated machine, for Sendmail on a Sendmail dedicated machine, etc. As a DBA, I want to have best control of the MySQL installation; I want to be able to upgrade minor versions quickly: I often find newer versions to solve bugs I was concerned with; I want to be able to install multiple instances; I want to be able to downgrade without having to remove and uninstall the previous version.<\/p>\n<p>I want to have control. World domination aside, that is.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve written shortly on this before. I like yum; I love apt-get; I prefer not to use them for MySQL installations. I consider a binary tarball to be the best MySQL installation format (source installations being a different case altogether). Why? I use yum and apt-get whenever I can and for almost all needs (sometimes [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"enabled":false},"version":2}},"categories":[5],"tags":[11,10,119],"class_list":["post-1776","post","type-post","status-publish","format-standard","hentry","category-mysql","tag-configuration","tag-installation","tag-linux"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2bZZp-sE","_links":{"self":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/1776","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/comments?post=1776"}],"version-history":[{"count":23,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/1776\/revisions"}],"predecessor-version":[{"id":1974,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/1776\/revisions\/1974"}],"wp:attachment":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/media?parent=1776"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/categories?post=1776"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/tags?post=1776"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}