<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Linux vs. Solaris packaging: it&#8217;s a philosophical thing</title>
	<atom:link href="http://holyhandgrenade.org/blog/2009/12/linux-vs-solaris-packaging-its-a-philosophical-thing/feed/" rel="self" type="application/rss+xml" />
	<link>http://holyhandgrenade.org/blog/2009/12/linux-vs-solaris-packaging-its-a-philosophical-thing/</link>
	<description>System administration from the trenches.</description>
	<lastBuildDate>Wed, 28 Jul 2010 05:10:49 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Joshua Rodman</title>
		<link>http://holyhandgrenade.org/blog/2009/12/linux-vs-solaris-packaging-its-a-philosophical-thing/comment-page-1/#comment-727</link>
		<dc:creator>Joshua Rodman</dc:creator>
		<pubDate>Thu, 08 Jul 2010 23:37:41 +0000</pubDate>
		<guid isPermaLink="false">http://holyhandgrenade.org/blog/?p=462#comment-727</guid>
		<description>You&#039;ve just shown why the Linux approach is the right one.

On Linux, you can choose just how much you want to maintain yourself vs let the system maintain, which means you can minimize this type of pain.

Note that I have supported various commercial packages on Debian systems without a problem either.  Debian doesn&#039;t remove old sos on upgrade unless requested, so things don&#039;t break, even across major upgrades, even when they have very odd binary dependencies.  I have libc5 gcc 2.8-specific C++ x86 binaries that still work, no effort required.

Contraily, with a system like FreeBSD or Solaris, the pain is typically entirely upon the local administrator to deal with the most recent apache problem. 

I can&#039;t tell you how many times as a commercial software vendor I&#039;ve had to drop everything to deal with some major incompatability introduced by a minor update from a proprietary unix vendor, even though they insist that they&#039;re always ABI compatible.  Typically these are situations where you can claim the external symbol signatures haven&#039;t changed, even when the behavior, location, environment variables, or other aspects have.

As a proprietary software vendor it is easier to support Linux systems than any other unix.  That includes all the flavors.  Really.</description>
		<content:encoded><![CDATA[<p>You&#8217;ve just shown why the Linux approach is the right one.</p>
<p>On Linux, you can choose just how much you want to maintain yourself vs let the system maintain, which means you can minimize this type of pain.</p>
<p>Note that I have supported various commercial packages on Debian systems without a problem either.  Debian doesn&#8217;t remove old sos on upgrade unless requested, so things don&#8217;t break, even across major upgrades, even when they have very odd binary dependencies.  I have libc5 gcc 2.8-specific C++ x86 binaries that still work, no effort required.</p>
<p>Contraily, with a system like FreeBSD or Solaris, the pain is typically entirely upon the local administrator to deal with the most recent apache problem. </p>
<p>I can&#8217;t tell you how many times as a commercial software vendor I&#8217;ve had to drop everything to deal with some major incompatability introduced by a minor update from a proprietary unix vendor, even though they insist that they&#8217;re always ABI compatible.  Typically these are situations where you can claim the external symbol signatures haven&#8217;t changed, even when the behavior, location, environment variables, or other aspects have.</p>
<p>As a proprietary software vendor it is easier to support Linux systems than any other unix.  That includes all the flavors.  Really.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeff</title>
		<link>http://holyhandgrenade.org/blog/2009/12/linux-vs-solaris-packaging-its-a-philosophical-thing/comment-page-1/#comment-610</link>
		<dc:creator>Jeff</dc:creator>
		<pubDate>Thu, 03 Jun 2010 20:19:28 +0000</pubDate>
		<guid isPermaLink="false">http://holyhandgrenade.org/blog/?p=462#comment-610</guid>
		<description>You seem to be under the impression that I&#039;m arguing with your viewpoint here. Quite the contrary -- I think that in an ideal world, these kinds of upgrades should be really trivial. And if you don&#039;t run custom-compiled local versions of software, and if you don&#039;t run proprietary software (especially the &quot;enterprise&quot; variant) that&#039;s frightfully specific about its linked sonames, they stay really trivial. Debian has shown remarkable ability, probably more than any other Linux distribution, in being able to manage these kinds of upgrades.

If everything you run comes from a package that&#039;s tested by the vendor, and you&#039;re upgrading from one compatible package ecosystem to another, and your config file formats don&#039;t change, your upgrade should work just fine (though results may vary in the wonderfully fragile world of Red Hat). That, however, has absolutely nothing to do with the argument, because that&#039;s simply not the way that the world of proprietary software on commercial UNIX distributions works. The vendors don&#039;t run in lock-step with your operating system, and they don&#039;t provide special repositories so that the Etch version of their software is replaced with the Lenny version when you upgrade. (In fact, you&#039;re remarkably lucky if they even support anything besides Red Hat or SUSE at all.)

As a Debian guy, you&#039;re probably more used to the FOSS side of the spectrum, so let me just use a generic example from that arena. Say that for whatever reason, you&#039;ve compiled a local version of PHP against OpenLDAP 2.3, and your distribution decides it wants to start using OpenLDAP 2.4&#039;s ABI/soname-incompatible client libraries instead. You upgrade, and suddenly you&#039;ve introduced a problem for yourself if you haven&#039;t made a habit of specifically linking against a ton of your own manually-tracked dependencies, because your libldap2-3.so.0 happens to not exist anymore. You now need to hunt down and re-link all of your dependencies, some of which may not be apparent until certain edge cases during run-time are encountered and a handful of DSO&#039;s are loaded on demand and your programs begin mysteriously crashing because they&#039;re trying to call externs that don&#039;t actually exist.

Thankfully, we haven&#039;t had ABI changes the size of libc5-&gt;libc6 in many years, but it&#039;s absolutely conceivable that an upgrade can break a great many things if you rely on the fact that system libraries are going to stay one particular ABI version between releases.</description>
		<content:encoded><![CDATA[<p>You seem to be under the impression that I&#8217;m arguing with your viewpoint here. Quite the contrary &#8212; I think that in an ideal world, these kinds of upgrades should be really trivial. And if you don&#8217;t run custom-compiled local versions of software, and if you don&#8217;t run proprietary software (especially the &#8220;enterprise&#8221; variant) that&#8217;s frightfully specific about its linked sonames, they stay really trivial. Debian has shown remarkable ability, probably more than any other Linux distribution, in being able to manage these kinds of upgrades.</p>
<p>If everything you run comes from a package that&#8217;s tested by the vendor, and you&#8217;re upgrading from one compatible package ecosystem to another, and your config file formats don&#8217;t change, your upgrade should work just fine (though results may vary in the wonderfully fragile world of Red Hat). That, however, has absolutely nothing to do with the argument, because that&#8217;s simply not the way that the world of proprietary software on commercial UNIX distributions works. The vendors don&#8217;t run in lock-step with your operating system, and they don&#8217;t provide special repositories so that the Etch version of their software is replaced with the Lenny version when you upgrade. (In fact, you&#8217;re remarkably lucky if they even support anything besides Red Hat or SUSE at all.)</p>
<p>As a Debian guy, you&#8217;re probably more used to the FOSS side of the spectrum, so let me just use a generic example from that arena. Say that for whatever reason, you&#8217;ve compiled a local version of PHP against OpenLDAP 2.3, and your distribution decides it wants to start using OpenLDAP 2.4&#8242;s ABI/soname-incompatible client libraries instead. You upgrade, and suddenly you&#8217;ve introduced a problem for yourself if you haven&#8217;t made a habit of specifically linking against a ton of your own manually-tracked dependencies, because your libldap2-3.so.0 happens to not exist anymore. You now need to hunt down and re-link all of your dependencies, some of which may not be apparent until certain edge cases during run-time are encountered and a handful of DSO&#8217;s are loaded on demand and your programs begin mysteriously crashing because they&#8217;re trying to call externs that don&#8217;t actually exist.</p>
<p>Thankfully, we haven&#8217;t had ABI changes the size of libc5-&gt;libc6 in many years, but it&#8217;s absolutely conceivable that an upgrade can break a great many things if you rely on the fact that system libraries are going to stay one particular ABI version between releases.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joshua Rodman</title>
		<link>http://holyhandgrenade.org/blog/2009/12/linux-vs-solaris-packaging-its-a-philosophical-thing/comment-page-1/#comment-608</link>
		<dc:creator>Joshua Rodman</dc:creator>
		<pubDate>Wed, 02 Jun 2010 23:35:06 +0000</pubDate>
		<guid isPermaLink="false">http://holyhandgrenade.org/blog/?p=462#comment-608</guid>
		<description>Hilariously wrong.

I&#039;ve had Linux systems seemlessly upgraded across versions of Debian for over 7 years without service interruption.  This includes production systems providing live services.  People do not reformat instead of upgrade.</description>
		<content:encoded><![CDATA[<p>Hilariously wrong.</p>
<p>I&#8217;ve had Linux systems seemlessly upgraded across versions of Debian for over 7 years without service interruption.  This includes production systems providing live services.  People do not reformat instead of upgrade.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeff</title>
		<link>http://holyhandgrenade.org/blog/2009/12/linux-vs-solaris-packaging-its-a-philosophical-thing/comment-page-1/#comment-138</link>
		<dc:creator>Jeff</dc:creator>
		<pubDate>Thu, 14 Jan 2010 06:20:51 +0000</pubDate>
		<guid isPermaLink="false">http://holyhandgrenade.org/blog/?p=462#comment-138</guid>
		<description>Oh, wow, it feels like ages since I&#039;ve updated. Thanks for the comments.

I didn&#039;t mean for this to turn into too much of a discussion about Sun&#039;s packaging system in general; it&#039;s been covered before in much greater depth by people with much greater knowledge than I on all things Solaris. It was mostly intended to explain to Linux-centric people why Solaris&#039;s third-party package ecosystem is so bare-bones compared to Linux&#039;s, and why a lot of effort goes into building a full stack from source. Since nobody else is commenting, though, there&#039;s no reason to be afraid of a little derail. :)

SysV packaging is definitely showing its age, and you&#039;ll find few outside of the hardcore Sun faithful who actually try to defend it. IPS in OpenSolaris is still dog slow, much slower than any modern package manager ought to be, but I think it does address most of your concerns. Sun has a &lt;a href=&quot;http://dlc.sun.com/osol/docs/content/dev/IMGPACKAGESYS/gentextid-410.html&quot; rel=&quot;nofollow&quot;&gt;decent introduction to IPS packaging&lt;/a&gt; in their OpenSolaris docs. Also see the &lt;a href=&quot;http://dlc.sun.com/osol/docs/content/dev/IMGPACKAGESYS/gentextid-2535.html&quot; rel=&quot;nofollow&quot;&gt;command reference for pkg(1)&lt;/a&gt;, which has some other useful information in it.

Here&#039;s the nickel version:

IPS handles upgrading pretty seamlessly. Not only does it handle upgrades in the sane way expected of a modern package manager, but it also can take a full ZFS snapshot of your boot environment so you can roll back to a known-working package set without a lot of fuss. (This isn&#039;t hard using RHN Satellite or Spacewalk either, from the Red Hat side, but it takes a lot more plumbing and infrastructure and relies on your ability to downgrade packages cleanly.)

Checksums are handled well by &quot;pkg verify&quot;, as are other things that any other modern package manager could sanity-check, like permissions. OpenSolaris loses points by not having the output format easily parseable/scriptable like the output of &quot;rpm --verify&quot; but the functionality is in place and usable, at least.

Querying and listing packages is done through &quot;pkg contents&quot; and &quot;pkg search&quot;. These functions work identically on local and remote packages, which gives IPS a tiny leg up on its Linux counterparts.

It also manages dependencies pretty well -- that was more or less the entire point of bringing Ian Murdock on board with Sun&#039;s platform team. The lack of a regular Internet-oriented package manager like most Linux distros have had for a very long time is definitely something that&#039;s scared a lot of Linux users away from Solaris.

Of course, this means pretty much nothing to you if you&#039;re not running OpenSolaris, which takes some balls to do at this point. And, like any major change in an OS like Solaris, it introduces its own set of problems. Here&#039;s a quote from the pkg(5) manpage about package version numbers:

&lt;blockquote&gt;The first part is the component version.  For components tightly bound to OpenSolaris, this will usually be the value of &#039;uname -r&#039; for that version of OpenSolaris.  For a component with its own development lifecycle, this sequence will be the dotted release number, such as &#039;2.4.10&#039;.&lt;/blockquote&gt;

How very intuitive, Sun.</description>
		<content:encoded><![CDATA[<p>Oh, wow, it feels like ages since I&#8217;ve updated. Thanks for the comments.</p>
<p>I didn&#8217;t mean for this to turn into too much of a discussion about Sun&#8217;s packaging system in general; it&#8217;s been covered before in much greater depth by people with much greater knowledge than I on all things Solaris. It was mostly intended to explain to Linux-centric people why Solaris&#8217;s third-party package ecosystem is so bare-bones compared to Linux&#8217;s, and why a lot of effort goes into building a full stack from source. Since nobody else is commenting, though, there&#8217;s no reason to be afraid of a little derail. <img src='http://holyhandgrenade.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>SysV packaging is definitely showing its age, and you&#8217;ll find few outside of the hardcore Sun faithful who actually try to defend it. IPS in OpenSolaris is still dog slow, much slower than any modern package manager ought to be, but I think it does address most of your concerns. Sun has a <a href="http://dlc.sun.com/osol/docs/content/dev/IMGPACKAGESYS/gentextid-410.html" rel="nofollow">decent introduction to IPS packaging</a> in their OpenSolaris docs. Also see the <a href="http://dlc.sun.com/osol/docs/content/dev/IMGPACKAGESYS/gentextid-2535.html" rel="nofollow">command reference for pkg(1)</a>, which has some other useful information in it.</p>
<p>Here&#8217;s the nickel version:</p>
<p>IPS handles upgrading pretty seamlessly. Not only does it handle upgrades in the sane way expected of a modern package manager, but it also can take a full ZFS snapshot of your boot environment so you can roll back to a known-working package set without a lot of fuss. (This isn&#8217;t hard using RHN Satellite or Spacewalk either, from the Red Hat side, but it takes a lot more plumbing and infrastructure and relies on your ability to downgrade packages cleanly.)</p>
<p>Checksums are handled well by &#8220;pkg verify&#8221;, as are other things that any other modern package manager could sanity-check, like permissions. OpenSolaris loses points by not having the output format easily parseable/scriptable like the output of &#8220;rpm &#8211;verify&#8221; but the functionality is in place and usable, at least.</p>
<p>Querying and listing packages is done through &#8220;pkg contents&#8221; and &#8220;pkg search&#8221;. These functions work identically on local and remote packages, which gives IPS a tiny leg up on its Linux counterparts.</p>
<p>It also manages dependencies pretty well &#8212; that was more or less the entire point of bringing Ian Murdock on board with Sun&#8217;s platform team. The lack of a regular Internet-oriented package manager like most Linux distros have had for a very long time is definitely something that&#8217;s scared a lot of Linux users away from Solaris.</p>
<p>Of course, this means pretty much nothing to you if you&#8217;re not running OpenSolaris, which takes some balls to do at this point. And, like any major change in an OS like Solaris, it introduces its own set of problems. Here&#8217;s a quote from the pkg(5) manpage about package version numbers:</p>
<blockquote><p>The first part is the component version.  For components tightly bound to OpenSolaris, this will usually be the value of &#8216;uname -r&#8217; for that version of OpenSolaris.  For a component with its own development lifecycle, this sequence will be the dotted release number, such as &#8217;2.4.10&#8242;.</p></blockquote>
<p>How very intuitive, Sun.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Siebenmann</title>
		<link>http://holyhandgrenade.org/blog/2009/12/linux-vs-solaris-packaging-its-a-philosophical-thing/comment-page-1/#comment-130</link>
		<dc:creator>Chris Siebenmann</dc:creator>
		<pubDate>Mon, 11 Jan 2010 17:22:46 +0000</pubDate>
		<guid isPermaLink="false">http://holyhandgrenade.org/blog/?p=462#comment-130</guid>
		<description>I disagree with this view; I think that Solaris packaging is bad for reasons unrelated to how widely it&#039;s used (or how many packages Solaris includes by default). Instead, I dislike it because it works badly and doesn&#039;t give me the information I need. I wrote &lt;a href=&quot;http://utcc.utoronto.ca/~cks/space/blog/solaris/BadSolarisPackaging&quot; rel=&quot;nofollow&quot;&gt;a long entry&lt;/a&gt; to explain why in more depth.</description>
		<content:encoded><![CDATA[<p>I disagree with this view; I think that Solaris packaging is bad for reasons unrelated to how widely it&#8217;s used (or how many packages Solaris includes by default). Instead, I dislike it because it works badly and doesn&#8217;t give me the information I need. I wrote <a href="http://utcc.utoronto.ca/~cks/space/blog/solaris/BadSolarisPackaging" rel="nofollow">a long entry</a> to explain why in more depth.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
