textshapehttps://textshape.com/2022-05-22T12:01:00+02:00Andrea Kristen's Personal WebsiteWebsite Update2022-05-22T12:01:00+02:002022-05-22T12:01:00+02:00Andrea Kristentag:textshape.com,2022-05-22:/website-update.html<p>After years of not touching it, I have finally updated this website.</p><h1>Why I have finally updated this website</h1>
<p>After years of not touching it, I have updated this website. When I first created it in 2005, I wanted a space to publish short technical how-to articles and to share photos with my family.</p>
<p>The online world has changed beyond recognition since then, and the content on my website was thoroughly outdated. This is why I decided to remove all the old content and create a minimal web presence. </p>
<p>The trigger for finally tackling this task was a recent article in the ct magazine about pelican, a website generator which lets you write all the content in markdown notation and generates static web pages. Having only static web pages vastly reduces the attack surface of the website and eliminates the need to constantly having to worry about updates for a content management system. </p>
<p>For the time being, I'm not planning to regularly publish anything on this website, but this might change in the future.</p>WebDAV File System Setup2008-07-10T00:00:00+02:002008-07-10T00:00:00+02:00Andrea Kristentag:textshape.com,2008-07-10:/webdav-filesystem-setup.html<h1>Setting up a WebDAV File System</h1>
<p>One of the websites I'm responsible for changed the upload area of its live server to a secured WebDAV share.</p>
<p>At first I thought, OK, no problem, I'll just choose WebDAV in Dreamweaver's Remote Site dialog, and I'm done. Not quite so, as it turned out. The WebDAV share I wanted to connect to was only accessible via https using a certificate. And even though the documentation didn't say so, Dreamweaver 8 only seems to support WebDAV uploads via http.</p>
<p>So I had to look for other ways to access the WebDAV share. I …</p><h1>Setting up a WebDAV File System</h1>
<p>One of the websites I'm responsible for changed the upload area of its live server to a secured WebDAV share.</p>
<p>At first I thought, OK, no problem, I'll just choose WebDAV in Dreamweaver's Remote Site dialog, and I'm done. Not quite so, as it turned out. The WebDAV share I wanted to connect to was only accessible via https using a certificate. And even though the documentation didn't say so, Dreamweaver 8 only seems to support WebDAV uploads via http.</p>
<p>So I had to look for other ways to access the WebDAV share. I decided to set up a davfs2 file system on my Linux computer, and then mount the remote WebDAV share.
Prerequisites</p>
<ul>
<li>You have Fedora 7 Linux installed on your computer.</li>
<li>You have received the required keys for the remote WebDAV share:</li>
<li>Public key: <code><public_key>.pem</code></li>
<li>Private key: <code><private_key>.p12</code></li>
<li>You know the address of the remote WebDAV share: <code>https://<webdav_share></code></li>
<li>You are logged on to the operating system as the <code><local_user></code> operating system user.</li>
</ul>
<h2>Procedure</h2>
<ol>
<li>Install <code>fuse-davfs2</code> using <code>yum</code>.</li>
<li>Create a <code>davfs2</code> operating system user group and add the following users to this group: <code>root, <local_user></code></li>
<li>Create a local directory for mounting the WebDAV share later:<code><local_mount_directory></code></li>
<li>In <code>/etc/updatedb.conf</code>, exclude this directory from indexing by updatedb.</li>
<li>Enter this directory into the <code>/etc/fstab</code> file:</li>
</ol>
<div class="highlight"><pre><span></span><code><span class="c">https://<webdav_share> <local_mount_directory> davfs user,noauto 0 0</span>
</code></pre></div>
<ol>
<li>Enter the following information in the /etc/davfs2/davfs2.conf file:</li>
</ol>
<div class="highlight"><pre><span></span><code><span class="err"># General Options</span>
<span class="err"># ---------------</span>
<span class="err">dav_user <local_user> # system wide config file only</span>
<span class="err">dav_group davfs2 # system wide config file only</span>
<span class="err"># WebDAV Related Options</span>
<span class="err"># ----------------------</span>
<span class="err">servercert <public_key>.pem</span>
<span class="err">clientcert <private_key>.p12</span>
<span class="err">ask_auth 1</span>
</code></pre></div>
<ol>
<li>Copy the following files (and subdirectories) into the <code>~/.davfs</code> directory:</li>
</ol>
<div class="highlight"><pre><span></span><code><span class="err">/etc/davfs2/davfs2.conf</span>
<span class="err">/etc/davfs2/secrets</span>
<span class="err">/etc/davfs2/certs/<public_key>.pem</span>
<span class="err">/etc/davfs2/certs/<private_key>.p12</span>
</code></pre></div>
<ol>
<li>Change the permissions for your private key: <code>chmod 600 <private_key>.p12</code></li>
<li>Change to the <code>~/.davfs/certs/private/</code> directory. To mount the remote WebDAV share, enter the following command:</li>
</ol>
<div class="highlight"><pre><span></span><code><span class="n">mount</span><span class="w"> </span><span class="o"><</span><span class="n">local_mount_directory</span><span class="o">></span><span class="w"></span>
<span class="n">Please</span><span class="w"> </span><span class="n">enter</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">username</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">authenticate</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="n">proxy</span><span class="w"></span>
<span class="n">proxy</span><span class="p">.</span><span class="n">xxx</span><span class="p">.</span><span class="n">xxx</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="n">hit</span><span class="w"> </span><span class="n">enter</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="k">none</span><span class="p">.</span><span class="w"></span>
<span class="nl">Username</span><span class="p">:</span><span class="w"> </span><span class="o">[</span><span class="n">ENTER</span><span class="o">]</span><span class="w"></span>
<span class="n">Please</span><span class="w"> </span><span class="n">enter</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">password</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">authenticate</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="n">anonymous</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="n">server</span><span class="w"></span>
<span class="nl">https</span><span class="p">:</span><span class="o">//<</span><span class="n">webdav_share</span><span class="o">></span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="n">hit</span><span class="w"> </span><span class="n">enter</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="k">none</span><span class="p">.</span><span class="w"></span>
<span class="nl">Password</span><span class="p">:</span><span class="w"> </span><span class="o">[</span><span class="n">ENTER</span><span class="o">]</span><span class="w"></span>
<span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">mount</span><span class="p">.</span><span class="nl">davfs</span><span class="p">:</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">server</span><span class="w"> </span><span class="n">certificate</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="ow">not</span><span class="w"> </span><span class="n">trusted</span><span class="w"></span>
<span class="nl">issuer</span><span class="p">:</span><span class="w"> </span><span class="n">XXXX</span><span class="w"></span>
<span class="nl">subject</span><span class="p">:</span><span class="w"> </span><span class="n">XXXX</span><span class="w"></span>
<span class="k">identity</span><span class="err">:</span><span class="w"> </span><span class="n">XXXX</span><span class="w"></span>
<span class="nl">fingerprint</span><span class="p">:</span><span class="w"> </span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="nl">xx</span><span class="p">:</span><span class="n">xx</span><span class="w"></span>
<span class="n">You</span><span class="w"> </span><span class="k">only</span><span class="w"> </span><span class="n">should</span><span class="w"> </span><span class="n">accept</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="n">certificate</span><span class="p">,</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">you</span><span class="w"> </span><span class="n">can</span><span class="w"> </span><span class="n">verify</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">fingerprint</span><span class="err">!</span><span class="w"> </span><span class="n">The</span><span class="w"> </span><span class="n">server</span><span class="w"> </span><span class="n">might</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">faked</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="n">there</span><span class="w"> </span><span class="n">might</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">man</span><span class="o">-</span><span class="ow">in</span><span class="o">-</span><span class="n">the</span><span class="o">-</span><span class="n">middle</span><span class="o">-</span><span class="n">attack</span><span class="p">.</span><span class="w"></span>
<span class="n">Accept</span><span class="w"> </span><span class="n">certificate</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">this</span><span class="w"> </span><span class="k">session</span><span class="vm">?</span><span class="w"> </span><span class="o">[</span><span class="n">y,N</span><span class="o">]</span><span class="w"> </span><span class="n">y</span><span class="w"></span>
</code></pre></div>
<h3>Result</h3>
<p>You can now access the WebDAV share via the normal file explorer.</p>
<p>Remember to unmount the WebDAV share after you have finished uploading your files using the umount command.</p>GNOME Desktop Restore2007-03-30T00:00:00+02:002007-03-30T00:00:00+02:00Andrea Kristentag:textshape.com,2007-03-30:/gnome-desktop-restore.html<h1>Restoring Your GNOME Desktop</h1>
<p>I have lost my GNOME Desktop environment twice now, so I thought it's time to write down how I managed to get it back. It happened like this: On my old computer, which I primarily use for backups, I decided to remove all the applications I didn't really need.</p>
<p>I thought that by using the GNOME Add/Remove Software menu function and only removing optional packages from the GNOME Package Manager's Applications section, I'd be on the safe side.
GNOME Package Manager</p>
<p>This turned out to be wrong: after removing all the unused applications in, I …</p><h1>Restoring Your GNOME Desktop</h1>
<p>I have lost my GNOME Desktop environment twice now, so I thought it's time to write down how I managed to get it back. It happened like this: On my old computer, which I primarily use for backups, I decided to remove all the applications I didn't really need.</p>
<p>I thought that by using the GNOME Add/Remove Software menu function and only removing optional packages from the GNOME Package Manager's Applications section, I'd be on the safe side.
GNOME Package Manager</p>
<p>This turned out to be wrong: after removing all the unused applications in, I logged out of my GNOME session, and when I tried to log back in, I only got an ugly TWM session! Apparently, I had removed a crucial piece of the GNOME Desktop environment...</p>
<h2>Prerequisites</h2>
<ul>
<li>The <code>yum</code> program is still installed on your computer.</li>
</ul>
<h2>Procedure</h2>
<ol>
<li>Open a root shell, or use the sudo function for the following steps.</li>
<li>To reinstall the missing parts of the GNOME Desktop environment, enter the following command: <code>yum -y groupinstall "GNOME Desktop Environment"</code></li>
<li>This step might not be necessary, but it can't hurt: Restart your computer.</li>
<li>On the Logon screen, choose <em>Session</em>.</li>
<li>Choose <em>GNOME</em>.</li>
<li>Enter your user name and password.</li>
<li>Choose <em>Make Default</em>.</li>
</ol>Fedora Update2006-11-21T00:00:00+01:002006-11-21T00:00:00+01:00Andrea Kristentag:textshape.com,2006-11-21:/fedora-update.html<h1>Upgrading Fedora Core 5 to Fedora Core 6</h1>
<p>This time I decided to really heed the good advice and think about what needs backing up before starting the upgrade:</p>
<ul>
<li>I backed up my home directory and my subversion repositories using <code>rsync</code> to my second computer.</li>
<li>I backed up my pictures to CDs.</li>
<li>I updated my subversion working directory on my laptop using <code>svn update</code>.</li>
</ul>
<p>Also, I decided to do the upgrade when I had enough time, meaning not after work late at night.</p>
<h2>Procedure</h2>
<ol>
<li>Download all the iso images of the FC6 release (including the rescue CD) and check the …</li></ol><h1>Upgrading Fedora Core 5 to Fedora Core 6</h1>
<p>This time I decided to really heed the good advice and think about what needs backing up before starting the upgrade:</p>
<ul>
<li>I backed up my home directory and my subversion repositories using <code>rsync</code> to my second computer.</li>
<li>I backed up my pictures to CDs.</li>
<li>I updated my subversion working directory on my laptop using <code>svn update</code>.</li>
</ul>
<p>Also, I decided to do the upgrade when I had enough time, meaning not after work late at night.</p>
<h2>Procedure</h2>
<ol>
<li>Download all the iso images of the FC6 release (including the rescue CD) and check the MD5 sums.</li>
<li>Insert the first FC6 CD.</li>
<li>Start the installation program using <em>ENTER</em>.
This starts the installation program in graphical mode.</li>
<li>Choose your upgrade settings.
The system recommends that you run a physical disk check for the installation CDs. I did this for the first installation CD, but since this took quite a long time, I decided to skip this step for the other installation CDs. I thought that if one of the other CDs was damaged, I could download a new ISO image and burn a new CD on my second computer.</li>
<li>Start the upgrade. The system starts checking your system.</li>
</ol>
<p><strong>Note</strong>: Checking the dependencies between the software packages to be upgraded or installed may take a long time – without the progress meter showing that the check is still running.</p>
<p>Because the progress meter didn't budge from 0% for 20 minutes, I aborted the upgrade. I thought it was maybe because my old computer didn't have enough memory, so I started the upgrade again, this time in text mode by entering linux text The first steps indeed went swifter, but when checking the dependencies, the system this time displayed an error message No handlers could be found for logger yum.YumBase and seemed to freeze. I aborted the upgrade again, tried again a few times with different kernel parameters, but to no avail.</p>
<p>I then did what I should have done much earlier – looked up the error message on the internet. And it turned out I was not the only one having that problem. Others had encountered it as well, and advised to just ignore the error message and be patient.</p>
<p>I tried again, leaving the computer to itself for 1 1/2 hours. And it worked! So it wasn't an error after all, but just an awful user interface (giving about the worst feedback to the user you could imagine – a cryptic error message and no indication of the installation progress).</p>
<ol>
<li>Update your system using yum update</li>
</ol>
<p>This took another 40 minutes.</p>
<p>Because of missing dependencies, I had to uninstall several packages using yum remove <code><package_name></code> and to exclude several packages and disable repositories using <code>yum --exclude=<package_name> --disablerepo=<repository_name> update</code>.</p>
<p>After the update went through, I reinstalled some of the packages I had previously uninstalled using <code>yum install <package_name></code>.</p>Yum Errors - Remove Old Kernels2006-06-25T00:00:00+02:002006-06-25T00:00:00+02:00Andrea Kristentag:textshape.com,2006-06-25:/yum-errors-remove-old-kernels.html<h1>How to Get Rid of yum Errors by Removing Old Kernels</h1>
<p>Occasionally, I have encountered a yum unpacking error when trying to install a new kernel on my Fedora computer:</p>
<p><code>Running Transaction error: unpacking of archive failed on file /boot/System.map-2.6.16-1.2111_FC5; 44730661: cpio: write</code></p>
<p>This error can occur when the <code>/boot</code> partition gets too full.</p>
<h2>Solution</h2>
<ol>
<li>Open a root shell.</li>
<li>Check which kernels are installed on your computer:</li>
</ol>
<div class="highlight"><pre><span></span><code><span class="err"> rpm -qa | grep kernel</span>
<span class="err"> kernel-2.6.16-1.2122_FC5</span>
<span class="err"> kernel-2.6.16-1.2111_FC5</span>
<span class="err"> kernel-2.6.16-1.2080_FC5</span>
<span class="err"> kernel-2.6.16-1.2133_FC5</span>
<span class="err"> kernel-2.6.17-1.2139_FC5</span>
<span class="err"> kernel-2.6.16-1.2096_FC5 …</span></code></pre></div><h1>How to Get Rid of yum Errors by Removing Old Kernels</h1>
<p>Occasionally, I have encountered a yum unpacking error when trying to install a new kernel on my Fedora computer:</p>
<p><code>Running Transaction error: unpacking of archive failed on file /boot/System.map-2.6.16-1.2111_FC5; 44730661: cpio: write</code></p>
<p>This error can occur when the <code>/boot</code> partition gets too full.</p>
<h2>Solution</h2>
<ol>
<li>Open a root shell.</li>
<li>Check which kernels are installed on your computer:</li>
</ol>
<div class="highlight"><pre><span></span><code><span class="err"> rpm -qa | grep kernel</span>
<span class="err"> kernel-2.6.16-1.2122_FC5</span>
<span class="err"> kernel-2.6.16-1.2111_FC5</span>
<span class="err"> kernel-2.6.16-1.2080_FC5</span>
<span class="err"> kernel-2.6.16-1.2133_FC5</span>
<span class="err"> kernel-2.6.17-1.2139_FC5</span>
<span class="err"> kernel-2.6.16-1.2096_FC5</span>
</code></pre></div>
<ol>
<li>Check which kernel you are currently running: </li>
</ol>
<div class="highlight"><pre><span></span><code><span class="err">uname -a</span>
<span class="err">Linux mycomputer.mynetwork 2.6.17-1.2139_FC5 #1 Fri Jun 23 12:40:16 EDT 2006 i686 i686 i386 GNU/Linux</span>
</code></pre></div>
<ol>
<li>Remove all unused kernels, for example all <code>2.6.16-*</code> kernels:</li>
</ol>
<div class="highlight"><pre><span></span><code><span class="err">yum remove kernel-2.6.16-*</span>
</code></pre></div>
<ol>
<li>I prefer to use yum instead of rpm to remove packages because for me it's much easier to remember how to remove multiple packages with <code>yum</code>.</li>
</ol>