Difference between revisions of "Powerpill"

From ArchWiki
Jump to: navigation, search
(Introduction)
m (totally 200 megs > totaling 200 megs)
 
(12 intermediate revisions by 9 users not shown)
Line 1: Line 1:
 
[[Category:Package management]]
 
[[Category:Package management]]
 
[[it:Powerpill]]
 
[[it:Powerpill]]
 
+
[[ja:Powerpill]]
==Introduction==
+
[[ru:Powerpill]]
Powerpill is a Pacman wrapper that uses parallel and segmented downloading to try to speed up downloads for Pacman. Internally it uses Aria2 and Reflector to achieve this. Powerpill can also use Rsync for official mirrors that support it. This can be efficient for users who already use full bandwidth when downloading from a single mirror. {{AUR|Pacserve}} is also supported via the configuration file and will be used before downloading from external mirrors. Example: One wants to update and issues a ''pacman -Syu'' which returns a list of 20 packages that are available for update totally 200 megs. If the user downloads them via pacman, they will come down one-at-a-time. If the user downloads them via powerpill, they will come down simultaneously in many cases several times faster (depending on one's connection speed, the availability of packages on servers, and speed from server/load, etc.)
+
Powerpill is a Pacman wrapper that uses parallel and segmented downloading to try to speed up downloads for Pacman. Internally it uses Aria2 and Reflector to achieve this. Powerpill can also use Rsync for official mirrors that support it. This can be efficient for users who already use full bandwidth when downloading from a single mirror. [[Pacserve]] is also supported via the configuration file and will be used before downloading from external mirrors. Example: One wants to update and issues a ''pacman -Syu'' which returns a list of 20 packages that are available for update totaling 200 megs. If the user downloads them via pacman, they will come down one-at-a-time. If the user downloads them via powerpill, they will come down simultaneously in many cases several times faster (depending on one's connection speed, the availability of packages on servers, and speed from server/load, etc.)
  
 
A test of pacman vs. powerpill on one system revealed a 4x speed up in the above scenario where the pacman downloads averages 300 kB/sec and the powerpill downloads averaged 1.2 MB/sec.
 
A test of pacman vs. powerpill on one system revealed a 4x speed up in the above scenario where the pacman downloads averages 300 kB/sec and the powerpill downloads averaged 1.2 MB/sec.
  
==Installation==
+
== Installation ==
You can get it from [[AUR]] {{AUR|powerpill}} or directly from [http://xyne.archlinux.ca/repos/ Xyne's repos].
+
 
 +
[[Install]] the {{AUR|powerpill}} package.
 +
 
 +
== Configuration ==
 +
 
 +
Powerpill has a single configure file {{ic|/etc/powerpill/powerpill.json}} you can edit to your liking. Refer to the ''powerpill.json'' man page for details.
  
==Configuration==
 
Powerpill has a single configure file {{ic|/etc/powerpill/powerpill.json}} you can edit to your liking. Refer to the powerpill.json man page for details.
 
 
== Using Reflector ==
 
== Using Reflector ==
 +
 
By default, Powerpill is configured to use [[Reflector]] to retrieve the current list of mirrors from the Arch Linux server's web API and use them for parallel downloads. This is to make sure that there are enough servers in the list for significant speed improvements.
 
By default, Powerpill is configured to use [[Reflector]] to retrieve the current list of mirrors from the Arch Linux server's web API and use them for parallel downloads. This is to make sure that there are enough servers in the list for significant speed improvements.
  
 +
== Using rsync ==
  
== Using Rsync ==
+
Rsync support is available for some mirrors. When enabled, database synchronizations ({{ic|pacman -Sy}}) and other operations may be much faster because a single connection is used. The ''rsync'' protocol itself also speeds up update checks and sometimes file transfers.
Rsync support is available for some mirrors. When enabled, database synchronizations (pacman -Sy) and other operations may be much faster because a single connection is used. The rsync protocol itself also speeds up update checks and sometimes file transfers.
+
  
To find a suitable mirror with rsync support, use reflector:
+
To find a suitable mirror with ''rsync'' support, use ''reflector'':
  
  reflector -p rsync
+
$ reflector -p rsync
  
Alternatively, you can use this to filter the fastest "n" number of servers (-f) as well as the "m" number of most recently updated servers (-l):
+
Alternatively, you can use this to filter the fastest ''n'' number of servers (option {{ic|-f}}) as well as the ''m'' number of most recently updated servers (option {{ic|-l}}):
  
  reflector -p rsync -f 6 -l 6
+
$ reflector -p rsync -f ''n'' -l ''m''
  
Select the mirror(s) you want to use. The "-c" option may also be used to filter by your nationality (reflector --list-countries to see a complete list, use quotes around the name, and this is case-sensitive!). Once done, edit /etc/powerpill/powerpill.json, scroll down to the rsync section, and add as many servers as you would like to the server field.
+
Select the mirror(s) you want to use. The {{ic|-c}} option may also be used to filter by your nationality ({{ic|reflector --list-countries}} to see a complete list, use quotes around the name, and this is case-sensitive!). Once done, edit {{ic|/etc/powerpill/powerpill.json}}, scroll down to the ''rsync'' section, and add as many servers as you would like to the server field.
  
After that, all official database and packages will be downloaded form the rsync server whenever possible.
+
After that, all official database and packages will be downloaded from the ''rsync'' server whenever possible.
  
==Basic Usage==
+
== Basic usage ==
For most operations, powerpill works just like pacman since it is a wrapper script for pacman.
+
  
===System Updating===
+
For most operations, ''powerpill'' works just like pacman since it is a wrapper script for ''pacman''.
To update your system (sync and update installed packages) using powerpill, simply pass the -Syu options to it as you would with pacman:
+
 
 +
=== System updating ===
 +
 
 +
To update your system (sync and update installed packages) using powerpill, simply pass the {{ic|-Syu}} options to it as you would with ''pacman'':
  
 
  # powerpill -Syu
 
  # powerpill -Syu
  
===Installation of packages===
+
=== Installation of packages ===
To install a package and its deps, simply use powerpill with the -S option as you would with pacman:
+
 
 +
To install a package and its deps, simply use powerpill with the {{ic|-S}} option as you would with ''pacman'':
 +
 
 +
# powerpill -S ''package''
 +
 
 +
You may also install multiple packages with it the same way you would with ''pacman'':
 +
 
 +
# powerpill -S ''package1'' ''package2'' ''package3''
 +
 
 +
== Troubleshooting ==
 +
 
 +
In case you get an [err] for <repo>.db.sig files:
 +
 
 +
    b5d7d7|ERR |      0B/s|/var/lib/pacman/sync/extra.db.sig
 +
    899e91|ERR |      0B/s|/var/lib/pacman/sync/multilib.db.sig
 +
    8fcc32|ERR |      0B/s|/var/lib/pacman/sync/core.db.sig
 +
    85eb3d|ERR |      0B/s|/var/lib/pacman/sync/community.db.sig
 +
 
 +
It is because signature files are missing for that repo and you have not set:
 +
 
 +
    SigLevel = PackageRequired
  
# powerpill -S package
+
explicity in {{ic|/etc/pacman.conf}} as explained in this post [https://bbs.archlinux.org/viewtopic.php?pid=1254940#p1254940 Arch forum post]
  
You may also install multiple packages with it the same way you would with pacman:
+
== See also ==
  
# powerpill -S package1 package2 package3
+
* [http://xyne.archlinux.ca/projects/powerpill/ Powerpill] - official project page
==External resources==
+
* [https://bbs.archlinux.org/viewtopic.php?id=153818 powerpill reborn] - powerpill is back :)
*[http://xyne.archlinux.ca/projects/powerpill/ Powerpill] - the official project page
+
*[https://bbs.archlinux.org/viewtopic.php?id=153818 powerpill reborn] - powerpill is back :)
+

Latest revision as of 02:05, 30 October 2016

Powerpill is a Pacman wrapper that uses parallel and segmented downloading to try to speed up downloads for Pacman. Internally it uses Aria2 and Reflector to achieve this. Powerpill can also use Rsync for official mirrors that support it. This can be efficient for users who already use full bandwidth when downloading from a single mirror. Pacserve is also supported via the configuration file and will be used before downloading from external mirrors. Example: One wants to update and issues a pacman -Syu which returns a list of 20 packages that are available for update totaling 200 megs. If the user downloads them via pacman, they will come down one-at-a-time. If the user downloads them via powerpill, they will come down simultaneously in many cases several times faster (depending on one's connection speed, the availability of packages on servers, and speed from server/load, etc.)

A test of pacman vs. powerpill on one system revealed a 4x speed up in the above scenario where the pacman downloads averages 300 kB/sec and the powerpill downloads averaged 1.2 MB/sec.

Installation

Install the powerpillAUR package.

Configuration

Powerpill has a single configure file /etc/powerpill/powerpill.json you can edit to your liking. Refer to the powerpill.json man page for details.

Using Reflector

By default, Powerpill is configured to use Reflector to retrieve the current list of mirrors from the Arch Linux server's web API and use them for parallel downloads. This is to make sure that there are enough servers in the list for significant speed improvements.

Using rsync

Rsync support is available for some mirrors. When enabled, database synchronizations (pacman -Sy) and other operations may be much faster because a single connection is used. The rsync protocol itself also speeds up update checks and sometimes file transfers.

To find a suitable mirror with rsync support, use reflector:

$ reflector -p rsync

Alternatively, you can use this to filter the fastest n number of servers (option -f) as well as the m number of most recently updated servers (option -l):

$ reflector -p rsync -f n -l m

Select the mirror(s) you want to use. The -c option may also be used to filter by your nationality (reflector --list-countries to see a complete list, use quotes around the name, and this is case-sensitive!). Once done, edit /etc/powerpill/powerpill.json, scroll down to the rsync section, and add as many servers as you would like to the server field.

After that, all official database and packages will be downloaded from the rsync server whenever possible.

Basic usage

For most operations, powerpill works just like pacman since it is a wrapper script for pacman.

System updating

To update your system (sync and update installed packages) using powerpill, simply pass the -Syu options to it as you would with pacman:

# powerpill -Syu

Installation of packages

To install a package and its deps, simply use powerpill with the -S option as you would with pacman:

# powerpill -S package

You may also install multiple packages with it the same way you would with pacman:

# powerpill -S package1 package2 package3

Troubleshooting

In case you get an [err] for <repo>.db.sig files:

   b5d7d7|ERR |       0B/s|/var/lib/pacman/sync/extra.db.sig
   899e91|ERR |       0B/s|/var/lib/pacman/sync/multilib.db.sig
   8fcc32|ERR |       0B/s|/var/lib/pacman/sync/core.db.sig
   85eb3d|ERR |       0B/s|/var/lib/pacman/sync/community.db.sig

It is because signature files are missing for that repo and you have not set:

   SigLevel = PackageRequired

explicity in /etc/pacman.conf as explained in this post Arch forum post

See also