<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apt-Offline on RESEARCHUT</title><link>https://researchut.com/tags/apt-offline/</link><description>Recent content in Apt-Offline on RESEARCHUT</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>rrs@researchut.com (Ritesh Raj Sarraf)</managingEditor><webMaster>rrs@researchut.com (Ritesh Raj Sarraf)</webMaster><lastBuildDate>Wed, 26 Feb 2025 18:56:04 +0530</lastBuildDate><atom:link href="https://researchut.com/tags/apt-offline/index.xml" rel="self" type="application/rss+xml"/><item><title>apt-offline 1.8.6</title><link>https://researchut.com/blog/apt_offline_186/</link><pubDate>Wed, 26 Feb 2025 18:56:04 +0530</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/blog/apt_offline_186/</guid><description>&lt;h2 id="apt-offline-186">apt-offline 1.8.6&lt;/h2>
&lt;p>&lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> version 1.8.6 was released almost 3 weeks ago on 08/February/2025&lt;/p>
&lt;p>This release includes many bug fixes from community users.&lt;/p>
&lt;ul>
&lt;li>Error out if we cannot initialize the APT lock.
Thanks to Matthew Maslak&lt;/li>
&lt;li>check for checksum and handle appropriately (#217)
Thanks to Dan Whitman (Github:kyp44)&lt;/li>
&lt;li>Honor the &amp;ndash;allow-unauthenticated option.
Thanks to João A (Github: Jonybat)&lt;/li>
&lt;li>Retry when server reports 429 Too Many Requests occurs.
Thanks to Zoltan Kelemen (Github: misterzed88)&lt;/li>
&lt;li>Also support file:/// url types.
Thanks to c4bhuf@github&lt;/li>
&lt;li>Honor user specified extra gpg keyrings&lt;/li>
&lt;/ul>
&lt;h3 id="changelog">Changelog&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>apt-offline (1.8.6-1) unstable; urgency=medium
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Error out if we cannot initialize the APT lock.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Thanks to Matthew Maslak
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * check for checksum and handle appropriately (#217)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Thanks to Dan Whitman (Github:kyp44)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Honor the --allow-unauthenticated option.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Thanks to João A (Github: Jonybat)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Retry when server reports 429 Too Many Requests occurs.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Thanks to Zoltan Kelemen (Github: misterzed88)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Also support file:/// url types.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Thanks to c4bhuf@github
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Honor user specified extra gpg keyrings
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> -- Ritesh Raj Sarraf &amp;lt;rrs@debian.org&amp;gt; Sat, 08 Feb 2025 20:46:24 +0530
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="resources">Resources&lt;/h3>
&lt;ul>
&lt;li>Tarball and Zip archive for &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> are available &lt;a href="https://github.com/rickysarraf/apt-offline/releases/tag/v1.8.6">here&lt;/a>&lt;/li>
&lt;li>Packages should be &lt;a href="https://packages.debian.org/apt-offline">available&lt;/a> in Debian.&lt;/li>
&lt;li>Development for &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> is currently hosted &lt;a href="https://github.com/rickysarraf/apt-offline">here&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>apt-offline 1.8.4</title><link>https://researchut.com/blog/apt_offline_184/</link><pubDate>Sat, 12 Feb 2022 20:47:04 +0530</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/blog/apt_offline_184/</guid><description>&lt;h2 id="apt-offline-184">apt-offline 1.8.4&lt;/h2>
&lt;p>&lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> version 1.8.4 has been released.&lt;/p>
&lt;p>This release includes many bug fixes but the important ones are:&lt;/p>
&lt;ul>
&lt;li>Better GPG signature handling&lt;/li>
&lt;li>Support for verifying InRelease files&lt;/li>
&lt;/ul>
&lt;h3 id="changelog">Changelog&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>apt-offline (1.8.4-1) unstable; urgency=medium
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [ Debian Janitor ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Update standards version to 4.5.0, no changes needed.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [ Paul Wise ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Clarify file type in unknown file message
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Fix typos
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Remove trailing whitespace
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Update LICENSE file to match official GNU version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Complain when there are no valid keyrings instead of missing keyrings
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Make all syncrhronised files world readable
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Fix usage of indefinite articles
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Only show the APT Offline GUI once in the menu
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Update out of date URLs
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Fix date and whitespace issues in the manual page
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Replace stereotyping with an appropriate word
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Switch more Python shebangs to Python 3
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Correct usage of the /tmp/ directory
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Fix YAML files
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Fix usage of the log API
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Make the copying of changelog lines less brittle
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Do not split keyring paths on whitespace
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [ Ritesh Raj Sarraf ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Drop the redundant import of the apt module.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Thanks to github/dandelionred
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Fix deprecation of get_bugs() in debianbts
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Drop the unused IgnoredBugTypes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Set encoding for files when opening
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Better error logging when apt fails
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Don&amp;#39;t mandate a default option
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Demote metadata errors to verbose
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Also log an error message for every failed .deb url
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Check hard for the url type
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Check for ascii armored signature files.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Thanks to David Klnischkies
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Add MIME type for InRelease files
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Drop patch 0001-Drop-the-redundant-import-of-the-apt-module.patch.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Now part of the 1.8.4 release
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Prepare release 1.8.3
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * Prepare release 1.8.4
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * debian packaging
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> + Bump debhelper compatibility to 13
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> + Update install files
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [ Dean Anderson ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> * [#143] Added support for verifying InRelease files
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> -- Ritesh Raj Sarraf &amp;lt;rrs@debian.org&amp;gt; Sat, 12 Feb 2022 18:52:58 +0530
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="resources">Resources&lt;/h3>
&lt;ul>
&lt;li>Tarball and Zip archive for &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> are available &lt;a href="https://github.com/rickysarraf/apt-offline/releases/tag/v1.8.4">here&lt;/a>&lt;/li>
&lt;li>Packages should be &lt;a href="https://packages.debian.org/apt-offline">available&lt;/a> in Debian.&lt;/li>
&lt;li>Development for &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> is currently hosted &lt;a href="https://github.com/rickysarraf/apt-offline">here&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Apt Offline 1.8.2</title><link>https://researchut.com/blog/apt-offline-1_8_2/</link><pubDate>Sun, 09 Feb 2020 19:52:51 +0530</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/blog/apt-offline-1_8_2/</guid><description>&lt;h2 id="apt-offline-182">apt-offline 1.8.2&lt;/h2>
&lt;p>I am pleased to announce the release of &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> version 1.8.2&lt;/p>
&lt;p>This release has many bug fixes along with a long standing issue of &lt;a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=871656">signature validation&lt;/a>&lt;/p>
&lt;h3 id="2017---the-year-of-realization-and-change">2017 - The year of realization and change&lt;/h3>
&lt;p>Back in 2017, the bug was reported that &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> did not validate apt meta &lt;em>Packages&lt;/em> files. &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> was only doing a signature validation for the &lt;em>Release&lt;/em> files but did no validation of the apt meta &lt;em>Packages&lt;/em> files, which had their checksums listed in the &lt;em>Release&lt;/em> files. This validation was completely missing in &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> and gave the user the wrong impression that validation was in place.&lt;/p>
&lt;p>I had hoped to fix this issue soon when it was reported, to have it part of the next Debian Stable release. But that never happened. On the contrary, I think 2 stable releases happened in between. And now it is 2020.&lt;/p>
&lt;p>2017 was a year to spend a large chunk of my time on real life issues, for good. I realized that it is important to always give precedence to personal life, fix issues, set realistic priorities, spend time on realizing the happenings around, get life rolling smooth and then come back to work. This helps sustain in the longer run. Otherwise, with no self, everything can fall apart catastrophically.&lt;/p>
&lt;p>From that phase, I learned many things. I now have much more respect for people who really have been successful at committing a large amount of their time on a volunteer project like Debian. Having myself gone through the time crunch phase, I can only imagine how many of the fellow DDs manage their time, sustainably, over the years. There are many folks I have seen active for more than a decade and they still rock.&lt;/p>
&lt;h3 id="182-release">1.8.2 release&lt;/h3>
&lt;p>Because the apt meta validation was a major issue, I have decided to run through the workflow and explain how &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> reacts to invalid tampered data. Below are konsole captures, with snipped output, where not very relevant.&lt;/p>
&lt;!-- raw HTML omitted -->
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-plain" data-lang="plain">&lt;span style="display:flex;">&lt;span>rrs@priyasi:/var/tmp/Debian-Build/Result$ sudo apt-offline set /tmp/set.uris
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Gathering details needed for &amp;#39;update&amp;#39; operation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Gathering details needed for &amp;#39;upgrade&amp;#39; operation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:33 ♒ ॐ ☺ 😄 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;!-- raw HTML omitted -->
&lt;p>One item to pay attention to, in this step, is some of the errors that are reported. Not all repository admins enable all the apt meta data available on their mirrors. This is commonly seen for localization related files. Similarly, not all compression types are available on all the repository servers. Some may only have &lt;code>.xz&lt;/code> based meta files hosted while others may have &lt;code>.gz&lt;/code> ones. So, for &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em>, which has to bridge the gap of the offline &amp;lt;=&amp;gt; online setup, there is more work.&lt;/p>
&lt;p>For compression types, &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> cycles through the known list of types. Only if, after cycling through all the known compression types, if the return is still a 404, then we error out.&lt;/p>
&lt;p>Similarly, for localization related meta, we do the same cycling. But in addition to that, there is the possibility that the repository admin may not have enabled the localization data to be served at all. In that case, &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> ultimately will report and error.&lt;/p>
&lt;p>And that is what is shown below. Because I see them not breaking the functionality, I treat them as non-fatal errors.&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">29
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">30
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">31
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">32
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">33
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">34
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">35
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">36
&lt;/span>&lt;span style="background-color:#3c3d38">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">37
&lt;/span>&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">38
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">39
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">40
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">41
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">42
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">43
&lt;/span>&lt;span style="background-color:#3c3d38">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">44
&lt;/span>&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">45
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">46
&lt;/span>&lt;span style="background-color:#3c3d38">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">47
&lt;/span>&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">48
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">49
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">50
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">51
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">52
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">53
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">54
&lt;/span>&lt;span style="background-color:#3c3d38">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">55
&lt;/span>&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">56
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">57
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">58
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">59
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">60
&lt;/span>&lt;span style="background-color:#3c3d38">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">61
&lt;/span>&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">62
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">63
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">64
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">65
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">66
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">67
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">68
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">69
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">70
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">71
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">72
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">73
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">74
&lt;/span>&lt;span style="background-color:#3c3d38">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">75
&lt;/span>&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">76
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">77
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">78
&lt;/span>&lt;span style="background-color:#3c3d38">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">79
&lt;/span>&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">80
&lt;/span>&lt;span style="background-color:#3c3d38">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">81
&lt;/span>&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">82
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">83
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">84
&lt;/span>&lt;span style="background-color:#3c3d38">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">85
&lt;/span>&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">86
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">87
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">88
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">89
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">90
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">91
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">92
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">93
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">94
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-plain" data-lang="plain">&lt;span style="display:flex;">&lt;span>rrs@priyasi:/var/tmp/Debian-Build/Result$ apt-offline get /tmp/set-trimmed.uris --bundle /tmp/set.zip --threads 5
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Fetching APT Data
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>WARNING: If you are on a slow connection, it is good to
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>WARNING: limit the number of threads to a low number like 2.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>WARNING: Else higher number of threads executed could cause
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>WARNING: network congestion and timeouts.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/Release.gpg
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/Release
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/InRelease
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/unstable/Release.gpg
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/unstable/Release
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/unstable/Release.gpg done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/unstable/InRelease
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/Release.gpg done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/experimental/Release.gpg
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/unstable/Release done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/experimental/Release
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/InRelease done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/experimental/InRelease
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/Release done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/main/source/Sources.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/unstable/InRelease done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/non-free/source/Sources.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/experimental/Release.gpg done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/contrib/source/Sources.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/experimental/InRelease done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/main/binary-amd64/Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/experimental/Release done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/main/binary-i386/Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/contrib/source/Sources.xz done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/main/binary-all/Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/non-free/source/Sources.xz done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/main/i18n/Translation-en_IN.xz
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3c3d38">&lt;span>ERROR: Giving up on URL http://deb.debian.org/debian/dists/testing/main/i18n/Translation-en_IN.lzma
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/main/i18n/Translation-en.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/main/binary-all/Packages.xz done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/main/i18n/Translation-en_US.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/main/source/Sources.xz done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/main/Contents-amd64.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/main/i18n/Translation-en.bz2 done
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3c3d38">&lt;span>ERROR: Giving up on URL http://deb.debian.org/debian/dists/testing/main/i18n/Translation-en_US.lzma
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/main/Contents-i386.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/main/Contents-all.xz
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3c3d38">&lt;span>ERROR: Giving up on URL http://deb.debian.org/debian/dists/testing/main/Contents-all.lzma
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/non-free/binary-amd64/Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/non-free/binary-amd64/Packages.xz done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/non-free/binary-i386/Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/non-free/binary-i386/Packages.xz done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/non-free/binary-all/Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/non-free/binary-all/Packages.xz done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/non-free/i18n/Translation-en_IN.xz
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3c3d38">&lt;span>ERROR: Giving up on URL http://deb.debian.org/debian/dists/testing/non-free/i18n/Translation-en_IN.lzma
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/non-free/i18n/Translation-en.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/non-free/i18n/Translation-en.bz2 done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/non-free/i18n/Translation-en_US.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/main/binary-i386/Packages.xz done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/non-free/Contents-amd64.xz
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3c3d38">&lt;span>ERROR: Giving up on URL http://deb.debian.org/debian/dists/testing/non-free/i18n/Translation-en_US.lzma
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/non-free/Contents-i386.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/non-free/Contents-i386.gz done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/non-free/Contents-all.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/non-free/Contents-amd64.gz done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/main/binary-amd64/Packages.xz done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/contrib/binary-amd64/Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/contrib/binary-i386/Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/contrib/binary-amd64/Packages.xz done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/contrib/binary-all/Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/contrib/binary-i386/Packages.xz done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/contrib/binary-all/Packages.xz done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/contrib/i18n/Translation-en_IN.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/contrib/i18n/Translation-en.xz
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3c3d38">&lt;span>ERROR: Giving up on URL http://deb.debian.org/debian/dists/testing/non-free/Contents-all.lzma
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/contrib/i18n/Translation-en_US.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/contrib/i18n/Translation-en.bz2 done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/contrib/Contents-amd64.xz
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3c3d38">&lt;span>ERROR: Giving up on URL http://deb.debian.org/debian/dists/testing/contrib/i18n/Translation-en_IN.lzma
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/contrib/Contents-i386.xz
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3c3d38">&lt;span>ERROR: Giving up on URL http://deb.debian.org/debian/dists/testing/contrib/i18n/Translation-en_US.lzma
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading http://deb.debian.org/debian/dists/testing/contrib/Contents-all.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/contrib/Contents-amd64.gz done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/contrib/Contents-i386.gz done
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3c3d38">&lt;span>ERROR: Giving up on URL http://deb.debian.org/debian/dists/testing/contrib/Contents-all.lzma
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/main/Contents-i386.gz done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>http://deb.debian.org/debian/dists/testing/main/Contents-amd64.gz done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 81 / 81 items: [##############################] 100.0% of 101 MiB
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloaded data to /tmp/set.zip
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ERROR: Some items failed to download. Downloaded data may be incomplete
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ERROR: Please run in verbose mode to see details about failed items
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:38 ♒ ॐ ☹ 😟=&amp;gt; 100 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;!-- raw HTML omitted -->
&lt;p>First, lets unpack the archive file.&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">29
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">30
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">31
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">32
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">33
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">34
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">35
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">36
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">37
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">38
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">39
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">40
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">41
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">42
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">43
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">44
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">45
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">46
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">47
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">48
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">49
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">50
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">51
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">52
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">53
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">54
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">55
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">56
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-plain" data-lang="plain">&lt;span style="display:flex;">&lt;span>rrs@priyasi:/var/tmp/Debian-Build/Result$ cd /tmp/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:39 ♒ ॐ ☺ 😄
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp$ mkdir set-folder
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:39 ♒ ॐ ☺ 😄
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp$ cd set-folder/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:39 ♒ ॐ ☺ 😄
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/set-folder$ unzip ../set.zip
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Archive: ../set.zip
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_unstable_Release.gpg
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_Release.gpg
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_unstable_Release
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_InRelease
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_Release
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_unstable_InRelease
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_experimental_Release.gpg
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_experimental_InRelease
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_experimental_Release
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_contrib_source_Sources.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_non-free_source_Sources.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_main_binary-all_Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_main_source_Sources.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_main_i18n_Translation-en.bz2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_non-free_binary-amd64_Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_non-free_binary-i386_Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_non-free_binary-all_Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_non-free_i18n_Translation-en.bz2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_main_binary-i386_Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_non-free_Contents-i386.gz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_non-free_Contents-amd64.gz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_main_binary-amd64_Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_contrib_binary-amd64_Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_contrib_binary-i386_Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_contrib_binary-all_Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_contrib_i18n_Translation-en.bz2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_contrib_Contents-amd64.gz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_contrib_Contents-i386.gz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_main_Contents-i386.gz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> inflating: deb.debian.org_debian_dists_testing_main_Contents-amd64.gz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:39 ♒ ॐ ☺ 😄
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/set-folder$ ls
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_experimental_InRelease deb.debian.org_debian_dists_testing_main_Contents-i386.gz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_experimental_Release deb.debian.org_debian_dists_testing_main_i18n_Translation-en.bz2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_experimental_Release.gpg deb.debian.org_debian_dists_testing_main_source_Sources.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_binary-all_Packages.xz deb.debian.org_debian_dists_testing_non-free_binary-all_Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_binary-amd64_Packages.xz deb.debian.org_debian_dists_testing_non-free_binary-amd64_Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_binary-i386_Packages.xz deb.debian.org_debian_dists_testing_non-free_binary-i386_Packages.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_Contents-amd64.gz deb.debian.org_debian_dists_testing_non-free_Contents-amd64.gz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_Contents-i386.gz deb.debian.org_debian_dists_testing_non-free_Contents-i386.gz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_i18n_Translation-en.bz2 deb.debian.org_debian_dists_testing_non-free_i18n_Translation-en.bz2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_source_Sources.xz deb.debian.org_debian_dists_testing_non-free_source_Sources.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_InRelease deb.debian.org_debian_dists_testing_Release
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_main_binary-all_Packages.xz deb.debian.org_debian_dists_testing_Release.gpg
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_main_binary-amd64_Packages.xz deb.debian.org_debian_dists_unstable_InRelease
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_main_binary-i386_Packages.xz deb.debian.org_debian_dists_unstable_Release
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_main_Contents-amd64.gz deb.debian.org_debian_dists_unstable_Release.gpg
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:39 ♒ ॐ ☺ 😄 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;!-- raw HTML omitted -->
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-plain" data-lang="plain">&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/set-folder$ echo 112312312321 &amp;gt;&amp;gt; deb.debian.org_debian_dists_testing_non-free_source_Sources.xz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:40 ♒ ॐ ☺ 😄 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;!-- raw HTML omitted -->
&lt;p>So in this step, we tell &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> to install the downloaded files. This will also include the tampered file.
The output you see below is standard and reports everything to have succeeded.&lt;/p>
&lt;p>But note that the tampered file is not in the list of synced files. That file is just simply missing from the list.&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">29
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">30
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">31
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">32
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">33
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">34
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">35
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">36
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">37
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">38
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">39
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">40
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">41
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-plain" data-lang="plain">&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/set-folder$ sudo apt-offline install .
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Proceeding with installation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: Signature made Friday 07 February 2020 01:55:24 PM IST
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: using RSA key 16E90B3FDF65EDE3AA7F323C04EE7237B7D453EC
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: Good signature from &amp;#34;Debian Archive Automatic Signing Key (9/stretch) &amp;lt;ftpmaster@debian.org&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: Signature made Friday 07 February 2020 01:55:43 PM IST
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: using RSA key 0146DC6D4A0B2914BDED34DB648ACFD622F3D138
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: Good signature from &amp;#34;Debian Archive Automatic Signing Key (10/buster) &amp;lt;ftpmaster@debian.org&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: Signature made Friday 07 February 2020 01:56:44 PM IST
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: using RSA key 16E90B3FDF65EDE3AA7F323C04EE7237B7D453EC
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: Good signature from &amp;#34;Debian Archive Automatic Signing Key (9/stretch) &amp;lt;ftpmaster@debian.org&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: Signature made Friday 07 February 2020 01:56:45 PM IST
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: using RSA key 0146DC6D4A0B2914BDED34DB648ACFD622F3D138
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: Good signature from &amp;#34;Debian Archive Automatic Signing Key (10/buster) &amp;lt;ftpmaster@debian.org&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: Signature made Friday 07 February 2020 01:56:58 PM IST
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: using RSA key 16E90B3FDF65EDE3AA7F323C04EE7237B7D453EC
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: Good signature from &amp;#34;Debian Archive Automatic Signing Key (9/stretch) &amp;lt;ftpmaster@debian.org&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: Signature made Friday 07 February 2020 01:56:58 PM IST
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: using RSA key 0146DC6D4A0B2914BDED34DB648ACFD622F3D138
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gpgv: Good signature from &amp;#34;Debian Archive Automatic Signing Key (10/buster) &amp;lt;ftpmaster@debian.org&amp;gt;&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_Contents-amd64.gz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_Contents-i386.gz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_binary-all_Packages.xz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_binary-amd64_Packages.xz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_binary-i386_Packages.xz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_i18n_Translation-en.bz2 synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_source_Sources.xz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_main_Contents-amd64.gz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_main_Contents-i386.gz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_main_binary-all_Packages.xz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_main_binary-amd64_Packages.xz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_main_binary-i386_Packages.xz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_main_i18n_Translation-en.bz2 synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_main_source_Sources.xz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_non-free_Contents-amd64.gz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_non-free_Contents-i386.gz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_non-free_binary-all_Packages.xz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_non-free_binary-amd64_Packages.xz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_non-free_binary-i386_Packages.xz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_non-free_i18n_Translation-en.bz2 synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:41 ♒ ॐ ☺ 😄 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;!-- raw HTML omitted -->
&lt;p>So, in the above example, &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> discarded the tampered file and the final exit of the command was a success.
Now, let&amp;rsquo;s run the same command with the &amp;lsquo;&amp;ndash;verbose&amp;rsquo; switch. Below is the output.&lt;/p>
&lt;p>Notice the highlighted line below, where it reports that the file is tampered and does not match the checksum&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;span style="background-color:#3c3d38">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">29
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">30
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">31
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">32
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">33
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">34
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">35
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">36
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">37
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">38
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">39
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">40
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">41
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">42
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">43
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">44
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">45
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-plain" data-lang="plain">&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/set-folder$ sudo apt-offline install . --verbose
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: Namespace(allow_unauthenticated=False, func=&amp;lt;function installer at 0x7f6a6c7c54d0&amp;gt;, install=&amp;#39;.&amp;#39;, install_simulate=False, install_src_path=None, skip_bug_reports=False, skip_changelog=False, strict_deb_check=False, verbose=True)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: No changelog available
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Proceeding with installation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: {}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: Great!!! No bugs found for all the packages that were downloaded.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: APT Signature verification path is: [&amp;#39;/etc/apt/trusted.gpg.d/&amp;#39;, &amp;#39;/etc/apt/trusted.gpg&amp;#39;]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: Adding /etc/apt/trusted.gpg.d/debian-archive-jessie-automatic.gpg to the apt-offline keyring
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: Adding /etc/apt/trusted.gpg.d/debian-archive-jessie-security-automatic.gpg to the apt-offline keyring
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: Adding /etc/apt/trusted.gpg.d/debian-archive-jessie-stable.gpg to the apt-offline keyring
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: Adding /etc/apt/trusted.gpg.d/debian-archive-stretch-automatic.gpg to the apt-offline keyring
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: Adding /etc/apt/trusted.gpg.d/debian-archive-stretch-security-automatic.gpg to the apt-offline keyring
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: Adding /etc/apt/trusted.gpg.d/debian-archive-stretch-stable.gpg to the apt-offline keyring
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: Adding /etc/apt/trusted.gpg.d/debian-archive-buster-automatic.gpg to the apt-offline keyring
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: Adding /etc/apt/trusted.gpg.d/debian-archive-buster-security-automatic.gpg to the apt-offline keyring
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>.....snipped.....
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: localFile ./deb.debian.org_debian_dists_testing_non-free_Contents-amd64.gz Integrity with checksum 024957d30be2acbb9e66c9802f825115d32437420300a2b28ab60ae4ecb76fcf matches
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: localFile ./deb.debian.org_debian_dists_testing_non-free_Contents-i386.gz Integrity with checksum 5266d2f3ea41c4e988e71b4bbe58dd1178a23ce1ed50908c73a0cb39201136e3 matches
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: localFile ./deb.debian.org_debian_dists_testing_non-free_binary-all_Packages.xz Integrity with checksum 9f0f3aa5560452d45f82c5121ea844c68e641c8fbb56ef69d570c641b6cce662 matches
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: localFile ./deb.debian.org_debian_dists_testing_non-free_binary-amd64_Packages.xz Integrity with checksum 811f7752a13dfcbd748478dda267fb810c52fc14769d2d5c7871c75e35350d66 matches
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: localFile ./deb.debian.org_debian_dists_testing_non-free_binary-i386_Packages.xz Integrity with checksum 7df3512b5da7258613774921023d68c71858d89fddafd694e2dfd19cef54314b matches
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: localFile ./deb.debian.org_debian_dists_testing_non-free_i18n_Translation-en.bz2 Integrity with checksum 1bf3cd0cff6fadf1a74280912c3229374344cd6c347d2f533b001843d84b236d matches
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3c3d38">&lt;span>VERBOSE: localFile ./deb.debian.org_debian_dists_testing_non-free_source_Sources.xz integrity doesn&amp;#39;t match to checksum a94589ab3c204bb4d710d72ea21abac8007b14e5c5dacbe43be07c51ba5f0a0a
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: Synchronized file to /var/lib/apt/lists/deb.debian.org_debian_dists_testing_contrib_Contents-amd64
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: /var/lib/apt/lists/deb.debian.org_debian_dists_testing_contrib_Contents-amd64 file synced to APT.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_Contents-amd64.gz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: Synchronized file to /var/lib/apt/lists/deb.debian.org_debian_dists_testing_contrib_Contents-i386
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: /var/lib/apt/lists/deb.debian.org_debian_dists_testing_contrib_Contents-i386 file synced to APT.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_Contents-i386.gz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: Synchronized file to /var/lib/apt/lists/deb.debian.org_debian_dists_testing_contrib_binary-all_Packages
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: /var/lib/apt/lists/deb.debian.org_debian_dists_testing_contrib_binary-all_Packages file synced to APT.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_binary-all_Packages.xz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: Synchronized file to /var/lib/apt/lists/deb.debian.org_debian_dists_testing_contrib_binary-amd64_Packages
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: /var/lib/apt/lists/deb.debian.org_debian_dists_testing_contrib_binary-amd64_Packages file synced to APT.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_binary-amd64_Packages.xz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: Synchronized file to /var/lib/apt/lists/deb.debian.org_debian_dists_testing_contrib_binary-i386_Packages
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>VERBOSE: /var/lib/apt/lists/deb.debian.org_debian_dists_testing_contrib_binary-i386_Packages file synced to APT.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>deb.debian.org_debian_dists_testing_contrib_binary-i386_Packages.xz synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>.....snipped.....
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:42 ♒ ॐ ☺ 😄&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>This is pretty much the validation required and done by &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> for apt meta &lt;em>Packages&lt;/em> files.&lt;/p>
&lt;p>Please do file bug reports if you think the overall exit status of &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> under such scenarios should be different than what it is currently.&lt;/p>
&lt;p>For the tampered meta &lt;em>Packages&lt;/em> files:&lt;/p>
&lt;ul>
&lt;li>should the visual representation be different ?&lt;/li>
&lt;li>Should an error be printed ?&lt;/li>
&lt;li>What about the exit status ?&lt;/li>
&lt;/ul>
&lt;p>Similarly, for the &amp;lsquo;get&amp;rsquo; operation:&lt;/p>
&lt;ul>
&lt;li>Should we do something different for non-existing localization files on the repository server ?&lt;/li>
&lt;li>Is there any different way to go through the supported list of compression types for meta files ?&lt;/li>
&lt;/ul>
&lt;!-- raw HTML omitted -->
&lt;p>&lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> allows a user to install a new package and all its dependencies easily on the offline machine. The below workflow will demonstrate the same and will also go through the tampering of the .deb files and see how &lt;em>&lt;strong>apt-offline/apt&lt;/strong>&lt;/em> deals with it.&lt;/p>
&lt;p>In below example, a user wants to install the &lt;code>gnome-todo&lt;/code> package on the offline machine, which has a couple of dependencies.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-plain" data-lang="plain">&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/set-folder$ sudo apt install gnome-todo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Reading package lists... Done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Building dependency tree
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Reading state information... Done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>The following additional packages will be installed:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> gnome-todo-common libgnome-todo libpeas-1.0-0 libpeas-common
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>The following NEW packages will be installed:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> gnome-todo gnome-todo-common libgnome-todo libpeas-1.0-0 libpeas-common
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>0 upgraded, 5 newly installed, 0 to remove and 1 not upgraded.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Need to get 784 kB of archives.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>After this operation, 2,337 kB of additional disk space will be used.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Do you want to continue? [Y/n] n
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Abort.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:47 ♒ ॐ ☹ 😟=&amp;gt; 1 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;!-- raw HTML omitted -->
&lt;p>The below command generates a (signature) file, which will include all details about requested package and its dependencies.&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-plain" data-lang="plain">&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/set-folder$ sudo apt-offline set /tmp/gnome-todo.uris --install-packages gnome-todo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Gathering installation details for package [&amp;#39;gnome-todo&amp;#39;]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:48 ♒ ॐ ☺ 😄 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;!-- raw HTML omitted -->
&lt;p>Below is the usual step to be performed on the online machine with the generated &lt;code>gnome-todo.uris&lt;/code> signature file.&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">29
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">30
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">31
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">32
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-plain" data-lang="plain">&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/set-folder$ apt-offline get /tmp/gnome-todo.uris --download-dir /tmp/gnome-todo --bug-reports --threads 3
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Fetching APT Data
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>WARNING: If you are on a slow connection, it is good to
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>WARNING: limit the number of threads to a low number like 2.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>WARNING: Else higher number of threads executed could cause
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>WARNING: network congestion and timeouts.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading libpeas-common - 187 KiB
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading libpeas-1.0-0 - 196 KiB
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading gnome-todo-common - 228 KiB
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>libpeas-common done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Fetching bug report for libpeas-common
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>libpeas-1.0-0 done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Fetching bug report for libpeas-1.0-0
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gnome-todo-common done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Fetching bug report for gnome-todo-common
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Fetched bug report for libpeas-common
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading libgnome-todo - 6 KiB
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>libgnome-todo done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Fetching bug report for libgnome-todo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Fetched bug report for gnome-todo-common
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloading gnome-todo - 146 KiB
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gnome-todo done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Fetching bug report for gnome-todo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Fetched bug report for libpeas-1.0-0
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Fetched bug report for libgnome-todo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Fetched bug report for gnome-todo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> 5 / 5 items: [##############################] 100.0% of 765 KiB
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Downloaded data to /tmp/gnome-todo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:49 ♒ ॐ ☺ 😄 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;!-- raw HTML omitted -->
&lt;p>Note: The fact is that &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> will not do any checksum validation for the .deb files. The validation is completely delegated to &lt;code>apt&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-plain" data-lang="plain">&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/gnome-todo$ sudo apt-offline install -h
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>usage: apt-offline install [-h] [--verbose] [--simulate]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [--install-src-path INSTALL_SRC_PATH]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [--skip-bug-reports] [--skip-changelog]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [--allow-unauthenticated] [--strict-deb-check]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> apt-offline-download.zip | apt-offline-download/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>positional arguments:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> apt-offline-download.zip | apt-offline-download/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Install apt-offline data, a bundle file or a directory
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>optional arguments:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> -h, --help show this help message and exit
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --verbose Enable verbose messages
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --simulate Just simulate. Very helpful when debugging
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --install-src-path INSTALL_SRC_PATH
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Install src packages to specified path.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --skip-bug-reports Skip the bug report check
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --skip-changelog Skip display of changelog
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --allow-unauthenticated
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Ignore apt gpg signatures mismatch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> --strict-deb-check Perform strict checksum validaton for downloaded .deb
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> files
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:50 ♒ ॐ ☺ 😄 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;p>and from the manpage:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-markdown" data-lang="markdown">&lt;span style="display:flex;">&lt;span> --strict-deb-check
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> With this option enabled, apt-offline delegate&amp;#39;s .deb package checksum validation to apt. While the .debs are already avail‐
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> able, they are stored in the temporary apt cache, where apt validates its checksum, before considering it for further pro‐
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> cessing. Note: This does have the caveat that apt may need network availability even though it doesn&amp;#39;t download anything
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> over the network. But it does invoke the download routines and realizes that the payload is already available. It then fur‐
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ther proceeds with checksum validation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> The default behavior is to not do strict checksum validation for .deb files. Instead, apt-offline copies the .deb files to
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> apt&amp;#39;s download location. apt still does size validation of the available .deb files and discards them in case there is a mis‐
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> match.&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;!-- raw HTML omitted -->
&lt;p>Before we proceed with the example of checksum verification for .deb files, lets do a pristine run of the downloaded files, without any tampering to them.&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">29
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">30
&lt;/span>&lt;span style="background-color:#3c3d38">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">31
&lt;/span>&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">32
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">33
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">34
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">35
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-plain" data-lang="plain">&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/gnome-todo$ sudo apt-offline install .
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Proceeding with installation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Following are the list of bugs present.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>822525 gnome-todo : gnome-todo: Memory leak while loading local and remote lists
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>853114 gnome-todo : no longer loads caldav lists
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>883961 libgnome-todo : libgnome-todo: Not actually a library
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>829470 libpeas-1.0-0 : libpeas: Python Plugin Broken
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(Y) Yes. Proceed with installation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(N) No, Abort.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(R) Redisplay the list of bugs.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(Bug Number) Display the bug report from the Offline Bug Reports.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(?) Display this help message.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>What would you like to do next: (y, N, ?)y
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gnome-todo_3.28.1-5_amd64.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>libgnome-todo_3.28.1-5_amd64.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gnome-todo-common_3.28.1-5_all.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>libpeas-1.0-0_1.22.0-5_amd64.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>libpeas-common_1.22.0-5_all.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:51 ♒ ॐ ☺ 😄
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/gnome-todo$ sudo apt install gnome-todo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Reading package lists... Done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Building dependency tree
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Reading state information... Done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>The following additional packages will be installed:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> gnome-todo-common libgnome-todo libpeas-1.0-0 libpeas-common
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>The following NEW packages will be installed:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> gnome-todo gnome-todo-common libgnome-todo libpeas-1.0-0 libpeas-common
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>0 upgraded, 5 newly installed, 0 to remove and 1 not upgraded.
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3c3d38">&lt;span>Need to get 0 B/784 kB of archives.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>After this operation, 2,337 kB of additional disk space will be used.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Do you want to continue? [Y/n] n
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Abort.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:51 ♒ ॐ ☹ 😟=&amp;gt; 1 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>In the above example, everything is clean and all requirements to apt are satisfied.&lt;/p>
&lt;!-- raw HTML omitted -->
&lt;p>Here&amp;rsquo;s one more exaple, where we invoke the non-default &lt;code>--strict-deb-check&lt;/code> option.&lt;/p>
&lt;p>Everything remains the same, but apt gives a prompt saying that it needs to download the payload from the web. The reality is that if you just proceed with yes, nothing gets downloaded.&lt;/p>
&lt;p>Note: It is not possible to explain that with a still presentation and I&amp;rsquo;m lazy to make a motion object of it.&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">29
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">30
&lt;/span>&lt;span style="background-color:#3c3d38">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">31
&lt;/span>&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">32
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">33
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">34
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">35
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">36
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">37
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">38
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">39
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">40
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">41
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">42
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-plain" data-lang="plain">&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/gnome-todo$ sudo apt-offline install . --strict-deb-check
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Proceeding with installation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Following are the list of bugs present.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>822525 gnome-todo : gnome-todo: Memory leak while loading local and remote lists
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>853114 gnome-todo : no longer loads caldav lists
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>883961 libgnome-todo : libgnome-todo: Not actually a library
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>829470 libpeas-1.0-0 : libpeas: Python Plugin Broken
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(Y) Yes. Proceed with installation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(N) No, Abort.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(R) Redisplay the list of bugs.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(Bug Number) Display the bug report from the Offline Bug Reports.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(?) Display this help message.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>What would you like to do next: (y, N, ?)y
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gnome-todo_3.28.1-5_amd64.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>libgnome-todo_3.28.1-5_amd64.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gnome-todo-common_3.28.1-5_all.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>libpeas-1.0-0_1.22.0-5_amd64.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>libpeas-common_1.22.0-5_all.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:52 ♒ ॐ ☺ 😄
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/gnome-todo$ sudo apt install gnome-todo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Reading package lists... Done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Building dependency tree
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Reading state information... Done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>The following additional packages will be installed:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> gnome-todo-common libgnome-todo libpeas-1.0-0 libpeas-common
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>The following NEW packages will be installed:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> gnome-todo gnome-todo-common libgnome-todo libpeas-1.0-0 libpeas-common
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>0 upgraded, 5 newly installed, 0 to remove and 1 not upgraded.
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3c3d38">&lt;span>Need to get 784 kB of archives.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>After this operation, 2,337 kB of additional disk space will be used.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Do you want to continue? [Y/n]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Get:1 http://deb.debian.org/debian testing/main amd64 libpeas-common all 1.22.0-5 [192 kB]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Get:2 http://deb.debian.org/debian testing/main amd64 libpeas-1.0-0 amd64 1.22.0-5 [201 kB]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Get:3 http://deb.debian.org/debian testing/main amd64 gnome-todo-common all 3.28.1-5 [234 kB]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Get:4 http://deb.debian.org/debian testing/main amd64 libgnome-todo amd64 3.28.1-5 [6,260 B]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Get:5 http://deb.debian.org/debian testing/main amd64 gnome-todo amd64 3.28.1-5 [150 kB]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Retrieving bug reports... Done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Parsing Found/Fixed information... Done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>.....snipped.....
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:53 ♒ ॐ ☺ 😄 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>To sum it up, this one is an odd case because though nothing for the debs is downloaded, BUT, the network needs to be active for this co-routine to run. If, say, the network is unavailable, apt complains. I haven&amp;rsquo;t checked, but apt does invoke some network code.&lt;/p>
&lt;p>But no payload is downloaded. apt just validates and realizes that all the to-be-downloaded data, is intact and available.&lt;/p>
&lt;!-- raw HTML omitted -->
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-plain" data-lang="plain">&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/gnome-todo$ echo fasdfadsfasdfasdfasd &amp;gt;&amp;gt; gnome-todo_3.28.1-5_amd64.deb
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:54 ♒ ॐ ☺ 😄
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/gnome-todo$ sudo apt clean
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:54 ♒ ॐ ☺ 😄 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;!-- raw HTML omitted -->
&lt;p>So we tampered one of the .deb files, &lt;code>gnome-todo_3.28.1-5_amd64.deb&lt;/code>. And ask &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em> to run its &amp;lsquo;install&amp;rsquo; operation along with the new &lt;code>--strict-deb-check&lt;/code> option.&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">29
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">30
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">31
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">32
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">33
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">34
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">35
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">36
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">37
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">38
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">39
&lt;/span>&lt;span style="background-color:#3c3d38">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">40
&lt;/span>&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">41
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">42
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">43
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">44
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-plain" data-lang="plain">&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/gnome-todo$ sudo apt-offline install . --strict-deb-check
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Proceeding with installation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Following are the list of bugs present.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>822525 gnome-todo : gnome-todo: Memory leak while loading local and remote lists
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>853114 gnome-todo : no longer loads caldav lists
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>883961 libgnome-todo : libgnome-todo: Not actually a library
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>829470 libpeas-1.0-0 : libpeas: Python Plugin Broken
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(Y) Yes. Proceed with installation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(N) No, Abort.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(R) Redisplay the list of bugs.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(Bug Number) Display the bug report from the Offline Bug Reports.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(?) Display this help message.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>What would you like to do next: (y, N, ?)y
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gnome-todo_3.28.1-5_amd64.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>libgnome-todo_3.28.1-5_amd64.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gnome-todo-common_3.28.1-5_all.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>libpeas-1.0-0_1.22.0-5_amd64.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>libpeas-common_1.22.0-5_all.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:54 ♒ ॐ ☺ 😄
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/gnome-todo$ sudo apt install gnome-todo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Reading package lists... Done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Building dependency tree
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Reading state information... Done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>The following additional packages will be installed:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> gnome-todo-common libgnome-todo libpeas-1.0-0 libpeas-common
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>The following NEW packages will be installed:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> gnome-todo gnome-todo-common libgnome-todo libpeas-1.0-0 libpeas-common
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>0 upgraded, 5 newly installed, 0 to remove and 1 not upgraded.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Need to get 784 kB of archives.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>After this operation, 2,337 kB of additional disk space will be used.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Do you want to continue? [Y/n]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Get:1 http://deb.debian.org/debian testing/main amd64 libpeas-common all 1.22.0-5 [192 kB]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Get:2 http://deb.debian.org/debian testing/main amd64 libpeas-1.0-0 amd64 1.22.0-5 [201 kB]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Get:3 http://deb.debian.org/debian testing/main amd64 gnome-todo-common all 3.28.1-5 [234 kB]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Get:4 http://deb.debian.org/debian testing/main amd64 libgnome-todo amd64 3.28.1-5 [6,260 B]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Get:5 http://deb.debian.org/debian testing/main amd64 gnome-todo amd64 3.28.1-5 [150 kB]
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3c3d38">&lt;span>Fetched 150 kB in 1s (141 kB/s)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Retrieving bug reports... Done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Parsing Found/Fixed information... Done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:55 ♒ ॐ ☹ 😟=&amp;gt; 100 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>Pay attention to the downloaded data which is only 150 KiB, for the &lt;code>gnome-todo&lt;/code> package, which was tampered.
Even though &lt;code>apt&lt;/code> stated that it needs to download 784 KiB of data, it actually downloaded 150 KiB only. All data was already downloaded by &lt;code>apt-offline&lt;/code> but we had tampered one of the files, which resulted in it being re-downloaded.&lt;/p>
&lt;!-- raw HTML omitted -->
&lt;p>Now, lets do one more run with the default behavior of &lt;em>&lt;strong>apt-offline&lt;/strong>&lt;/em>, i.e. without the &lt;code>--strict-deb-check&lt;/code> option.
This will result in apt (internally) detecting the tampering and prompting the user that the (tampered) file needs to be downloaded&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">29
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">30
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">31
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">32
&lt;/span>&lt;span style="background-color:#3c3d38">&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">33
&lt;/span>&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">34
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">35
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">36
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">37
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">38
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">39
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">40
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">41
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">&lt;code class="language-plain" data-lang="plain">&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/gnome-todo$ sudo apt-offline install .
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Proceeding with installation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Following are the list of bugs present.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>822525 gnome-todo : gnome-todo: Memory leak while loading local and remote lists
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>853114 gnome-todo : no longer loads caldav lists
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>883961 libgnome-todo : libgnome-todo: Not actually a library
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>829470 libpeas-1.0-0 : libpeas: Python Plugin Broken
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(Y) Yes. Proceed with installation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(N) No, Abort.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(R) Redisplay the list of bugs.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(Bug Number) Display the bug report from the Offline Bug Reports.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(?) Display this help message.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>What would you like to do next: (y, N, ?)y
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gnome-todo_3.28.1-5_amd64.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>libgnome-todo_3.28.1-5_amd64.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gnome-todo-common_3.28.1-5_all.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>libpeas-1.0-0_1.22.0-5_amd64.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>libpeas-common_1.22.0-5_all.deb file synced.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:56 ♒ ॐ ☺ 😄
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/gnome-todo$ sudo apt^C
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:56 ♒ ॐ ☹ 😟=&amp;gt; 130
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>rrs@priyasi:/tmp/gnome-todo$ sudo apt install gnome-todo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Reading package lists... Done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Building dependency tree
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Reading state information... Done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>The following additional packages will be installed:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> gnome-todo-common libgnome-todo libpeas-1.0-0 libpeas-common
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>The following NEW packages will be installed:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> gnome-todo gnome-todo-common libgnome-todo libpeas-1.0-0 libpeas-common
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>0 upgraded, 5 newly installed, 0 to remove and 1 not upgraded.
&lt;/span>&lt;/span>&lt;span style="display:flex; background-color:#3c3d38">&lt;span>Need to get 150 kB/784 kB of archives.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>After this operation, 2,337 kB of additional disk space will be used.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Do you want to continue? [Y/n]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Get:1 http://deb.debian.org/debian testing/main amd64 gnome-todo amd64 3.28.1-5 [150 kB]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Fetched 150 kB in 0s (448 kB/s)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Retrieving bug reports... Done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Parsing Found/Fixed information... Done
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>.....snipped......
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>16:57 ♒ ॐ ☺ 😄 &lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>
&lt;p>Notice the highlighted line, which gives a less confusing, realistic summary of what needs to be done. In this case, apt is prompting the user that 150 KiB of data needs to be downloaded, which indeed is the case.&lt;/p>
&lt;!-- raw HTML omitted --></description></item><item><title>apt-offline 1.8.1 released</title><link>https://researchut.com/blog/apt-offline-181/</link><pubDate>Sun, 02 Jul 2017 07:38:15 -0400</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/blog/apt-offline-181/</guid><description>&lt;p>apt-offline 1.8.1 [released](&lt;a href="https://github.com/rickysarraf/apt-">https://github.com/rickysarraf/apt-&lt;/a>
offline/releases/tag/v1.8.1).&lt;/p>
&lt;p>This is a bug fix release fixing some python3 glitches related to module
imports. Recommended for all users.&lt;/p>
&lt;p>apt-offline (1.8.1) unstable; urgency=medium&lt;/p>
&lt;ul>
&lt;li>Switch setuptools to invoke py3&lt;/li>
&lt;li>No more argparse needed on py3&lt;/li>
&lt;li>Fix genui.sh based on comments from pyqt mailing list&lt;/li>
&lt;li>Bump version number to 1.8.1&lt;/li>
&lt;/ul>
&lt;p>-- Ritesh Raj Sarraf &lt;a href="mailto:rrs@debian.org">rrs@debian.org&lt;/a> Sat, 01 Jul 2017 21:39:24 +0545&lt;/p>
&lt;p>What is apt-offline&lt;/p>
&lt;pre>&lt;code>Description: offline APT package manager
apt-offline is an Offline APT Package Manager.
.
apt-offline can fully update and upgrade an APT based distribution without
connecting to the network, all of it transparent to APT.
.
apt-offline can be used to generate a signature on a machine (with no network).
This signature contains all download information required for the APT database
system. This signature file can be used on another machine connected to the
internet (which need not be a Debian box and can even be running windows) to
download the updates.
The downloaded data will contain all updates in a format understood by APT and
this data can be used by apt-offline to update the non-networked machine.
.
apt-offline can also fetch bug reports and make them available offline.
&lt;/code>&lt;/pre></description></item><item><title>apt-offline 1.8.0 released</title><link>https://researchut.com/blog/apt-offline-180/</link><pubDate>Sun, 21 May 2017 17:17:37 -0400</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/blog/apt-offline-180/</guid><description>&lt;p>I am pleased to announce the release of &lt;strong>apt-offline&lt;/strong> , version &lt;strong>1.8.0&lt;/strong>.
This release is mainly a forward port of apt-offline to Python 3 and PyQt5.
There are some glitches related to Python 3 and PyQt5, but overall the CLI
interface works fine. Other than the porting, there&amp;rsquo;s also an important bug
fixed, related to memory leak when using the MIME library. And then there&amp;rsquo;s
some updates to the documentation (user examples) based on feedback from
users.&lt;/p>
&lt;p>Release is availabe from [Github](&lt;a href="https://github.com/rickysarraf/apt-">https://github.com/rickysarraf/apt-&lt;/a>
offline/releases/tag/v1.8.0) and [Alioth](http://apt-
offline.alioth.debian.org)&lt;/p>
&lt;p>&lt;img src="https://researchut.com/images/Screenshot_from_2017-05-10_11-09-26.png" alt="">&lt;/p>
&lt;p>&lt;img src="https://researchut.com/images/Screenshot_from_2017-05-10_12-02-41.png" alt="">&lt;/p>
&lt;p>What is apt-offline ?&lt;/p>
&lt;pre>&lt;code>Description: offline APT package manager
apt-offline is an Offline APT Package Manager.
.
apt-offline can fully update and upgrade an APT based distribution without
connecting to the network, all of it transparent to APT.
.
apt-offline can be used to generate a signature on a machine (with no network).
This signature contains all download information required for the APT database
system. This signature file can be used on another machine connected to the
internet (which need not be a Debian box and can even be running windows) to
download the updates.
The downloaded data will contain all updates in a format understood by APT and
this data can be used by apt-offline to update the non-networked machine.
.
apt-offline can also fetch bug reports and make them available offline.
&lt;/code>&lt;/pre></description></item><item><title>apt-offline 1.7.2 released</title><link>https://researchut.com/blog/apt-offline-172/</link><pubDate>Thu, 10 Nov 2016 12:01:26 -0500</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/blog/apt-offline-172/</guid><description>&lt;p>I am happy to announce the release of &lt;a href="https://github.com/rickysarraf/apt-offline/releases/tag/v1.7.2">apt-offline
1.7.2&lt;/a>. This
has turned out in time for the next release of Debian, i.e. Debian Stretch.&lt;/p>
&lt;p>A long standing cosmetic issue in CLI of the progress bar total item count has
been fixed. There are also a bunch of other bug fixes, for which the specifics
are present in the git logs.&lt;/p>
&lt;p>Also, in this release, we&amp;rsquo;ve tried to catch-up on the Graphical Interface,
adding the GUI equivalent of the features, that were added to apt-offline in
the recent past.&lt;/p>
&lt;p>In 1.7.1, we added the changelog option, and in this release, we&amp;rsquo;ve added the
GUI equivalent of it.&lt;/p>
&lt;p>&lt;img src="https://researchut.com/images/Screenshot%20from%202016-11-10%2022-10-37.png" alt="">&lt;/p>
&lt;p>The &amp;lsquo;set&amp;rsquo; command had had many new options. So in this release the &amp;lsquo;set&amp;rsquo;
command&amp;rsquo;s GUI has those options added.&lt;/p>
&lt;p>&lt;img src="https://researchut.com/images/Screenshot%20from%202016-11-10%2022-09-57.png" alt="">&lt;/p>
&lt;p>I hope you like this release. Please test and file bug reports in time so that
we have a bug free version for Debian Stretch.&lt;/p>
&lt;p>Future tasks now will focus on porting the GUI to PyQt5 first and then apt-
offline to Python3. Any help is welcome.&lt;/p>
&lt;p>You can download apt-offline from the [github](&lt;a href="https://github.com/rickysarraf">https://github.com/rickysarraf&lt;/a>
/apt-offline) page or the &lt;a href="http://apt-offline.alioth.debian.org">alioth&lt;/a> page.
For Debian users, the package will show up in the repository soon.&lt;/p>
&lt;p>PS: What is apt-offline ?&lt;/p>
&lt;pre>&lt;code>Description: offline APT package manager
apt-offline is an Offline APT Package Manager.
.
apt-offline can fully update and upgrade an APT based distribution without
connecting to the network, all of it transparent to APT.
.
apt-offline can be used to generate a signature on a machine (with no network).
This signature contains all download information required for the APT database
system. This signature file can be used on another machine connected to the
internet (which need not be a Debian box and can even be running windows) to
download the updates.
The downloaded data will contain all updates in a format understood by APT and
this data can be used by apt-offline to update the non-networked machine.
.
apt-offline can also fetch bug reports and make them available offline.
&lt;/code>&lt;/pre></description></item><item><title>apt-offline 1.7.1 released</title><link>https://researchut.com/blog/apt-offline-171/</link><pubDate>Mon, 12 Sep 2016 06:41:50 -0400</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/blog/apt-offline-171/</guid><description>&lt;p>I am happy to mention the release of apt-offline, version 1.7.1.&lt;/p>
&lt;p>This release includes many bug fixes, code cleanups and better integration.&lt;/p>
&lt;ul>
&lt;li>Integration with &lt;strong>PolicyKit&lt;/strong>&lt;/li>
&lt;li>Better integration with &lt;strong>apt gpg keyring&lt;/strong>&lt;/li>
&lt;li>Resilient to failures when a sub-task errors out&lt;/li>
&lt;li>New Feature: &lt;strong>Changelog&lt;/strong>
&lt;ul>
&lt;li>This release adds the ability to deal with package changelogs (&amp;rsquo; &lt;strong>set&lt;/strong> &amp;rsquo; command option: &lt;em>&lt;strong>--generate-changelog&lt;/strong>&lt;/em> ) based on what is installed, extract changelog (Currently support with python-apt only) from downloaded packages and display them during installation (&amp;rsquo; &lt;strong>install&lt;/strong> &amp;rsquo; command opiton: &lt;em>&lt;strong>--skip-changelog&lt;/strong>&lt;/em> , if you want to skip display of changelog)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>New Option: &lt;em>&lt;strong>--apt-backend&lt;/strong>&lt;/em>
&lt;ul>
&lt;li>Users can now opt to choose an apt backend of their choice. Currently support: apt, apt-get (default) and python-apt&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>Hopefully, there will be one more release, before the release to &lt;strong>Stretch&lt;/strong>.&lt;/p>
&lt;p>apt-offline can be downloaded from its
&lt;a href="https://alioth.debian.org/projects/apt-offline/">homepage&lt;/a> or from
&lt;a href="https://github.com/rickysarraf/apt-offline">Github&lt;/a> page.&lt;/p>
&lt;p>Update: The &lt;strong>PolicyKit&lt;/strong> integration requires running the &lt;em>apt-offline-gui&lt;/em>
command with &lt;em>pkexec&lt;/em> (screenshot). It also work fine with &lt;em>sudo, su&lt;/em> etc.&lt;/p>
&lt;p>&lt;img src="https://researchut.com/images/apt-offline-171-pkexec.png" alt="">&lt;/p></description></item><item><title>apt-offline backports for Debian Jessie</title><link>https://researchut.com/blog/apt-offline-debian-jessie-backports/</link><pubDate>Thu, 14 Apr 2016 08:57:22 -0400</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/blog/apt-offline-debian-jessie-backports/</guid><description>&lt;p>For Debian Jessie, the version of apt-offline available is: 1.5.1. This
version has had some [issues](&lt;a href="https://bugs.debian.org/cgi-">https://bugs.debian.org/cgi-&lt;/a>
bin/pkgreport.cgi?pkg=apt-offline;dist=unstable).&lt;/p>
&lt;p>My very 1st backports is available in the form of [apt-offline 1.7 for
](&lt;a href="https://packages.debian.org/source/jessie-backports/apt-">https://packages.debian.org/source/jessie-backports/apt-&lt;/a>
offline)[Debian](&lt;a href="https://packages.debian.org/source/jessie-backports/apt-">https://packages.debian.org/source/jessie-backports/apt-&lt;/a>
offline) Jessie Backports. For Debian Jessie users, this should fix most of
the issues.&lt;/p></description></item><item><title>apt-offline 1.7</title><link>https://researchut.com/blog/apt-offline-17/</link><pubDate>Wed, 11 Nov 2015 07:29:29 -0500</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/blog/apt-offline-17/</guid><description>&lt;p>Hello World,&lt;/p>
&lt;p>&lt;img src="https://researchut.com/images/1280px-The_Rangoli_of_Lights.jpg" alt="">&lt;/p>
&lt;p>In this part of the world, today is a great day. Today is &lt;em>&lt;strong>&lt;a href="https://en.wikipedia.org/wiki/Diwali">Diwali - the
festival of lights&lt;/a>&lt;/strong>&lt;/em>&lt;/p>
&lt;p>On this day, I am very happy to announce the release of &lt;strong>apt-offline&lt;/strong> ,
version &lt;strong>1.7&lt;/strong>. This release brings in a large number of fixes and is a
recommended update. Thanks to &lt;strong>Bernd Dietzel&lt;/strong> for uncovering the shell
injection bug which could be exploited by carefully crafting the signature
file. Since apt-offline could be run as &amp;lsquo;root&amp;rsquo;, this one was an important
bug. Also thanks to him for the fix.&lt;/p>
&lt;p>During my tests, I also realized that apt-offline&amp;rsquo;s &lt;em>--install-src-packages&lt;/em>
implementation had broken over time. &lt;em>--install-src-packages&lt;/em> option can be
useful to users who would like the offline ability to download a [Debian]
&lt;strong>source package&lt;/strong> , along with all its &lt;strong>Build Dependencies&lt;/strong>.&lt;/p>
&lt;p>For further details on many of the other fixes, please refer to the git
repository at the homepage. Packages for Debian (and derivatives) are already
in the queue.&lt;/p>
&lt;p>Wishing You and Your Loved Ones a Very Happy Diwali.&lt;/p></description></item><item><title>apt-offline 1.6</title><link>https://researchut.com/blog/apt-offline-16/</link><pubDate>Wed, 14 Jan 2015 05:32:07 -0500</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/blog/apt-offline-16/</guid><description>&lt;p>I am pleased to announce the release of apt-offline - 1.6&lt;/p>
&lt;p>This release is mostly a bug fix release, which every user should upgrade to.
It also fixes a major bug in the way we limited the validation of GPG
integrity, for the APT repository lists ( &lt;strong>Thank you Paul Wise&lt;/strong> ).&lt;/p>
&lt;p>Also, In the last release, we migrated from custom magic library to the
python shipped ctype python-magic library. That allowed some bugs to creep,
and hopefully now, all those bugs should be fixed. A big thanks to &lt;strong>Roland
Summers&lt;/strong> for his bug reports and continuous feedback.&lt;/p>
&lt;p>_ &lt;strong>What is apt-offline ?&lt;/strong>_&lt;/p>
&lt;pre>&lt;code>Description-en: offline APT package manager
apt-offline is an Offline APT Package Manager.
.
apt-offline can fully update and upgrade an APT based distribution without
connecting to the network, all of it transparent to APT.
.
apt-offline can be used to generate a signature on a machine (with no network).
This signature contains all download information required for the APT database
system. This signature file can be used on another machine connected to the
internet (which need not be a Debian box and can even be running windows) to
download the updates.
The downloaded data will contain all updates in a format understood by APT and
this data can be used by apt-offline to update the non-networked machine.
.
apt-offline can also fetch bug reports and make them available offline.
&lt;/code>&lt;/pre>
&lt;p>Debian changelog for the 1.6 release.&lt;/p>
&lt;pre>&lt;code>apt-offline (1.6) experimental; urgency=medium
* [2a4a7f1] Don't abuse exception handlers.
Thanks to R-Sommer
* [afc51b3] MIME type for a deb package.
Thanks to R-Sommer
* [ec2d539] Also include debian-archive-keyring.
Thanks to Hans-Christoph Steiner (Closes: #748082)
* [dc602ac] Update MIME type for .gpg
* [c4f9b71] Cycle through possible apt keyrings.
Thanks to Paul Wise (Closes: #747163)
* [de0fe4d] Clarify manpage for install
* [b5e1075] Update manpage with some doc about argparse positional
values to arguments
* [c22d64d] Port is data type integer.
Thanks to Roland Sommer
* [67edebe] autodetect release name
* [5803141] Disable python-apt support
-- Ritesh Raj Sarraf &amp;lt;rrs@debian.org&amp;gt; Wed, 14 Jan 2015 15:34:45 +0530
&lt;/code>&lt;/pre>
&lt;p>[1] &lt;a href="https://alioth.debian.org/projects/apt-offline/">https://alioth.debian.org/projects/apt-offline/&lt;/a>&lt;/p></description></item><item><title>apt-offline 1.5</title><link>https://researchut.com/blog/apt-offline-15/</link><pubDate>Mon, 15 Sep 2014 14:17:12 -0400</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/blog/apt-offline-15/</guid><description>&lt;p>I am very pleased to announce the release of apt-offline, version 1.5.&lt;/p>
&lt;p>In version 1.4, the offline bug report functionality had to be dropped. In
version 1.5, it is back again. apt-offline now uses the new Debian native BTS
library. Thanks to its developers, this library is much more slim and neat.
The only catch is that it depends on the SOAPpy library which currently is not
stock in Python. If you run apt-offline of Debian, you may not have to worry
as I will add a Recommends on that package. For users using it on Microsoft
Windows, please ensure that you have the SOAPpy library installed. It is
available on pypi.&lt;/p>
&lt;p>The old bundled magic library has been replaced with the version of python
magic library that Debian ships. This library is derived from the file package
and is portable on almost all Unixes. For Debian users, there will be a
Recommends on it too.&lt;/p>
&lt;p>There were also a bunch of old, outstanding, and annoying bugs that have been
fixed in this release. For a full list of changes, please refer to the git
logs.&lt;/p>
&lt;p>With this release, apt-offline should be in good shape for the Jessie release.&lt;/p>
&lt;p>apt-offline is available on Alioth @ &lt;a href="https://alioth.debian.org/projects/apt-">https://alioth.debian.org/projects/apt-&lt;/a>
offline/&lt;/p></description></item><item><title>apt-offline 1.4</title><link>https://researchut.com/blog/apt-offline-14/</link><pubDate>Sun, 31 Aug 2014 12:41:18 -0400</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/blog/apt-offline-14/</guid><description>&lt;p>apt-offline 1.4 has been released [1]. This is a minor bug fix release. In
fact, one feature, offline bug reports (&amp;ndash;bug-reports), has been dropped for
now.&lt;/p>
&lt;p>The Debian BTS interface seems to have changed over time and the older
debianbts.py module (that used the CGI interface) does not seem to work
anymore. The current debbugs.py module seems to have switched to the SOAP
interface.&lt;/p>
&lt;p>There are a lot of changes going on personally, I just haven&amp;rsquo;t had the time to
spend. If anyone would like to help, please reach out to me. We need to use
the new debbugs.py module. And it should be cross-platform.&lt;/p>
&lt;p>Also, thanks to Hans-Christoph Steiner for providing the bash completion
script.&lt;/p>
&lt;p>[1] &lt;a href="https://alioth.debian.org/projects/apt-offline/">https://alioth.debian.org/projects/apt-offline/&lt;/a>&lt;/p></description></item><item><title>apt-offline - 1.3</title><link>https://researchut.com/blog/apt-offline-1.3</link><pubDate>Mon, 31 Dec 2012 12:16:07 -0500</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/blog/apt-offline-1.3</guid><description>&lt;p>It is still 2012 in this part of the world and the world is still intact.
Since nothing major happened, I thought of spending the new gifted time to add
a long pending item to apt-offline. As shown in the screen shots, apt-
offline&amp;rsquo;s GUI now has support to detect and display the downloaded offline bug
reports. &lt;img src="https://researchut.com/images/bug%20report1.jpeg" alt="">&lt;/p>
&lt;p>&lt;img src="https://researchut.com/images/bug%20report2.jpeg" alt="">&lt;/p>
&lt;p>This is part of the just released, &lt;strong>version 1.3&lt;/strong>.&lt;/p></description></item><item><title>Offline Package Manager - apt-offline</title><link>https://researchut.com/tools/apt-offline/</link><pubDate>Fri, 19 Aug 2011 06:23:13 -0400</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/tools/apt-offline/</guid><description>
&lt;video width=100% controls> //autoplay off
&lt;!-- &lt;video width=100% controls autoplay> //autoplay on -->
&lt;source src="https://researchut.com/images/apt-offline-demo.mp4" type="video/mp4">
Your browser does not support the video tag.
&lt;/video>
&lt;p>A copy of this article is also available &lt;a href="https://github.com/rickysarraf/apt-offline/wiki/HOWTO">here&lt;/a>&lt;/p>
&lt;p>This article is about Offline Package Management in Debian. Debian is a pretty
well known project. One of the things that makes Debian very popular is APT
(a.k.a Advanced Packaging Tool) which allows remote package downloads,
upgrades and dependency resolution. Unfortunately it does require a network
connection - unless you use apt-offline.&lt;/p>
&lt;p>In Debian, when you need to install a package, you usually would fire up the
apt-get command and the software would just install without any hand holding.&lt;/p>
&lt;p>While APT is really very cool one of the main reasons for its success is the
Debian Policy. The Debian Policy is like the brain of the project that
controls the entire project ensuring that all the bits and pieces fit well
together upto the Debian Standards. APT is just a result of the fantastic
Debian Policy work.&lt;/p>
&lt;p>In Debian, every package is very well self-contained and is tightly related to
each other using APT. APT does a very good job of integrating and resolving
dependencies for Package Management and takes off all the Dependency Hell
problems from the user.&lt;/p>
&lt;p>This is where the problem starts - for a machine which has network access it
works very well because APT generates the list of packages and their
dependencies and is able to download and install them successfully.&lt;/p>
&lt;p>But when it comes to downloading a package individually on a different
machine, along wih resolving any dependencies this can be a big problem.&lt;/p>
&lt;p>Consider this real world example: I have a Debian box at home. At home, I have
no (or very slow/expensive dial-up) internet connection. At work, I (or my
friend) do have a very fast connection but (as part of IT policy) am required
to use Windows.&lt;/p>
&lt;p>I would still like to be able to painlessly update/upgrade my Debian box at
home, with all the power and flexibility of APT.&lt;/p>
&lt;p>This is where apt-offline is useful. &lt;a href="https://github.com/rickysarraf/apt-offline">apt-offline&lt;/a> is an &lt;em>offline&lt;/em> APT Package Manager.&lt;/p>
&lt;p>Using apt-offline:&lt;/p>
&lt;ul>
&lt;li>You generate a signature on your Debian box at home and carry the signature file on a removable medium (Probably a USB Stick).(e.g. &amp;ldquo;apt-offline set /tmp/apt-offline.txt&amp;rdquo;)&lt;/li>
&lt;li>Now you take the USB Stick (with the apt-offline.txt signature file) to the office machine which could be running any linux version, or as I mentioned above, even Windows.&lt;/li>
&lt;li>There, you could run apt-offline giving it the signature file. (e.g. &amp;ldquo;apt-offline get C:\apt-offline.txt&amp;rdquo;)&lt;/li>
&lt;li>apt-offline would generate you an archive file or a folder with all the data. That data can be copied on a removable media. The removable media can be attached back to the disconnected Debian box at home and installed. (e.g. &amp;ldquo;apt-offline install /tmp/apt-offline.zip&amp;rdquo;)&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Let&amp;rsquo;s start with a 3 step example&lt;/strong>&lt;/p>
&lt;p>&lt;strong>Step 1&lt;/strong>&lt;/p>
&lt;p>Generate a signature file on the Disconnected Debian box at home&lt;/p>
&lt;pre>&lt;code>apt-offline set /tmp/apt-offline.sig
&lt;/code>&lt;/pre>
&lt;p>The above command will generate all information required from apt about
updating its database.&lt;/p>
&lt;p>By default, with no additional arguments passed, apt-offline will extract
information about &lt;strong>APT Package Database Update i.e. the --update option&lt;/strong>
as well as the list of &lt;strong>Packages to be upgraded i.e. the --upgrade
option&lt;/strong>.&lt;/p>
&lt;p>These options can also be individually passed if you want only one of those.&lt;/p>
&lt;p>&lt;strong>Step 2&lt;/strong>&lt;/p>
&lt;p>Download data based on the signature file generated earlier&lt;/p>
&lt;pre>&lt;code>apt-offline get C:\apt-offline.sig --threads 5
&lt;/code>&lt;/pre>
&lt;p>The above command will download data as mentioned in the signature file. To
speed up downloads (that can be from multiple apt repositories), in this
example we spawn 5 download threads.&lt;/p>
&lt;p>&lt;strong>Note:&lt;/strong> It would be good to also download the bug reports for the packages
that you are downloading. So that example now becomes:&lt;/p>
&lt;pre>&lt;code>apt-offline get C:\apt-offline.sig --bug-reports --threads 5
&lt;/code>&lt;/pre>
&lt;p>There are many more options that you can pass to apt-offline, like the
--bundle option which would generate for you, an archive file with all the
data.&lt;/p>
&lt;p>Once completed, you could just copy the data (an archive file, if you used the
--bundle option) back to the removable medium and copy it back onto your
offline host.&lt;/p>
&lt;p>&lt;strong>Step 3&lt;/strong>&lt;/p>
&lt;p>Once you&amp;rsquo;re back upon the home Debian machine, you feed the data from the
removable medium to apt-offline:&lt;/p>
&lt;pre>&lt;code>apt-offline install /media/USB/apt-offline.zip
&lt;/code>&lt;/pre>
&lt;p>This will update the APT database on your disconnected machine seamlessly.&lt;/p>
&lt;p>If there were packages that needed to be upgraded, now they would all be
available (with dependencies) in the APT database. So if you do an apt-get
upgrade now, APT won&amp;rsquo;t prompt you mentioning even a single bye download. APT
would find that all required packages are already present in the APT cache.&lt;/p>
&lt;p>If you had used the --bug-reports switch that I mentioned earlier, during
install apt-offline would prompt you with the list of bug reports related to
the packages on your machine that need be upgraded/installed - not just the
list but the full bug report will be available for you to look at and evaluate
the severity involved.&lt;/p>
&lt;p>As you can see from the article above, apt-offline helps you achieve the power
of APT, in just 3 steps. apt-offline is part of Debian and is &lt;a href="https://github.com/rickysarraf/apt-offline">developed at
Alioth&lt;/a> and
&lt;a href="https://github.com/rickysarraf/apt-offline">Github&lt;/a>.&lt;/p>
&lt;p>&lt;img src="https://camo.githubusercontent.com/867002ddf0a84bc99625d4221eb1f7f6779020e9/68747470733a2f2f6c68362e676f6f676c6575736572636f6e74656e742e636f6d2f5f5f6574717a2d79655034732f545a3778705772717965492f41414141414141414255552f66705a565f316f496e37342f733634302f6170742d6f66666c696e652d616476616e6365642d6f7074696f6e732e706e67" alt="">&lt;/p></description></item><item><title>apt-offline 1.1</title><link>https://researchut.com/blog/apt-offline-advanced-options-gui/</link><pubDate>Fri, 08 Apr 2011 07:36:50 -0400</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/blog/apt-offline-advanced-options-gui/</guid><description>&lt;p>I just completed the release of apt-offline version 1.1. This release has many
bug fixes, adds basic proxy support and has a new &lt;strong>Advanced Options&lt;/strong> window
for the &lt;strong>Get&lt;/strong> operation.&lt;/p>
&lt;p>![apt offline advanced options](&lt;a href="https://lh6.googleusercontent.com/__etqz-">https://lh6.googleusercontent.com/__etqz-&lt;/a>
yeP4s/TZ7xpWrqyeI/AAAAAAAABUU/fpZV_1oIn74/s640/apt-offline-advanced-
options.png)&lt;/p></description></item><item><title>apt-offline - 1.0</title><link>https://researchut.com/post/3/</link><pubDate>Mon, 08 Nov 2010 09:55:00 -0500</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/post/3/</guid><description>&lt;p>Hello World.&lt;/p>
&lt;p>I am very pleased to announce &lt;strong>apt-offline&lt;/strong> , version &lt;strong>1.0&lt;/strong>.&lt;/p>
&lt;p>This release adds a Graphical User Interace to apt-offline.&lt;/p>
&lt;p>&lt;img src="https://researchut.com/images/apt-offline-main.png" alt="">&lt;/p>
&lt;p>Big thanks to &lt;strong>&lt;a href="http://blog.ideamonk.in/">Abhishek Mishra&lt;/a>&lt;/strong> and &lt;a href="http://milky.manishsinha.net/">&lt;strong>Manish
Sinha&lt;/strong>&lt;/a> who did all the development work to
make this GUI happen.&lt;/p>
&lt;p>Help: I was wondering if there is a logo for APT that I could use in the big
blank space on the main window.&lt;/p>
&lt;p>Apart from the GUI, there are a bunch of bug fixes in this release (which have
already been made available for the Squeeze release also).&lt;/p>
&lt;p>&lt;img src="https://researchut.com/images/apt-offline-signature.png" alt="Generate Signature Window">&lt;/p>
&lt;p>&lt;img src="https://researchut.com/images/apt-offline-download.png" alt="Download Window">&lt;/p>
&lt;p>&lt;img src="https://researchut.com/images/apt-offline-install.png" alt="Install Window">&lt;/p>
&lt;p>I look forward to your feedback and comments on the GUI front.&lt;/p>
&lt;p>Note: The GUI in its current form is basic and does not provide all the
features that are available in apt-offline.&lt;/p></description></item><item><title>pypt-offline goodness</title><link>https://researchut.com/post/32/</link><pubDate>Mon, 29 Dec 2008 22:15:00 -0500</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/post/32/</guid><description>&lt;p>I created &lt;a href="http://pypt-offline.sf.net">&lt;strong>pypt-offline&lt;/strong>&lt;/a> with the hope that
it&amp;rsquo;d be useful for people who don&amp;rsquo;t have an internet connection but would
still like to enjoy &lt;a href="http://www.debian.org">&lt;strong>Debian&lt;/strong>&lt;/a>. Enjoying Debian is
about enjoying its Package Manager, APT. I don&amp;rsquo;t have any data to show if
pypt-offline is in use by anybody. I too, use it rarely, when at my hometown.
But I hope people who use it, find it useful.&lt;/p>
&lt;p>At my hometown, I use internet service from my friend&amp;rsquo;s ISP. I have a 10kb/s
connection at home. That&amp;rsquo;s slow.&lt;/p>
&lt;p>And I&amp;rsquo;ve been using &lt;a href="http://pkg-kde.alioth.debian.org">KDE 4.2 in Debian&lt;/a>. The
Debian KDE team decided to defer public availability of KDE 4.2 Beta packages
for a good reason. But I did want to use it and find more bugs, sooner. So I
ended up with the unofficial sources. There, it comes packaged almost every 2
days. That ends up being a &lt;strong>600-700 mb&lt;/strong> download quite often. (This includes
the debug packages).&lt;/p>
&lt;p>Being at home and downloading 700 megs of deb is painful. So I rushed to my
friend&amp;rsquo;s ISP. There I can get &lt;strong>500kb/s&lt;/strong> bandwidth. But apt didn&amp;rsquo;t want to
play good. The problem is that apt is not threaded. So from a single source,
only a single download can be initiated. That ended up me using on &lt;strong>120kb/s&lt;/strong>
bandwitdth to download. That was time consuming. I wanted it to be downloaded
faster so that I could spend more time at home.&lt;/p>
&lt;p>That&amp;rsquo;s when I thought of using pypt-offline. When I designed pypt-offline, one
of my requirements set, was threads. pypt-offline is threaded. This ended up
being very helpful for me. I was able to utilize the bandwidht upto &lt;strong>600
kb/s&lt;/strong> by using 5 threads. This has yielded in faster download for me, while
it must be choking the bandwidth for the server&lt;/p>
&lt;p>I wish if apt was threaded. But I think it isn&amp;rsquo;t threaded for good reasons.
Having a threaded apt will end up with excess load on Debian servers. But
then, if you really want fast downloads and do have the bandwidth, do give
pypt-offline a try. And yes, you can try it on &lt;strong>Windows/Linux/Mac.&lt;/strong>&lt;/p>
&lt;p>It makes me happy today to see a good use of pypt-offline.&lt;/p></description></item><item><title>pypt-offline</title><link>https://researchut.com/post/121/</link><pubDate>Mon, 04 Jul 2005 04:54:00 -0400</pubDate><author>rrs@researchut.com (Ritesh Raj Sarraf)</author><guid>https://researchut.com/post/121/</guid><description>&lt;p>My first contribution to &lt;a href="http://www.fsf.org">FSF&lt;/a>. &lt;a href="http://www.researchut.com/repository/pypt-offline.html" title="Offline
Package Manager">pypt-
offline&lt;/a> is an offline package manager for
&lt;a href="http://www.debian.org">Debian&lt;/a> and its derivatives.&lt;/p></description></item></channel></rss>