この記事は公開されてから8年経過しています。現在とは内容が異なる場合がありますのでご注意ください。
最新の記事や関連記事をお探しの方は下の「サイト内検索」で検索してみてください。
最新の記事や関連記事をお探しの方は下の「サイト内検索」で検索してみてください。
portinstall や portupgrade でのパッケージをダウンロードするときは1コネクションの接続となるため、ダウンロードに時間がかかることがあります。
そこで、分割ダウンロードに対応している axel を使ってスピーディーにダウンロードできるようにしてみたいと思います。
参考ページ: Portsでのダウンロードを速くする|FreeBSD|@OMAKASE
FreeBSD マルチコネクションによるportsの同時ダウンロード
まずは ports から axel をインストールします
1 |
# portintall ftp/axel |
そして、/etc/make.conf でダウンロードするときのコマンドを指定します。
1 2 3 |
FETCH_CMD=axel FETCH_BEFORE_ARGS= -n 3 -a DISABLE_SIZE=yes |
FETCH_BEFORE_ARGS の中身ですが、axel の引数を設定します。
-n 3 というのは「3分割してダウンロードする」という意味ですので、この数字を変更すると分割数を変更できます。
-a というのはプログレスバーの表示方法の指定です。
これを指定しないと下記のようにダウンロードが進むごとにプログレスバーの行数が増えていきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
[ 0%] .......... .......... .......... .......... .......... [ 45.6KB/s] [ 1%] .......... .......... .......... .......... .......... [ 68.8KB/s] [ 2%] .......... .......... .......... .......... .......... [ 90.6KB/s] [ 4%] .......... .......... .......... .......... .......... [ 106.4KB/s] [ 5%] .......... .......... .......... .......... .......... [ 129.0KB/s] [ 6%] .......... .......... .......... .......... .......... [ 139.3KB/s] [ 8%] .......... .......... .......... .......... .......... [ 160.4KB/s] [ 9%] .......... .......... .......... .......... .......... [ 179.4KB/s] [ 11%] .......... .......... .......... .......... .......... [ 193.4KB/s] [ 12%] .......... .......... .......... .......... .......... [ 205.6KB/s] [ 13%] .......... .......... .......... .......... .......... [ 220.4KB/s] [ 15%] .......... .......... .......... .......... .......... [ 237.4KB/s] . . . [ 97%] .......... .......... .......... .......... .......... [ 728.5KB/s] [ 98%] ..... Connection 0 finished ,,,,,..... .......... .......... ...... Downloaded 3586.4 kilobytes in 5 seconds. (700.99 KB/s) |
指定しておくと
1 |
[ 37%] [......0 .....1 ......2 ] [ 407.0KB/s] [00:05] |
というようにシンプルになります。
ほかにも axel の引数はありますので、 axel -h とすると確認できます。
1 2 3 4 5 6 7 8 9 10 11 12 |
-s x Specify maximum speed (bytes per second) -n x Specify maximum number of connections -o f Specify local output file -S [x] Search for mirrors and download from x servers -H x Add header string -U x Set user agent -N Just don't use any proxy server -q Leave stdout alone -v More status information -a Alternate progress indicator -h This information -V Version information |