<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <title>Blog entries tagged ubuntu :: mwop.net</title>
    <description>Blog entries tagged ubuntu :: mwop.net</description>
    <pubDate>Wed, 06 Dec 2023 17:15:00 -0600</pubDate>
    <generator>Laminas_Feed_Writer 2 (https://getlaminas.org)</generator>
    <link>https://mwop.net/blog/tag/ubuntu</link>
    <atom:link rel="self" type="application/rss+xml" href="https://mwop.net/blog/tag/ubuntu/rss.xml"/>
    <item>
      <title>Advent 2023: MOTD on Ubuntu</title>
      <pubDate>Wed, 06 Dec 2023 17:15:00 -0600</pubDate>
      <link>https://mwop.net/blog/2023-12-05-advent-motd.html</link>
      <guid>https://mwop.net/blog/2023-12-05-advent-motd.html</guid>
      <author>contact@mwop.net (Matthew Weier O'Phinney)</author>
      <dc:creator>Matthew Weier O'Phinney</dc:creator>
      <content:encoded><![CDATA[<p>I never intended for this <a href="https://mwop.net/blog/tag/advent2023">Advent 2023 series</a> to be a &quot;Matthew's Bash Tips&quot; series, but evidently, that's where things are going.</p>
<p>Today, I detail how to get the &quot;message of the day&quot; on Ubuntu</p>


<h3>Why &quot;message of the day&quot;?</h3>
<p>A long-standing tradition on Unix and Linux servers is to emit a &quot;message of the day&quot; when somebody logs in to the server.
Often these are setup to only display to the user the first time they login for the day (hence &quot;of the day&quot;).</p>
<p>In the old days, this was generally found in <code>/etc/motd</code>, and would be manually updated by systems admins on the machine.</p>
<h3>What's changed?</h3>
<p>In today's world, the operating system will often have a way to aggregate messages, which simultaneously allows the OS to inject important information: OS and kernel version, uptime, whether or not security patches are available, and more.</p>
<p>On Ubuntu systems, these are pushed to the directory <code>/etc/update-motd.d</code>, and each is a script that can be run to emit information.
By using this approach, a script can run commands and determine if anything needs to be communicated, ensuring that you only get up-to-date information.</p>
<p>However... this means you can't just run <code>cat /etc/motd</code> anymore in case you missed it, or your session is still active, or, if you use Linux on the desktop, you want to see it, but are in a graphical shell and never got to see the message.</p>
<p>So, how do you do it?</p>
<pre><code class="language-bash hljs bash" data-lang="bash">sudo run-parts /etc/update-motd.d`
</code></pre>


<div class="h-entry">
    <img class="u-photo photo" width="50" src="https://avatars0.githubusercontent.com/u/25943?v=3&u=79dd2ea1d4d8855944715d09ee4c86215027fa80&s=140" alt="matthew">
    <a class="u-url u-uid p-name" href="https://mwop.net/blog/2023-12-05-advent-motd.html">Advent 2023: MOTD on Ubuntu</a> was originally
    published <time class="dt-published" datetime="2023-12-06T17:15:00-06:00">6 December 2023</time>
    on <a href="https://mwop.net">https://mwop.net</a> by
    <a rel="author" class="p-author" href="https://mwop.net">Matthew Weier O&#039;Phinney</a>.
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>Managing Multiple PHP versions via the ondrej/php PPA</title>
      <pubDate>Thu, 16 Apr 2020 11:46:00 -0500</pubDate>
      <link>https://mwop.net/blog/2019-04-30-ondrej-multiversion-php.html</link>
      <guid>https://mwop.net/blog/2019-04-30-ondrej-multiversion-php.html</guid>
      <author>contact@mwop.net (Matthew Weier O'Phinney)</author>
      <dc:creator>Matthew Weier O'Phinney</dc:creator>
      <content:encoded><![CDATA[<p>Last week, I did some system updates, and then decided to compile the most
recent PHP releases. I've used <a href="https://phpbrew.github.io/phpbrew/">phpbrew</a> to
manage multiple PHP releases for a number of years, and having it install a new
version is fairly routine.</p>
<p>Except this time, it wasn't. Due to updates I installed, I was getting errors
first with compiling the GD extension, then with ext-intl:</p>
<ul>
<li>
<p>If you want Freetype support in ext-gd, you are expected to install the
package libfreetype-dev. On Ubuntu, this now installs libfreetype6-dev, which
no longer includes the <code>freetype-config</code> binary that PHP's <code>configure</code> script
uses to determine what features it supports.</p>
</li>
<li>
<p>Similarly, ext-intl depends on the package libicu-dev. Ubuntu's package now
omits the <code>icu-config</code> binary used by PHP to determine feature support.</p>
</li>
</ul>
<p>I searched for quite some time to find packages that would resolve these
problems. I could have found the source code and compiled it and linked to that,
but that would mean keeping that up-to-date on top of my PHP installs.</p>
<p>I even looked in the <a href="https://deb.sury.org/">ondrej/php PPA</a>, as that repository
has multiple PHP versions already, including source packages.</p>
<p>And then I thought: why not try using those instead of phpbrew?</p>
<p>The rest of this post is how I made that work.</p>


<blockquote>
<p>I use Ubuntu for my operating system. The instructions I present here should
work on any Debian-based system, but your mileage may vary. If you are using
an RPM-based system, <code>yum</code> will be your friend, but I have no idea how to add
repositories in that system, nor if <code>update-alternatives</code> is available. As
such, these instructions may or may not help you.</p>
<p>Which is okay. I mainly wrote them to help future me.</p>
</blockquote>
<h2>Register the PPA</h2>
<p>First, I had to add the PPA to the system:</p>
<pre><code class="language-bash hljs bash" data-lang="bash">$ sudo add-apt-repository ppa:ondrej/php
</code></pre>
<p>Then the usual:</p>
<pre><code class="language-bash hljs bash" data-lang="bash">$ sudo apt update
</code></pre>
<h2>Approach to installation</h2>
<p>I first identified the extensions I typically install, matched them to
packages in the PPA, and made a list. I knew I'd be installing the same
extensions across all PHP versions I wanted, so I figured I could script it a
bit.</p>
<p>From there, I executed the following from the CLI:</p>
<pre><code class="language-bash hljs bash" data-lang="bash">$ <span class="hljs-keyword">for</span> VERSION <span class="hljs-keyword">in</span> 5.6 7.0 7.1 7.2 7.3;<span class="hljs-keyword">do</span>
<span class="hljs-keyword">for</span>&gt; <span class="hljs-keyword">for</span> EXTENSION <span class="hljs-keyword">in</span> {listed all extensions here};<span class="hljs-keyword">do</span>
<span class="hljs-keyword">for</span> <span class="hljs-keyword">for</span>&gt; sudo apt install php<span class="hljs-variable">${VERSION}</span>-<span class="hljs-variable">${EXTENSION}</span>
<span class="hljs-keyword">for</span> <span class="hljs-keyword">for</span>&gt; <span class="hljs-keyword">done</span>
<span class="hljs-keyword">for</span>&gt; <span class="hljs-keyword">done</span>
</code></pre>
<p>This grabbed and installed each PHP I needed along with all extensions I wanted.</p>
<h2>Switching between versions</h2>
<p>To switch between versions, you have two options:</p>
<ul>
<li>
<p>Use the version-specific binaries: <code>/usr/bin/php5.6</code>, <code>/usr/bin/php7.0</code>, etc.</p>
</li>
<li>
<p>Set a default via <code>update-alternatives</code>:</p>
<pre><code class="language-bash hljs bash" data-lang="bash">$ sudo update-alternatives --<span class="hljs-built_in">set</span> php /usr/bin/php5.6
</code></pre>
<p>If you're not sure what you have installed, use:</p>
<pre><code class="language-bash hljs bash" data-lang="bash">$ sudo update-alternatives --config php
</code></pre>
<p>which will give you a listing, and an ability to select the one to use.</p>
</li>
</ul>
<h3>Rootless alternatives</h3>
<p>What if you'd rather not be root to switch the default version, though?
Fortunately, <code>update-alternatives</code> allows specifying alternate config and admin
directories.</p>
<p>Define the following alias in your shell's configuration:</p>
<pre><code class="language-bash hljs bash" data-lang="bash"><span class="hljs-built_in">alias</span> update-my-alternatives=<span class="hljs-string">'update-alternatives \
 --altdir ~/.local/etc/alternatives \
 --admindir ~/.local/var/lib/alternatives'</span>
</code></pre>
<p>Additionally, make sure you add <code>$HOME/.local/bin</code> to your <code>$PATH</code>; since
defining <code>$PATH</code> varies based on the shell you use, I'll leave that for you to
accomplish.</p>
<p>If you open a new shell, the alias will now be available; alternately, source
the file in which you defined it to have it take effect immediately.</p>
<p>Once you've done that, you can run the following, based on the PHP versions
you've installed:</p>
<pre><code class="language-bash hljs bash" data-lang="bash">$ <span class="hljs-keyword">for</span> VERSION <span class="hljs-keyword">in</span> 5.6 7.0 7.1 7.2 7.3;<span class="hljs-keyword">do</span>
<span class="hljs-keyword">for</span>&gt; update-my-alternatives --install <span class="hljs-variable">$HOME</span>/.<span class="hljs-built_in">local</span>/bin/php php /usr/bin/php<span class="hljs-variable">${VERSION}</span> <span class="hljs-variable">${VERSION//./0}</span>
<span class="hljs-keyword">for</span>&gt; <span class="hljs-keyword">done</span>
</code></pre>
<p>This will create alternatives entries local to your own user, prioritizing them
by version; as a result, the default, auto-selected version will be the most
recently installed.</p>
<p>You can verify this by running <code>update-my-alternatives --config php</code>:</p>
<pre><code class="language-text">There are 5 choices for the alternative php (providing $HOME/.local/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php7.3   703       auto mode
  1            /usr/bin/php5.6   506       manual mode
  2            /usr/bin/php7.0   700       manual mode
  3            /usr/bin/php7.1   701       manual mode
  4            /usr/bin/php7.2   702       manual mode
  5            /usr/bin/php7.3   703       manual mode

Press &lt;enter&gt; to keep the current choice[*], or type selection number:
</code></pre>
<p>To switch between versions using the alias:</p>
<ul>
<li>
<p>Switch to a specific, known version:</p>
<pre><code class="language-bash hljs bash" data-lang="bash">$ update-my-alternatives --<span class="hljs-built_in">set</span> php /usr/bin/php{VERSION}
</code></pre>
</li>
<li>
<p>Switch back to the default version (version with highest priority):</p>
<pre><code class="language-bash hljs bash" data-lang="bash">$ update-my-alternatives --auto php
</code></pre>
</li>
<li>
<p>List available versions:</p>
<pre><code class="language-bash hljs bash" data-lang="bash">$ update-my-alternatives --list php
</code></pre>
</li>
<li>
<p>Interactively choose a version when you're not sure what's available:</p>
<pre><code class="language-bash hljs bash" data-lang="bash">$ update-my-alternatives --config php
</code></pre>
</li>
</ul>
<blockquote>
<p>The above was cobbled together from:</p>
<ul>
<li><a href="https://serverfault.com/a/811377">https://serverfault.com/a/811377</a></li>
<li><a href="https://williamdemeo.github.io/linux/update-alternatives.html">https://williamdemeo.github.io/linux/update-alternatives.html</a></li>
</ul>
</blockquote>
<h2>PECL</h2>
<p>Compiling and installing your own extensions turns out to be a bit of a pain
when you have multiple PHP versions installed, mainly because there is exactly
one PECL binary installed.</p>
<p>First, you need to install a few packages, including the one containing PEAR
(PECL uses the PEAR installer), and the development packages for each PHP
version you use (as those contain the tools necessary to compile extensions,
including <code>phpize</code> and <code>php-config</code>):</p>
<pre><code class="language-bash hljs bash" data-lang="bash">$ sudo apt install php-pear
$ <span class="hljs-keyword">for</span> VERSION <span class="hljs-keyword">in</span> 5.6 7.0 7.1 7.2 7.3;<span class="hljs-keyword">do</span>
<span class="hljs-keyword">for</span>&gt; sudo apt install php<span class="hljs-variable">${VERSION}</span>-dev
<span class="hljs-keyword">for</span>&gt; <span class="hljs-keyword">done</span>
</code></pre>
<h3>Compiling extensions</h3>
<p>From there, you need to:</p>
<ol>
<li>Ensure the correct <code>phpize</code> and <code>php-config</code> are selected.</li>
<li>Install the extension.</li>
<li>Tell PECL to deregister the extension in its own registry.</li>
</ol>
<p>Normally, you would accomplish the first point by doing the following:</p>
<pre><code class="language-bash hljs bash" data-lang="bash">$ sudo update-alternatives --<span class="hljs-built_in">set</span> php /usr/bin/php7.3
$ sudo update-alternatives --<span class="hljs-built_in">set</span> php-config /usr/bin/php-config7.3
$ sudo update-alternatives --<span class="hljs-built_in">set</span> phpize /usr/bin/phpize7.3
</code></pre>
<blockquote>
<p>Note that the above is <strong>not</strong> using the <code>update-my-alternatives</code> alias
detailed in the previous section. This is because extensions must be installed
at the <strong>system</strong> level.</p>
<p>That said, the above won't be necessary, as I detail below.</p>
</blockquote>
<p>However, PECL now has a really nice configuration flag, <code>php_suffix</code>, that
allows specifying a string <em>to append to each of the php, phpize, and php-config
binary names</em>. So, for example, if I specify <code>pecl -d php_suffix=7.3</code>, the
string <code>7.3</code> will be appended to those, so that they become <code>php7.3</code>,
<code>phpize7.3</code>, and <code>php-config7.3</code>, respectively. This ensures that the correct
scripts are called during the build process, and that the extension is installed
to the correct location.</p>
<p>As for the last point in that numbered list, it's key to being able to install
an extension in multiple PHP versions; otherwise, each subsequent attempt, even
when using a different PHP version, will result in PECL indicating it's already
installed. The <code>-r</code> switch tells PECL to remove the package from its own
registry, <em>but not to remove any build artifacts</em>.</p>
<p>As a complete example:</p>
<pre><code class="language-bash hljs bash" data-lang="bash">$ sudo pecl -d install php_suffix=7.3 swoole &amp;&amp; sudo pecl uninstall -r swoole
</code></pre>
<h3>Registering extensions</h3>
<p>From there, you still have to register, and optionally configure, the extension.
To do this, drop a file named after the extension in
<code>/etc/php/${PHP_VERSION}/mods-available/${EXTENSION}.ini</code>, with the following
contents:</p>
<pre><code class="language-dosini">; configuration for php ${EXTENSION} module
; priority=20
extension=${EXTENSION}.so
</code></pre>
<p>Now that this is in place, enable it:</p>
<pre><code class="language-bash hljs bash" data-lang="bash">$ sudo phpenmod -v <span class="hljs-variable">${PHP_VERSION}</span> -s cli <span class="hljs-variable">${EXTENSION}</span>
</code></pre>
<p>(To disable it, use <code>phpdismod</code> instead.)</p>
<h2>Thoughts</h2>
<p>When thinking in terms of phpbrew:</p>
<ul>
<li>
<p>Like <code>phpbrew</code>, you can temporarily choose an alternative PHP binary
by simply referring to its path. With <code>phpbrew</code>, this would be something like
<code>~/.phpbrew/php/php-{PHP_VERSION}/bin/php</code>. With the ondrej PPA, it becomes
<code>/usr/bin/php{PHP_MINOR_VERSION}</code>. (E.g. <code>~/.phpbrew/php/php-7.2.36/bin/php</code>
would become just <code>/usr/bin/php7.2</code>.)</p>
</li>
<li>
<p>There is no equivalent to <code>phpbrew use</code>. That feature would change the symlink
only for the duration of the current terminal session. Opening a new terminal
session would revert to the previous selection. With <code>update-alternatives</code>,
it's all or nothing. I mainly used <code>phpbrew use</code> to ensure my default PHP did
not change in case I forgot to call it again.</p>
</li>
<li>
<p>Usage of <code>update-alternatives</code> is more like <code>phpbrew switch</code>, as it affects
both the current and all later terminal sessions. Once switched, that selection
is in use until you switch it again. This means I have to remember to switch
to my default version. However, it's relatively easy to add a line to my shell
profile to call <code>update-my-alternatives --auto php</code>.</p>
</li>
</ul>
<p>Basically, if you can use the binary directly, but don't want to use that one as
your default, refer to it by absolute path. If you are using a command that will
use the current environment's PHP, use <code>update-my-alternatives</code> to switch PHP
versions first.</p>
<p>The other issue I see is that if I want to test against a <em>specific</em> PHP
version, I'll still need to compile it myself — which leads me back to the
original problem that led me here in the first place. I'll cross that bridge
when I get to it. Until then, I have a workable solution — and finally a
single document I can refer to when I need to remember again at a later date,
instead of cobbling it together from multiple sources!</p>
<h3>Updates</h3>
<ul>
<li>2020-04-16: fixes reference to PPA in command that adds it to system.</li>
<li>2019-05-01: added breakpoint so that full post is not presented in lists.</li>
</ul>


<div class="h-entry">
    <img class="u-photo photo" width="50" src="https://avatars0.githubusercontent.com/u/25943?v=3&u=79dd2ea1d4d8855944715d09ee4c86215027fa80&s=140" alt="matthew">
    <a class="u-url u-uid p-name" href="https://mwop.net/blog/2019-04-30-ondrej-multiversion-php.html">Managing Multiple PHP versions via the ondrej/php PPA</a> was originally
    published <time class="dt-published" datetime="2019-04-30T17:10:00-05:00">30 April 2019</time>
    on <a href="https://mwop.net">https://mwop.net</a> by
    <a rel="author" class="p-author" href="https://mwop.net">Matthew Weier O&#039;Phinney</a>.
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>Fixing gnome-shell app indicators in Ubuntu</title>
      <pubDate>Tue, 02 Apr 2019 08:30:00 -0500</pubDate>
      <link>https://mwop.net/blog/2019-04-02-ubuntu-gnome-appindicators.html</link>
      <guid>https://mwop.net/blog/2019-04-02-ubuntu-gnome-appindicators.html</guid>
      <author>contact@mwop.net (Matthew Weier O'Phinney)</author>
      <dc:creator>Matthew Weier O'Phinney</dc:creator>
      <content:encoded><![CDATA[<p>I am a long-time <a href="https://wiki.gnome.org/Projects/GnomeShell">gnome-shell</a> user.
I appreciate the simplicity and elegance it provides, as I prefer having a
minimalist environment that still provides me easy access to the applications I
use.</p>
<p>That said, just as with any desktop environment, I've still run into problems
now and again. One that's been plaguing me since at least the 18.04 release is
with display of app indicators, specifically those using legacy system tray
APIs.</p>
<p>Normally, gnome-shell ignores these, which is suboptimal as a number of popular
programs still use them (including Dropbox, Nextcloud, Keybase, Shutter, and
many others). To integrate them into Gnome, Ubuntu provides the gnome-shell
extension &quot;kstatusnotifieritem/appindicator support&quot; (via the package
<code>gnome-shell-extension-appindicator</code>). When enabled, they show up in your
gnome-shell panel. Problem solved!</p>
<p>Except that if you suspend your system or lock your screen, they disappear when
you wake it up.</p>
<p>Now, you can get them back by hitting <code>Alt-F2</code>, and entering <code>r</code> (for &quot;restart&quot;)
at the prompt. But having to do that after every time you suspend or lock is
tedious.</p>
<p>Fortunately, I recently came across this gem:</p>
<pre><code class="language-bash hljs bash" data-lang="bash">$ sudo apt purge indicator-common
</code></pre>
<p>This removes some packages specific to Ubuntu's legacy Unity interface that
interfere with how appindicators are propagated to the desktop. Once I did this,
my appindicators persisted after all suspend/lock operations!</p>




<div class="h-entry">
    <img class="u-photo photo" width="50" src="https://avatars0.githubusercontent.com/u/25943?v=3&u=79dd2ea1d4d8855944715d09ee4c86215027fa80&s=140" alt="matthew">
    <a class="u-url u-uid p-name" href="https://mwop.net/blog/2019-04-02-ubuntu-gnome-appindicators.html">Fixing gnome-shell app indicators in Ubuntu</a> was originally
    published <time class="dt-published" datetime="2019-04-02T08:30:00-05:00">2 April 2019</time>
    on <a href="https://mwop.net">https://mwop.net</a> by
    <a rel="author" class="p-author" href="https://mwop.net">Matthew Weier O&#039;Phinney</a>.
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>Fixing AMD Radeon Display Issues in Ubuntu 14.10</title>
      <pubDate>Mon, 03 Nov 2014 14:15:00 -0600</pubDate>
      <link>https://mwop.net/blog/2014-11-03-utopic-and-amd.html</link>
      <guid>https://mwop.net/blog/2014-11-03-utopic-and-amd.html</guid>
      <author>contact@mwop.net (Matthew Weier O'Phinney)</author>
      <dc:creator>Matthew Weier O'Phinney</dc:creator>
      <content:encoded><![CDATA[<p>After upgrading to <a href="https://wiki.ubuntu.com/UtopicUnicorn/ReleaseNotes">Ubuntu 14.10</a>,
I faced a blank screen after boot. As in: no GUI login prompt, just a blank
screen. My monitors were on, I'd seen the graphical splash screen as Ubuntu
booted, but nothing once complete.</p>
<p>Fortunately, I <em>could</em> switch over to a TTY prompt (using Alt+F1), so I had
some capacity to try and fix the situation. The question was: what did I need
to do?</p>


<h2>Go Back To Basics</h2>
<p>While the Linux kernel was recognizing my Radeon 6750, and even the X server
had no problems detecting it and setting it up, I still faced a display issue.
Fortunately, there's a fix for that: remove the proprietary drivers.</p>
<p>The steps for removing the proprietary drivers are as follows:</p>
<pre><code class="language-bash hljs bash" data-lang="bash">$ sudo apt-get purge <span class="hljs-string">'fglrx*'</span>
$ sudo update-alternatives --remove-all x86_64-linux-gnu_gl_conf
$ sudo apt-get install --reinstall libgl1-mesa-dri libgl1-mesa-glx
</code></pre>
<p>Some people will tell you then to reinstall the fglrx drivers Ubuntu ships, or
even the &quot;fglrx-updates&quot; set, but I found it best to go all the way back to
basics.</p>
<p>After executing the above steps, reboot so that they drivers are present in the
kernel.</p>
<p>Once you do, you can try your luck with the proprietary drivers, using the
&quot;Additional Drivers&quot; tool built into Ubuntu. I personally found that neither
the proprietary fglrx drivers, fglrx-updates, nor the official AMD Catalyst
sources worked — and, after each failed attempt, I'd run the above to get back
to a working state.</p>
<p>My conclusion is that the proprietary drivers are likely not yet tested with
the kernel sources currently in use by 14.10. Fortunately, the OSS variants
with which Ubuntu ships appear to be quite stable, and cover all the features
that the proprietary versions covered previously.</p>
<p>As always with a post like this: your mileage may vary. Hopefully the steps
above will help at least a few of you; they worked for me on both my
workstation and laptop.</p>


<div class="h-entry">
    <img class="u-photo photo" width="50" src="https://avatars0.githubusercontent.com/u/25943?v=3&u=79dd2ea1d4d8855944715d09ee4c86215027fa80&s=140" alt="matthew">
    <a class="u-url u-uid p-name" href="https://mwop.net/blog/2014-11-03-utopic-and-amd.html">Fixing AMD Radeon Display Issues in Ubuntu 14.10</a> was originally
    published <time class="dt-published" datetime="2014-11-03T14:15:00-06:00">3 November 2014</time>
    on <a href="https://mwop.net">https://mwop.net</a> by
    <a rel="author" class="p-author" href="https://mwop.net">Matthew Weier O&#039;Phinney</a>.
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>Server Upgrades... lost entries...</title>
      <pubDate>Wed, 21 May 2008 14:35:27 -0500</pubDate>
      <link>https://mwop.net/blog/171-Server-Upgrades...-lost-entries....html</link>
      <guid>https://mwop.net/blog/171-Server-Upgrades...-lost-entries....html</guid>
      <author>contact@mwop.net (Matthew Weier O'Phinney)</author>
      <dc:creator>Matthew Weier O'Phinney</dc:creator>
      <content:encoded><![CDATA[<p>My good friend, Rob, hosts my site for me, in return for helping with server
maintenance. After being on Gentoo for the past three years, though, we decided
it was time to switch to something a little easier to maintain, so last night
we wiped the system partitions and installed Ubuntu server.</p>
<p>I'll say this: the setup is much faster! However, we had a few gotchas that
surprised us — it didn't setup our RAID array out-of-the-box, which led to a
good hour of frustration as we tried to verify that the install wouldn't wipe
it, and then to verify that we could re-assemble it. (We succeeded.)
Additionally, we second-guessed a few things we shouldn't have, which led to
needing to back out and reconfigure. But what was over a 12 hour install with
Gentoo we accomplished in a matter of a few hours with Ubuntu server — so it
was a huge success that way.</p>
<p>Unfortunately, our mysqldump of all databases… wasn't, a fact we discovered
only after importing it into the new system. I ended up losing my blog database
and PEAR channel database. Fortunately, the PEAR channel has not changed at all
in the past year, so we had an old backup that worked, and I had a snapshot of
my blog database from three weeks ago I was able to use. As a result, there are
a few missing entries, but for the most part, all works. If you commented on
one of those missing entries, my apologies.</p>
<p>Now that the install is done, I'm also finalizing some design changes to my
blog — it's time to leave the black and white for more colorful grounds. Look
for a revamp in the coming weeks!</p>




<div class="h-entry">
    <img class="u-photo photo" width="50" src="https://avatars0.githubusercontent.com/u/25943?v=3&u=79dd2ea1d4d8855944715d09ee4c86215027fa80&s=140" alt="matthew">
    <a class="u-url u-uid p-name" href="https://mwop.net/blog/171-Server-Upgrades...-lost-entries....html">Server Upgrades... lost entries...</a> was originally
    published <time class="dt-published" datetime="2008-05-16T09:05:13-05:00">16 May 2008</time>
    on <a href="https://mwop.net">https://mwop.net</a> by
    <a rel="author" class="p-author" href="https://mwop.net">Matthew Weier O&#039;Phinney</a>.
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
    <item>
      <title>Gutsy Gibbon review</title>
      <pubDate>Mon, 04 Jul 2016 12:10:00 -0500</pubDate>
      <link>https://mwop.net/blog/147-Gutsy-Gibbon-review.html</link>
      <guid>https://mwop.net/blog/147-Gutsy-Gibbon-review.html</guid>
      <author>contact@mwop.net (Matthew Weier O'Phinney)</author>
      <dc:creator>Matthew Weier O'Phinney</dc:creator>
      <content:encoded><![CDATA[<p>Early in the week, I decided to avoid the release rush and go ahead and update
my laptop to <a href="http://www.ubuntu.com">Ubuntu's</a> Gutsy Gibbon release. Overall,
it's quite good, with one caveat I'll elaborate on later.</p>


<p>I'd been having some issues with fonts following a session at ZendCon where I
hooked my laptop up to a widescreen display, and the updates fixed all those
issues. Most things that worked before continued to work, and often in an
improved way. The various new themes available — from GDM to GTK to window
manager themes — make for some pretty displays, and I've found a new look for
my desktop that I really like.</p>
<p>Among the improvements, it installed <a href="http://www.gnome.org/projects/tracker/">trackerd</a>,
a desktop search tool. I'd tried installing this on my own before, but ran into
a ton of dependency issues I couldn't fix. Prior to this, I'd used beagle, which
worked okay, but tended to overlook a lot of files. Trackerd, on the other hand,
indexed my entire box overnight, and stays on top of new files easily. Couple
this with the 'deskbar', and I now have the type of desktop search I've only
seen in Macs.</p>
<p>Last night, I stumbled upon <a href="https://web.archive.org/web/20061110204904/https://help.ubuntu.com/community/CompositeManager/Xgl#head-3138701daf76c1fd11c0b68bf5745c1d1ccacca5">a forum thread</a>
detailing how to get X compositing working with ATI cards. This was something
I've been continually disappointed with; my card supposedly supports it, but
every time I've tried using it, I find it unusable — lots of wierd screen
artifacts, and a huge slowdown in responsiveness. After following the directions
in the linked article, however, I now have compositing going — window drop
shadows, translucency for inactive windows, etc. It looks really nice, and
doesn't seem to be slowing down the machine at all.</p>
<p>No review would be complete without a gripe though, right? And I've got a big
one. In the past, one of the strengths of ubuntu for me has been that suspend
and hibernate have just worked. With this upgrade, however, they no longer work
for me. Evidently, a new kernel option was enabled that is supposed to speed up
these operations… However, the available ATI drivers do not support this
option, which leads, in my case, to a complete inability to suspend or
hibernate, and for others, lockup on resume. Supposedly ATI will be releasing
new drivers that will fix the issue, but there's no published time frame for
when that will happen. Additionally, ubuntu made no announcements about the
issue, and provides no workarounds. To me, this is a huge BC break, and should
have been addressed prior to the release, particularly as there were many, many
complaints about it in the weeks prior to the release.</p>
<p>Gripes aside, I find the new functionality fantastic, and look forward to ATI's
release of new drivers for its Radeon series cards. Perhaps this release will
keep me happy enough that I won't keep lusting for a shiny new Macbook too much.</p>
<h3>Updates</h3>
<ul>
<li><em>2016-07-04</em>: Updated the link to the forum thread to point to an archived
version on the Wayback Machine.</li>
</ul>


<div class="h-entry">
    <img class="u-photo photo" width="50" src="https://avatars0.githubusercontent.com/u/25943?v=3&u=79dd2ea1d4d8855944715d09ee4c86215027fa80&s=140" alt="matthew">
    <a class="u-url u-uid p-name" href="https://mwop.net/blog/147-Gutsy-Gibbon-review.html">Gutsy Gibbon review</a> was originally
    published <time class="dt-published" datetime="2007-10-20T07:55:00-05:00">20 October 2007</time>
    on <a href="https://mwop.net">https://mwop.net</a> by
    <a rel="author" class="p-author" href="https://mwop.net">Matthew Weier O&#039;Phinney</a>.
</div>
]]></content:encoded>
      <slash:comments>0</slash:comments>
    </item>
  </channel>
</rss>
