<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.slackwiki.com/index.php?action=history&amp;feed=atom&amp;title=SlackRoll_Tutorial</id>
	<title>SlackRoll Tutorial - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.slackwiki.com/index.php?action=history&amp;feed=atom&amp;title=SlackRoll_Tutorial"/>
	<link rel="alternate" type="text/html" href="https://www.slackwiki.com/index.php?title=SlackRoll_Tutorial&amp;action=history"/>
	<updated>2026-04-08T14:20:57Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://www.slackwiki.com/index.php?title=SlackRoll_Tutorial&amp;diff=385&amp;oldid=prev</id>
		<title>Erik: Reverted edits by Jheena789 (Talk) to last revision by Johnbristol</title>
		<link rel="alternate" type="text/html" href="https://www.slackwiki.com/index.php?title=SlackRoll_Tutorial&amp;diff=385&amp;oldid=prev"/>
		<updated>2010-07-23T19:38:20Z</updated>

		<summary type="html">&lt;p&gt;Reverted edits by &lt;a href=&quot;/Special:Contributions/Jheena789&quot; title=&quot;Special:Contributions/Jheena789&quot;&gt;Jheena789&lt;/a&gt; (&lt;a href=&quot;/index.php?title=User_talk:Jheena789&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:Jheena789 (page does not exist)&quot;&gt;Talk&lt;/a&gt;) to last revision by &lt;a href=&quot;/index.php?title=User:Johnbristol&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:Johnbristol (page does not exist)&quot;&gt;Johnbristol&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:38, 23 July 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l170&quot;&gt;Line 170:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 170:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Tutorials]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Tutorials]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Related Links==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[http://www.cellulite.co.uk/ '''cellulite''']&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Erik</name></author>
	</entry>
	<entry>
		<id>https://www.slackwiki.com/index.php?title=SlackRoll_Tutorial&amp;diff=384&amp;oldid=prev</id>
		<title>Merge-delete at 10:50, 23 July 2010</title>
		<link rel="alternate" type="text/html" href="https://www.slackwiki.com/index.php?title=SlackRoll_Tutorial&amp;diff=384&amp;oldid=prev"/>
		<updated>2010-07-23T10:50:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:50, 23 July 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l170&quot;&gt;Line 170:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 170:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Tutorials]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Tutorials]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Related Links==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[http://www.cellulite.co.uk/ '''cellulite''']&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Merge-delete</name></author>
	</entry>
	<entry>
		<id>https://www.slackwiki.com/index.php?title=SlackRoll_Tutorial&amp;diff=344&amp;oldid=prev</id>
		<title>Merge-delete: official webpage updated</title>
		<link rel="alternate" type="text/html" href="https://www.slackwiki.com/index.php?title=SlackRoll_Tutorial&amp;diff=344&amp;oldid=prev"/>
		<updated>2010-03-23T03:22:16Z</updated>

		<summary type="html">&lt;p&gt;official webpage updated&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:22, 23 March 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;strong&amp;gt;SlackRoll&amp;lt;/strong&amp;gt; is a package or update manager for Slackware Linux. Part of this tutorial has been taken from its [http://&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wiki&lt;/del&gt;.github.com&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/rg3&lt;/del&gt;/slackroll/ official webpage] and FAQ. SlackRoll's defining points:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;strong&amp;gt;SlackRoll&amp;lt;/strong&amp;gt; is a package or update manager for Slackware Linux. Part of this tutorial has been taken from its [http://&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rg3&lt;/ins&gt;.github.com/slackroll/ official webpage] and FAQ. SlackRoll's defining points:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Its internal mechanism based on package states.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Its internal mechanism based on package states.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Merge-delete</name></author>
	</entry>
	<entry>
		<id>https://www.slackwiki.com/index.php?title=SlackRoll_Tutorial&amp;diff=185&amp;oldid=prev</id>
		<title>Erik: Copy from old</title>
		<link rel="alternate" type="text/html" href="https://www.slackwiki.com/index.php?title=SlackRoll_Tutorial&amp;diff=185&amp;oldid=prev"/>
		<updated>2009-06-06T23:25:35Z</updated>

		<summary type="html">&lt;p&gt;Copy from old&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;strong&amp;gt;SlackRoll&amp;lt;/strong&amp;gt; is a package or update manager for Slackware Linux. Part of this tutorial has been taken from its [http://wiki.github.com/rg3/slackroll/ official webpage] and FAQ. SlackRoll's defining points:&lt;br /&gt;
&lt;br /&gt;
* Its internal mechanism based on package states.&lt;br /&gt;
* Like &amp;lt;em&amp;gt;slackpkg&amp;lt;/em&amp;gt;, SlackRoll only works with official mirrors, meaning that to keep third party packages up to date you need to perform the task by hand (recommended practice, using SlackBuild scripts) or use a second different tool.&lt;br /&gt;
* It does not try to compare package version numbers to decide if a package should be upgraded or not.&lt;br /&gt;
* Partly as a consequence of the previous point, it has no known flaws detecting package updates (including reverts), new packages, removed packages, third party packages getting an official version and blacklisted packages (&amp;lt;em&amp;gt;frozen&amp;lt;/em&amp;gt; in its terminology) being removed.&lt;br /&gt;
* It has a broad range of operations and features.&lt;br /&gt;
* It attempts to be fast. Most internal operations like listing available upgrades usually take less than one second on a modern computer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Python 2.4 or later (provided by package &amp;lt;em&amp;gt;python&amp;lt;/em&amp;gt; starting with Slackware 10.1).&lt;br /&gt;
* GnuPG (provided by package &amp;lt;em&amp;gt;gnupg&amp;lt;/em&amp;gt; or &amp;lt;em&amp;gt;gnupg2&amp;lt;/em&amp;gt;).&lt;br /&gt;
* Vim (provided by package &amp;lt;em&amp;gt;vim&amp;lt;/em&amp;gt;).&lt;br /&gt;
* A pager which is &amp;lt;em&amp;gt;less&amp;lt;/em&amp;gt; by default (provided by package &amp;lt;em&amp;gt;less&amp;lt;/em&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Procedure ==&lt;br /&gt;
&lt;br /&gt;
Download the SlackRoll package from the [http://github.com/rg3/slackroll/downloads project download page] and install it in your system using &amp;lt;tt&amp;gt;installpkg&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Background Information =&lt;br /&gt;
&lt;br /&gt;
The majority of SlackRoll commands that receive a list of packages expect only the package names (&amp;lt;em&amp;gt;foo&amp;lt;/em&amp;gt; as opposed to &amp;lt;em&amp;gt;foo-1.1-i486-3.tgz&amp;lt;/em&amp;gt;). Some of them also allow using a specific version, but they are the exception.&lt;br /&gt;
&lt;br /&gt;
SlackRoll creates a persistent database of packages in your hard drive. Each package is in one of several possible states. Part of the initial configuration consists in deciding which states some of your packages will have. There are two types of states: states to avoid (temporary states) and normal states. When the remote Slackware official tree is updated, SlackRoll may put some packages in temporary states. By upgrading, installing, removing and marking packages your objective is to correct those packages and put them in a normal state.&lt;br /&gt;
&lt;br /&gt;
== States to Avoid ==&lt;br /&gt;
&lt;br /&gt;
=== New ===&lt;br /&gt;
&lt;br /&gt;
New packages are packages present in the remote tree that weren't present before. You should decide if you want to install them or mark them as not installed.&lt;br /&gt;
&lt;br /&gt;
=== Outdated ===&lt;br /&gt;
&lt;br /&gt;
Outdated packages are present in your system, but the version you have does not match any relevant one in the remote tree. You should upgrade these packages.&lt;br /&gt;
&lt;br /&gt;
=== Unavailable ===&lt;br /&gt;
&lt;br /&gt;
Unavailable packages are packages present in your system. Previously, they probably existed in the remote tree, but now they do not seem to be available for downloading and installing. You should decide if you want to remove them or mark them as foreign.&lt;br /&gt;
&lt;br /&gt;
== Normal States ==&lt;br /&gt;
&lt;br /&gt;
=== Installed ===&lt;br /&gt;
&lt;br /&gt;
Installed packages are very common. They are present in your system and in the remote tree, and both versions match.&lt;br /&gt;
&lt;br /&gt;
=== Not Installed ===&lt;br /&gt;
&lt;br /&gt;
Not installed packages are also very common. They are present in the remote tree but not in your system. They can be downloaded and installed if you want.&lt;br /&gt;
&lt;br /&gt;
=== Foreign ===&lt;br /&gt;
&lt;br /&gt;
Foreign packages are packages present in your system but not in the remote tree. However, unlike unavailable packages, they are supposed to be present in your system. No package will enter this state automatically. Only the ones you mark. It's usually reserved for third party packages and packages you build yourself. It's worth noting that if a foreign package ever appears in the remote official tree, it will be marked as installed or, probably, outdated. Thus, SlackRoll will give priority to the new official package over yours. If you still want to use your own build, mark it as frozen.&lt;br /&gt;
&lt;br /&gt;
=== Frozen ===&lt;br /&gt;
&lt;br /&gt;
Frozen packages are present in your system and in the remote tree. Your version may or may not match the ones from the remote tree, but SlackRoll will not tell you they need to be upgraded. No package will enter this state automatically. It's usually reserved for packages that shouldn't be upgraded automatically or ever (&amp;lt;em&amp;gt;aaa_elflibs&amp;lt;/em&amp;gt;, kernels, etc) and sometimes for customized versions of official packages. It's also worth mentioning that a frozen package will be moved to unavailable if it disappears from the remote tree. It that happens and you want to continue using it, you'll need to mark it as foreign.&lt;br /&gt;
&lt;br /&gt;
= Initial Configuration =&lt;br /&gt;
&lt;br /&gt;
Word of warning: it's highly recommended to do the initial configuration from an up-to-date and controlled system. This will avoid confusion and helps preventing mistakes setting the initial package states.&lt;br /&gt;
&lt;br /&gt;
== Preparing Your System ==&lt;br /&gt;
&lt;br /&gt;
Choose a Slackware mirror for your Slackware version. Use the &amp;lt;em&amp;gt;set-mirror&amp;lt;/em&amp;gt; operation to select one mirror. SlackRoll can work with stable trees as well as the &amp;lt;em&amp;gt;current&amp;lt;/em&amp;gt; tree. Example:&lt;br /&gt;
&lt;br /&gt;
  # slackroll set-mirror 'http://slackware.example.org/slackware-current/'&lt;br /&gt;
&lt;br /&gt;
Do not forget to include the trailing slash in the mirror URL. Import, to your keyring, the GnuPG key used to sign the official Slackware packages. This key can be found in Slackware CDs and DVDs as the file GPG-KEY, and you can import the key to your keyring using the command &amp;lt;em&amp;gt;gpg --import&amp;lt;/em&amp;gt;, but SlackRoll is able to download the key from the mirror and importing it automatically, if you trust the mirror.&lt;br /&gt;
&lt;br /&gt;
  # slackroll import-key&lt;br /&gt;
&lt;br /&gt;
Finally, retrieve the mirror information for the first time. This will download a few metadata files, and this is what you need to do when you're going to handle a new round of updates.&lt;br /&gt;
&lt;br /&gt;
  # slackroll update&lt;br /&gt;
&lt;br /&gt;
== Going Over Package States for The First Time ==&lt;br /&gt;
&lt;br /&gt;
When you run SlackRoll for the first times, it will put every remote package not present in your system in the state New. When your system is up to date and under control, you can blindly mark every new package as not installed with the following command:&lt;br /&gt;
&lt;br /&gt;
  # slackroll new-not-installed&lt;br /&gt;
&lt;br /&gt;
Any third party package present in your system will be put in the state Unavailable. When your system is up to date and under control you can blindly mark all unavailable packages as foreign. &amp;lt;em&amp;gt;However&amp;lt;/em&amp;gt;, the number of foreign packages is usually not very high and forgetting to remove from your system a package that was removed from the remote tree is a common mistake. The Book of Best Practices would suggest that you review the list of unavailable packages once and carefully in order to detect packages that should not be present in your system. To print the list run:&lt;br /&gt;
&lt;br /&gt;
  # slackroll list-unavailable&lt;br /&gt;
&lt;br /&gt;
If you locate any package that needs to be removed, you can remove them using &amp;lt;em&amp;gt;removepkg&amp;lt;/em&amp;gt; or the &amp;lt;em&amp;gt;remove&amp;lt;/em&amp;gt; operation. The later has additional functionality so it's recommended:&lt;br /&gt;
&lt;br /&gt;
  # slackroll remove foo bar&lt;br /&gt;
&lt;br /&gt;
Now you can mark the rest as foreign packages.&lt;br /&gt;
&lt;br /&gt;
  # slackroll unavailable-foreign&lt;br /&gt;
&lt;br /&gt;
Finally, you probably want to mark some packages as frozen. It's usually a good idea to do this with &amp;lt;em&amp;gt;aaa_elflibs&amp;lt;/em&amp;gt;, kernel packages and others.&lt;br /&gt;
&lt;br /&gt;
  # slackroll frozen aaa_elflibs foo bar&lt;br /&gt;
&lt;br /&gt;
= Day to Day Usage =&lt;br /&gt;
&lt;br /&gt;
Apart from the operations listed here, you can run the &amp;lt;em&amp;gt;help&amp;lt;/em&amp;gt; operation to get the full list of supported operations, along with a brief description of each one. A more detailed description can be found in the [http://wiki.github.com/rg3/slackroll/operations-guide operations guide].&lt;br /&gt;
&lt;br /&gt;
== New Round of Updates ==&lt;br /&gt;
&lt;br /&gt;
What to do when there is a new round of updates? The Book of Best Practices suggests taking care of different events in a specific order:&lt;br /&gt;
&lt;br /&gt;
* Updates to glibc-solibs, sed and pkgtools need to be handled first, in that order.&lt;br /&gt;
* If there are new packages, handle them second.&lt;br /&gt;
* Then, it's time to upgrade outdated packages.&lt;br /&gt;
* If packages have been deleted from the remote tree, handle them last.&lt;br /&gt;
&lt;br /&gt;
This is the correct order in 99% of the cases. SlackRoll will attempt to warn you and ask for confirmation if it detects you may be breaking this order. However, &amp;lt;strong&amp;gt;you&amp;lt;/strong&amp;gt; have the last word on what to do, so proceed with caution and don't break your system.&lt;br /&gt;
&lt;br /&gt;
First, update the remote mirror information with the &amp;lt;em&amp;gt;update&amp;lt;/em&amp;gt; operation we mentioned before. New changelog entries will be saved to your hard drive. It's recommended that you take a look at the changelog at this point, using the &amp;lt;em&amp;gt;changelog&amp;lt;/em&amp;gt; operation. Then, get an overview of the events using the &amp;lt;em&amp;gt;list-transient&amp;lt;/em&amp;gt; operation, which will list the new, outdated and unavailable packages along with a big fat warning message if activity in key system packages is detected.&lt;br /&gt;
&lt;br /&gt;
The best way to deal with glibc-solibs, sed and pkgtool updates is to use the &amp;lt;em&amp;gt;upgrade-key-packages&amp;lt;/em&amp;gt; operation.&lt;br /&gt;
&lt;br /&gt;
  # slackroll upgrade-key-packages&lt;br /&gt;
&lt;br /&gt;
You could also use the &amp;lt;em&amp;gt;install&amp;lt;/em&amp;gt; operation. Despite its name, it can be used to both install and upgrade individual packages. Let's suppose packages &amp;lt;em&amp;gt;glibc-solibs&amp;lt;/em&amp;gt; and &amp;lt;em&amp;gt;sed&amp;lt;/em&amp;gt; where updated:&lt;br /&gt;
&lt;br /&gt;
  # slackroll install glibc-solibs sed&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;em&amp;gt;install&amp;lt;/em&amp;gt; operation is one of the few operations allowing you to pass specific package versions. It will proceed in the order you indicate, so remember to give the packages in the correct order if you use this method.&lt;br /&gt;
&lt;br /&gt;
Second, you should handle new packages. You can clearly get a list of new packages with the &amp;lt;em&amp;gt;list-new&amp;lt;/em&amp;gt; operation. New packages can be installed with the &amp;lt;em&amp;gt;install&amp;lt;/em&amp;gt; operation as we just showed. When installing a remote package, SlackRoll will give you the opportunity of selecting the version to install if there are several available in the remote tree. Or, if you are not interested in installing a new package, mark it as not installed:&lt;br /&gt;
&lt;br /&gt;
  # slackroll not-installed foo bar&lt;br /&gt;
&lt;br /&gt;
If the package names are not enough for you to decide if you want to install it or not, you can always use the &amp;lt;em&amp;gt;info&amp;lt;/em&amp;gt; operation and SlackRoll will download and display the package info file (small &amp;lt;em&amp;gt;txt&amp;lt;/em&amp;gt; files in the remote tree). And, of course, be carefull with new libraries as they may have been included to extend the functionality of an existing package you may have installed.&lt;br /&gt;
&lt;br /&gt;
The third step is taking care of outdated packages. For that, a few operations are available. &amp;lt;em&amp;gt;list-upgrades&amp;lt;/em&amp;gt; lets you see a summary of the available upgrades. You can download and install them with &amp;lt;em&amp;gt;upgrade&amp;lt;/em&amp;gt; or download them with &amp;lt;em&amp;gt;download-upgrades&amp;lt;/em&amp;gt; or even print their URLs with &amp;lt;em&amp;gt;urls-upgrades&amp;lt;/em&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And, finally, review the list of unavailable packages. Be careful with unavailable packages. Sometimes you install a foreign package but forget to mark it as such in SlackRoll. To avoid that problem, it's better to install them with the &amp;lt;em&amp;gt;install-foreign&amp;lt;/em&amp;gt; operation. Individual unavailable packages can be removed with the &amp;lt;em&amp;gt;remove&amp;lt;/em&amp;gt; operation as we showed before, and also all of them at the same time with the &amp;lt;em&amp;gt;remove-unavailable&amp;lt;/em&amp;gt; operation.&lt;br /&gt;
&lt;br /&gt;
== Installing and Removing Individual Packages ==&lt;br /&gt;
&lt;br /&gt;
There are a few operations related to installing and getting some information about individual packages. The most common ones are &amp;lt;em&amp;gt;install&amp;lt;/em&amp;gt; to upgrade or install packages, &amp;lt;em&amp;gt;info&amp;lt;/em&amp;gt; to maybe download and display package info files, &amp;lt;em&amp;gt;urls&amp;lt;/em&amp;gt; to get a list of URLs and &amp;lt;em&amp;gt;remove&amp;lt;/em&amp;gt; to remove individual packages.&lt;br /&gt;
&lt;br /&gt;
Operations that install packages let you manage &amp;lt;em&amp;gt;.new&amp;lt;/em&amp;gt; files after the installation is completed, in a similar way to &amp;lt;em&amp;gt;slackpkg&amp;lt;/em&amp;gt;. You can view the differences between the &amp;lt;em&amp;gt;.new&amp;lt;/em&amp;gt; file and its counterparts with &amp;lt;em&amp;gt;vimdiff&amp;lt;/em&amp;gt; (which provides a nice and colorized way of spotting the differences and maybe porting the old configuration to the new file), you can overwrite the old file with the &amp;lt;em&amp;gt;.new&amp;lt;/em&amp;gt; file, delete the &amp;lt;em&amp;gt;.new&amp;lt;/em&amp;gt; file directly, etc.&lt;br /&gt;
&lt;br /&gt;
Additionally, removal operations also track pairs of &amp;lt;em&amp;gt;.new&amp;lt;/em&amp;gt; files and give you the opportunity of deleting configuration files that have been left behind. You are not forced to remove the files left behind, of course.&lt;br /&gt;
&lt;br /&gt;
Upgrade operations will perform both tasks. First, they will let you review the &amp;lt;em&amp;gt;.new&amp;lt;/em&amp;gt; files and then they will give you the opportunity of deleting obsolete configuration files left behind.&lt;br /&gt;
&lt;br /&gt;
While using &amp;lt;em&amp;gt;vimdiff&amp;lt;/em&amp;gt;, turning off syntax highlighting is recommended. &amp;lt;em&amp;gt;Vim&amp;lt;/em&amp;gt; uses colors to highlight file differences and those can interfere with syntax highlighting colors, making text invisible or hard to read. Syntax highlighting can be turned off temporarily by using &amp;quot;&amp;lt;tt&amp;gt;:syntax off&amp;lt;/tt&amp;gt;&amp;quot; in command mode, or you can disable it permanently putting &amp;quot;&amp;lt;tt&amp;gt;syntax off&amp;lt;/tt&amp;gt;&amp;quot; in your &amp;lt;tt&amp;gt;~/.vimrc&amp;lt;/tt&amp;gt; file (noting that usually you run SlackRoll as the superuser).&lt;br /&gt;
&lt;br /&gt;
== Managing Customized Versions of Official Packages ==&lt;br /&gt;
&lt;br /&gt;
There are at least three ways of dealing with customized versions of official packages. These are custom versions or compilations of packages present in the remote official tree. They are normally used to add or remove features, or activate or apply patches that are disabled by default. For example, if you want to activate the &amp;lt;em&amp;gt;freetype&amp;lt;/em&amp;gt; bytecode interpreter, you need to rebuild that package.&lt;br /&gt;
&lt;br /&gt;
The simplest way of dealing with these packages is to give them the same name and version as the official packages. When they are upgraded in the remote tree, however, SlackRoll will want to upgrade them. You can mark them as frozen before upgrading and only unfreeze them after you have rebuilt the new version, if you want to avoid SlackRoll replacing them with the new official version.&lt;br /&gt;
&lt;br /&gt;
Second, you can give them the same name and version as the official package, &amp;lt;strong&amp;gt;but&amp;lt;/strong&amp;gt; keep them frozen all the time. How would you know then if they need to be rebuilt? With the &amp;lt;em&amp;gt;list-outdated-frozen&amp;lt;/em&amp;gt; operation. Take into account the information given by &amp;lt;em&amp;gt;list-outdated-frozen&amp;lt;/em&amp;gt; is not reflected by any other command. Specifically, it's not reflected as part of &amp;lt;em&amp;gt;list-transient&amp;lt;/em&amp;gt; and friends.&lt;br /&gt;
&lt;br /&gt;
Third, you can give them a name or version different to the official package. Typically this means adding a custom build suffix and marking the package as frozen. How would you know if you need to rebuild it? Paying attention to the changelog specifically searching for upgrades in those packages and also using the &amp;lt;em&amp;gt;list-versions&amp;lt;/em&amp;gt; operation, that lets you view the different known versions of a package, including local and remote ones.&lt;br /&gt;
&lt;br /&gt;
== Maintenance ==&lt;br /&gt;
&lt;br /&gt;
SlackRoll barely requires maintenance. It keeps all downloaded packages in its package cache, located in the &amp;lt;em&amp;gt;/var/slackroll/packages&amp;lt;/em&amp;gt; directory. When downloading files, it keeps them in a temporary directory until they're fully downloaded. If you want to remove every downloaded package, you can simply perform &amp;lt;code&amp;gt;slackroll erase-cache&amp;lt;/code&amp;gt;. There is, however, a &amp;lt;em&amp;gt;clean-cache&amp;lt;/em&amp;gt; operation which does &amp;lt;strong&amp;gt;not&amp;lt;/strong&amp;gt; remove every downloaded package, but only those that are no longer present in the remote tree. Running that operation from time to time keeps your package cache sane and controlled. It may also be a good idea to delete the temporary directory contents from time to time, with &amp;lt;code&amp;gt;slackroll erase-tmp&amp;lt;/code&amp;gt;, but it should be empty unless you interrupt SlackRoll while downloading stuff and never attempt to complete the download.&lt;br /&gt;
&lt;br /&gt;
== Other Operations ==&lt;br /&gt;
&lt;br /&gt;
If you run the &amp;lt;em&amp;gt;help&amp;lt;/em&amp;gt; operation you will see SlackRoll has many other operations, including operations to list packages by state, list local packages, list remote packages and list all known packages. It has operations to put packages in specific states and checking the state of packages. You can also download, install, display info or remove new or unavailable packages or packages with a matching path (like &amp;lt;em&amp;gt;/slackware/kde/&amp;lt;/em&amp;gt;). Finally, there are search operations, to search for packages by name or path, search for files in your local system (like running &amp;lt;em&amp;gt;grep&amp;lt;/em&amp;gt; on the contents of &amp;lt;em&amp;gt;/var/log/packages&amp;lt;/em&amp;gt;), query the Slackware Package Browser, and finally a few very slow but sometimes useful operations to search for broken symlinks under a specific hierarchy and the same for orphan files (files not belonging to any package), as well as searching for missing files.&lt;br /&gt;
&lt;br /&gt;
As a general rule, every operation either does not accept arguments or allows a list of them. Operations accepting packages as arguments expect the package name only unless the help text mentions that they also accept specific package versions. Some operations need regular expressions. For the most part they have the same syntax as they have in &amp;lt;em&amp;gt;grep&amp;lt;/em&amp;gt; or &amp;lt;em&amp;gt;Perl&amp;lt;/em&amp;gt;, but you can read the [http://docs.python.org/lib/re-syntax.html Python regular expressions syntax reference] if you want to perform an unusually complex search.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Erik</name></author>
	</entry>
</feed>