平衡点


2017/12/11

_ apt-cacher-ng: Apt のキャッシュプロキシ

この記事は Debian/Ubuntu Advent Calendar 2017 の 2017/11 の記事です. 前日は @fumiyasu によるホームディレクトリをログインパスワードで暗号化でした.

「何か書きます」とか宣言しておきながら, 何をネタにするか結局決まらず... というわけで, 今までちゃんと書いてなかったネタとしてapt-cacher-ngについてまとめておきます.

apt-cacher-ng とは?

apt-cacher-ngは 「apt でパッケージを取得してインストール」する際に, 取得してくる Release ファイルや deb ファイルをキャッシュするための サーバプログラムです.

ユーザとして1台の計算機に Debian or Ubuntu を導入して作業している場合にはあまり恩恵に預かれないかもしれませんが,

  • 複数台の計算機を管理している
  • パッケージの作成作業を行なう

といった場合には, 頻繁に同じパッケージを取得する事になるため, この手のキャッシュプロキシは大変便利です.

私は試していませんが, 設定ファイルを見ると apt だけではなく Cygwin, Arch, Fedora なんかのキャッシュプロキシとしても動作できる様です.

導入と最低限の設定

apt を使いましょう

% sudo apt install apt-cacher-ng

これで

"http://localhost:3142"
において キャッシュプロキシが動作しています. /etc/apt/apt.conf.d/99proxy あたりに

Acquire::http::Proxy "http://127.0.0.1:3142";

とでも書いておくと良いでしょう. これによって

apt ⇔ apt-cacher-ng ⇔ 外部リポジトリ

といった塩梅で動作します. apt-getなんかを実行すると モリモリとキャッシュにデータが貯まっていきます.

外部からのアクセス

他の計算機においても /etc/apt/apt.conf.d/99proxy あたりに

Acquire::http::Proxy "http://<apt-cacher-ng を動かしている計算機のIP>:3142";

を指定することでLAN内のキャッシュプロキシとして動作させることができます. 「数10〜数100台の stable を管理する」なんて用途の時には パッケージのキャッシュは非常に有効です.

メンテナンス

簡易なメンテナンス用の Web サービスが

http://localhost:3142

で機能していますので, これにアクセスしてみましょう. 利用状況やキャッシュの開放といった作業が可能です.

Tips

Tips というわけでもないですけれど 最近ハマった幾つかの事柄等.

外部リポジトリを HTTPS で公開している所がありますよね. こいう所へのアクセスに cache proxy を介する際には CONNECT request にする必要がありますので, 以下を設定します

PassThroughPattern: ^(deb\.nodesource\.com|desktop-download\.mendeley\.com):443$

といった塩梅です. ところで mendeley のリポジトリはいつ復活させるんでしょうかね.

まとめ

apt-cacher-ng を紹介しました.

個人で一台の Debian/Ubuntu 環境を利用している場合には あまり恩恵には預かれませんが,

  • 複数台の計算機を管理している
  • パッケージの作成作業を行なう

といった場合には, キャッシュとして動作するので非常に有用です.

また, 手元でコンテナや VM を複数上げる際(LXC, vagrantとか)にも有用だと期待されます (とか言いつつ, あんまり vagrant は使ってないんですけれど. LXC には有効です. オススメ).

そんなこんなで.

明日は @yohgami の予定です.


2017/12/17

_ Debian 9.x (Stretch) での TeX 環境

この記事は「TeX & LaTeX Advent Calendar 2017 の 12/17 分の記事です.昨日「JupyTeX(LaTeX版Jupyter)を作ったでした.

パッケージとして提供されている TeXLive の状況

今年(2017)年6月17日にリリースされた Debian 9.0 (Stretch) のパッケージで提供されている TeXLive は TeXLive 2016 + 2017.01.23 までの更新, となります.

なんかも参考に

% pdflatex
This is pdfTeX, Version 3.14159265-2.6-1.40.17
(TeX Live 2016/Debian) (preloaded format=pdflatex)
restricted \write18 enabled.
**

とか

% platex
This is e-pTeX, Version 3.14159265-p3.7.1-161114-2.6 (utf8.euc)
(TeX Live 2016/Debian) (preloaded format=platex)
restricted \write18 enabled.
**

といった塩梅です.

環境構築

何も考えずに

% sudo apt-get install texlive-full

でも良いですが, 結構なサイズになります (とはいえ,今時数GB程度だと気にならないかと思いますけれど).

個別にインストールする場合は以下の通り.

  1. とりあえず pTeX,upTeX を使えるようにする:

    % sudo apt-get install texlive-lang-japanese

上記パッケージを install することで, ptex2pdf も使えるようになります.

  1. XeTeX, LuaTeX も使えるようにする:

    % sudo apt-get install texlive-xetex
    % sudo apt-get install texlive-luatex
  2. DVI と PDF の Viewer はお好みで:

    % sudo apt-get install evince xdvik-ja

Debian の default デスクトップ環境はGNOME3ですから, PDF の閲覧には Evince を使うのが良いでしょう. 日本語の表示が可能な xdvi, いわゆる pxdvi は xdvik-ja としてパッケージングしています (とはいえ,今なら直接 PDF を閲覧するのが良いと思いますが...).

あとは gs-cjk-integrate と kanji-config-updmap{,-sys} を適宜唱えましょう.

旧バージョンからのアップグレード

今のところ特にハマり所はありません(無い筈). 通常の手段でアップグレードできます.

はまり所.

Debian固有の嵌り所はない, と思います(多分).

「tlmgr 使いたいんですけれど...?」

これまで通り equivs で仮想パッケージを作成した後に, TeXLive 本体をインストールすることになります.

例えば以下の通りですね:

% sudo apt install equivs
% wget http://www.tug.org/texlive/files/debian-equivs-2017-ex.txt
% equivs-build debian-equivs-2017-ex.txt
% sudo dpkg -i texlive-local_2017-1_all.deb

まとめ

以上,駆け足でしたが,現在のStretchでのTeX環境についてまとめてみました.

そんなこんなで.

明日は munepi の予定です.


連絡先など
最近の日記
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|
Back to Top ▲