{"id":173,"date":"2025-02-02T20:20:41","date_gmt":"2025-02-03T01:20:41","guid":{"rendered":"https:\/\/dpm.darkhorselinux.org\/?page_id=173"},"modified":"2025-02-02T22:47:06","modified_gmt":"2025-02-03T03:47:06","slug":"don-paths","status":"publish","type":"page","link":"https:\/\/dpm.darkhorselinux.org\/?page_id=173","title":{"rendered":"DON Paths"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Configuration<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/don\/config<\/code><\/pre>\n\n\n\n<p>The main configuration file for DON.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Repository Configurations<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/don.repos.d\/&lt;repository_name&gt;.repo<\/code><\/pre>\n\n\n\n<p>Each repository has a configuration file dedicated to it with various options.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Download Cache<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\/cache\/don\/packages\/&lt;repo_name&gt;\/&lt;package_name&gt;<\/code><\/pre>\n\n\n\n<p>Don downloads packages and caches them to reduce pull time and network load from redownloading.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Repository Metadata Cache<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\/cache\/don\/repos\/&lt;repo_name&gt;\/metadata<\/code><\/pre>\n\n\n\n<p>Don caches the metadata it downloads from repositories so that frequent searches do not create request burdens on the repository, with the added benefit of improving response time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Transaction and Logistical Database<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\/lib\/don\/dondb<\/code><\/pre>\n\n\n\n<p>This stores transactions processed by DON as well as some base logistical information such as which repository which packages were downloaded from.<\/p>\n\n\n\n<p>This information is used, for example, rolling back sets of package upgrades to undo a recent system update.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lock File<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\/lock\/don.lock<\/code><\/pre>\n\n\n\n<p>The lock file ensures that only one transaction is processed at a time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Logging<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\/log\/don\/don.log\nSYSLOG<\/code><\/pre>\n\n\n\n<p>DON optionally logs to either (or both) syslog and\/or a main log file.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Package Blacklist Directory<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/don\/blacklist.d\/<\/code><\/pre>\n\n\n\n<p>This directory contains <code>.conf<\/code> files, each of which are a line-delimited list of regular expressions.  If a package meets this regular expression, DON will refuse to install it and will skip over it in updates.<\/p>\n\n\n\n<p>Be aware that should a package name your blacklisted package as a dependency in a transaction that DON will fail and refuse to install the package naming your package as a dependency.<\/p>\n\n\n\n<p>Blacklisted package detection occurs at the end of the dependency resolution stage.  Here&#8217;s an example of the workflow:<\/p>\n\n\n\n<p>Suppose you have blacklisted a package named <code>apples<\/code>.  You have another package that depends on apples, called <code>bananas<\/code>.  You run a <code>don update<\/code>, which will update all packages on the system that have an available upgrade package.  <code>DON<\/code> will:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Detect that <code>bananas<\/code> has an update available.<\/li>\n\n\n\n<li>During dependency resolution, discover that <code>apples<\/code> is a dependency.<\/li>\n\n\n\n<li>Detect that <code>apples<\/code> is blacklisted.<\/li>\n\n\n\n<li>Skip updating <code>bananas<\/code>, and continue with the other updates.<\/li>\n\n\n\n<li>At the end of the update process for all packages getting updated, warn the user that <code>bananas<\/code> was skipped due to its dependency on a blacklisted package.<\/li>\n<\/ol>\n\n\n\n<p>Be cautious when blacklisting packages, as it doesn&#8217;t just use package names, it uses regular expressions, so<code>'.*'<\/code> will prevent you from doing much at all with packages on your system.  The expression matches against PROVIDES, REPLACES, and NAME.<\/p>\n<div class=\"pdfprnt-buttons pdfprnt-buttons-page pdfprnt-bottom-right\"><a href=\"https:\/\/dpm.darkhorselinux.org\/index.php?rest_route=%2Fwp%2Fv2%2Fpages%2F173&print=pdf\" class=\"pdfprnt-button pdfprnt-button-pdf\" target=\"_blank\" ><span class=\"pdfprnt-button-title pdfprnt-button-pdf-title\">[ EXPORT TO PDF ]<\/span><\/a><a href=\"https:\/\/dpm.darkhorselinux.org\/index.php?rest_route=%2Fwp%2Fv2%2Fpages%2F173&print=print\" class=\"pdfprnt-button pdfprnt-button-print\" target=\"_blank\" ><\/a><\/div>","protected":false},"excerpt":{"rendered":"<p>Configuration The main configuration file for DON. Repository Configurations Each repository has a configuration file dedicated to it with various options. Download Cache Don downloads packages and caches them to reduce pull time and network load from redownloading. Repository Metadata Cache Don caches the metadata it downloads from repositories so that frequent searches do not &hellip; <a href=\"https:\/\/dpm.darkhorselinux.org\/?page_id=173\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">DON Paths<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-173","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/dpm.darkhorselinux.org\/index.php?rest_route=\/wp\/v2\/pages\/173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dpm.darkhorselinux.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dpm.darkhorselinux.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dpm.darkhorselinux.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dpm.darkhorselinux.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=173"}],"version-history":[{"count":12,"href":"https:\/\/dpm.darkhorselinux.org\/index.php?rest_route=\/wp\/v2\/pages\/173\/revisions"}],"predecessor-version":[{"id":208,"href":"https:\/\/dpm.darkhorselinux.org\/index.php?rest_route=\/wp\/v2\/pages\/173\/revisions\/208"}],"wp:attachment":[{"href":"https:\/\/dpm.darkhorselinux.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}