Ubuntu/instalace/offline

Ubuntu/instalace/offline – řešení problému, jak instalovat balíky anebo spravovat aktualizace bez připojení (anebo s omezeným připojením) off-line prostřednictvím jiného počítače (a následného přenosu stažených souborů na USB disku)

Sushi, huh

editovat

Psáno v Pythonu, dosud nestabilní verze, háže chyby:

Při spuštění:

./sushi_huh.sh

stejně jako:

python2 -B ./sushi_huh.py

se zobrazí chyba:

Traceback (most recent call last):
  File "/home/petr/sushi-huh/src/il_cuore/lib/sushi_huh_PyHP.py", line 99, in __init__
    exec(python_script, globals(), locals())
  File "<string>", line 43, in <module>
  File "/home/petr/sushi-huh/src/il_cuore/lib/sushi_huh_Wizard.py", line 82, in __init__
    self.plugin = pluginator.get_plugin('repo', self.main_ini_file['plugin']['plugin_name'][0])
  File "/home/petr/sushi-huh/src/il_cuore/lib/sushi_huh_Pluginator.py", line 72, in get_plugin
    plugin = __import__(info['plugin']['main_file'][0][: info['plugin']['main_file'][0].rfind('.')]).Plugin()
  File "/home/petr/sushi-huh/src/il_cuore/plugins/repo/ubuntu/ubuntu.py", line 35, in <module>
    from il_cuore.lib.sushi_huh_UbuntuCodename import UbuntuCodename
  File "/home/petr/sushi-huh/src/il_cuore/lib/sushi_huh_UbuntuCodename.py", line 31, in <module>
    import urllib.request
ImportError: No module named request

Při pokusu doinstalovat

pip install request

dostanu hlášky:

Collecting request
  Using cached request-0.0.12.tar.gz
Collecting get (from request)
  Using cached get-0.0.20.tar.gz
Collecting post (from request)
  Using cached post-0.0.12.tar.gz
Collecting setupfiles (from request)
  Using cached setupfiles-0.0.15.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-Jlf1zP/setupfiles/setup.py", line 4, in <module>
        from setupfiles import setup
      File "setupfiles.py", line 18, in <module>
        import setupfiles # nopep8
      File "setupfiles.py", line 18, in <module>
        import setupfiles # nopep8
      File "setupfiles.py", line 18, in <module>
        import setupfiles # nopep8
...
      File "setupfiles.py", line 18, in <module>
        import setupfiles # nopep8
      File "setupfiles.py", line 18, in <module>
        import setupfiles # nopep8
      File "setupfiles.py", line 18, in <module>
        import setupfiles # nopep8
      File "setupfiles.py", line 18, in <module>
        import setupfiles # nopep8
      File "setupfiles.py", line 18, in <module>
        import setupfiles # nopep8
      File "setupfiles.py", line 11, in <module>
        dirname = os.path.abspath(os.path.dirname(__file__))
      File "/usr/lib/python2.7/posixpath.py", line 361, in abspath
        if isinstance(path, _unicode):
    RuntimeError: maximum recursion depth exceeded while calling a Python object
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-Jlf1zP/setupfiles/

Při pokusu o spuštění z třetí verze pythonu:

python3 -B ./sushi_huh.py

se zobrazí chyba:

Traceback (most recent call last):
  File "/home/petr/sushi-huh/src/il_cuore/lib/sushi_huh_PyHP.py", line 99, in __init__
    exec(python_script, globals(), locals())
  File "<string>", line 33, in <module>
ImportError: No module named 'sushi_huh_INIFile'

apt-get

editovat

URL potřebných balíků lze vyloudit pomocí:

apt-get --print-uris --yes install název_balíku | grep ^\' | cut -d\' -f2

balíky si stáhnout, uložit na USB-disk a pak to překopírovat do keše cílového počítače.

Ale nezjistil jsem, jak podobným způsobem dělat aktualizace.

APTonCD

editovat

Jestli tomu dobře rozumím, umí jen vypalovat CD nebo DVD zvolených balíků. Ale nevím, jestli také umí dělat aktualizace.

apt-offline

editovat

Osvědčilo se

Instalace:

sudo apt-get install apt-offline

Příkaz set generuje tzv. signature file, což je seznam balíků, které se mají updatovat a/nebo upgradeovat včetně jejich URL:

sudo apt-offline set signature_file

Během generování hlásí:

Generating database of files that are needed for an update.
Generating database of file that are needed for operation upgrade

Tento signature_file si přenesu do počítače, na kterém budu stahovat, a příkazem get si je stáhnu do zvoleného adresáře:

apt-offline get -d název_adresáře signature_file

Stažené balíky si přenesu do cílového počítače, kde je nainstaluji příkazem:

sudo apt-offline install název_adresáře

Kdo chce grafické rozhraní, může si nainstalovat:

sudo apt-get install apt-offline-gui

Avšak toto jednoduché okénko myslím žádné zjednodušení nenabízí, příkazová řádka je pohodlnější a nabízí více možností.

Po tom, co apt-offline nainstaluje stažené balíky do cache, spustíme jejich upgrade obvyklým příkazem:

sudo apt-get upgrade

Voila!