Pokud se sem někdo jakousi záhadou dostal, nechť ví, že zde hodlám skladovat návody pro vyřešení problémů během provozu linuxové distribuce Ubuntu. Neb se již blíží vydání nové verze Ubuntu ( Quantal Quetzal) je na čase znovu vytáhnout již jednou používaný apt-cacher-ng na mém Debian serveru. Potíž je v tom, že jsem si nikam nezapsal, kterak jsem na jaře provedl ultra rychlou instalaci pomocí alternate CD, staženého přes torrent a importovaného na server, který se chová jako zrcadlo oficiálního repozitáře, i když ne tak úplně. Tím, že si stáhnu CD přes torrent nejenže ušetřím servery Canonical, ale aktivně se zapojím do šíření Ubuntu dalším lidem, odměnou mi bude nebývale rychlé získání balíčků pro povýšení a to pro několik instalací distribuce naráz. Tolik k popudům této činnosti. Jenže jak já to před půl rokem dělal. Nejlepší bude si to někam napsat a systematicky skladovat. Tohle mile rád svěřím Googlu. Až se mi zase povede něco vyřešit, budu mít možnost se o to podělit s komunitou, ale také se k již vyřešeným problémům vrátit, až přijde znovu jejich doba. Během zítřka vyjde nové Ubuntu a příprava spočívala v následujícím.
Na serveru:
# apt-get install apt-cacher-ng
nebo
# aptitude install apt-chacher-ng
Na klientech:
Je třeba dát vědět o zrcadle vytvořením souboru
/etc/apt/apt.conf.d/01proxy
o obsahu:
Acquire::http { Proxy „http://xxx.xxx.xxx.xxx:3142“; };
jednoduše tvořeného IP adresou serveru, nebo jeho názvem, jak se to lépe hodí.
Pokud se však klient pohybuje v různých prostředích, jako já, je šikovné vytvořit spíše soubor
/etc/network/if-up.d/apt-proxy
o obsahu
#!/bin/sh set -e # Don't bother when lo is configured. if [ "$IFACE" = lo ]; then exit 0 fi # Only run from ifup. if [ "$MODE" != start ]; then exit 0 fi # currently only cares about IPv4 if [ "$ADDRFAM" != inet ] && [ "$ADDRFAM" != NetworkManager ]; then exit 0 fi # only run for DHCP-assigned addresses if [ "$DHCP4_IP_ADDRESS" = "" ]; then exit 0 fi # we're matching on network *broadcast* address, # not the specific IP address we were assigned #case "$DHCP4_BROADCAST_ADDRESS" in #10.3.141.255) # PROXY='Acquire::http::Proxy "http://xxx.xxx.xxx.xxx:3142";'; # ;; # add as needed #*) # unknown, no proxying # PROXY="" # ;; #esac if ping -c 1 xxx.xxx.xxx.xxx ; then PROXY='Acquire::http { Proxy "http://xxx.xxx.xxx.xxx:3142"; };'; else PROXY="" fi echo $PROXY # set the proxy FNAME="/etc/apt/apt.conf.d/01proxy" echo -n "$PROXY">$FNAME exit 0
Jak vidíte možností je požehnaně, původní složitou část jsem zakomentoval a spolehl se na obyčejný ping. Třeba nezapomenout na to aby měl soubor spustitelný příznak.
To že spojení se serverem máme, lze ověřit jednoduše:
$ cat /etc/apt/apt.conf.d/01proxy
Nemáme-li spojení bude výpis prázdný a stačí jednoduše „restartovat“ připojení k domácí síti což spustí onen skript. Tolik k nastavení a teď k použití.
$ update-manager -d
Přejít na vyšší verzi.
Potvrzovat a nechat stahovat informace až do chvíle, kdy instalátor nabídne počty stahovaných, odstraněných a ponechaných balíčků spolu s volbou zda povýšit, či akci zrušit. V tuto chvíli je na zrcadle vytvořeno podhoubí pro import nových balíčků, takže zvolíme zrušit a přejdeme k importu balíčků.
K importu balíčku už nedošlo, nebo jsem zpětně dohledal informaci, která tvrdí, že Canonical zrušil Alternate CD pro Ubuntu, protože se mu povedlo dostat všechny vlastnosti do grafikého instalátoru. Pro ostatní by mělo fungovat přimountování do:
/var/cache/apt-cacher-ng/_import
a spuštění importu z webového rozhraní. Bohužel to nemohu vyzkoušet.