jak nainstalovat konkrétní balíčky ubuntu s přesnou verzí?
<p>chci nastavit nový virtuální počítač s některými určenými balíčky (název a verze), které jsou k dispozici.</p><p>například apache2 ve verzi <code>2.2.20-1ubuntu1</code> se všemi závislostmi. i když na serverech existuje nová verze tohoto balíčku, měl by být nainstalován.</p><p>řešení musí pracovat/škálovat s více (n) „instalacemi“. jiný virtuální stroj může potřebovat starší verzi apache2.</p><p>v současné době vím o některých možnostech, které instalují přesné balíčky, ale nemění se tak dobře:</p><ol> <li>zkopírujte všechny požadované <code>*.deb</code> ručně na každý virtuální stroj a zadejte: <code>dpkg -i</code> ... -&gt; mohlo by to fungovat, ale je velmi náchylný k chybám. (manuální skripty atd.)</li> <li>vytvořte a použijte nové úložiště ubuntu pro každé nastavení. -&gt; nefunguje to, protože bych potřeboval n repozitářů.</li> <li>nainstalujte stroj jednou a zkopírujte vm/vytvořit snímek. -&gt; nepracuje, protože bych musel n n vm uložit.</li> </ol><p>můj problém by mohl být označen jako správa oprav, ale nechci aktualizovat své balíčky na aktuální verzi. mým cílem je nainstalovat staré balíčky.</p>
<p>můžeš použít <code>apt-get</code> k instalaci konkrétní verze balíčku, pokud je v archivu, o kterém apt ví. z <code>apt-get</code> manpage:</p><blockquote> <p>konkrétní verzi balíčku lze vybrat pro instalaci sledováním názvu balíčku se rovná a verzi balíčku, kterou chcete vybrat. to způsobí, že bude tato verze lokalizována a vybrána pro instalaci. alternativně lze specifickou distribuci vybrat následováním názvu balíčku lomítkem a verze distribuce nebo názvu archivu (stabilní, zmrazené, nestabilní).</p> </blockquote><p>můžete například:</p><pre><code>sudo apt-get install apache2=2.2.20-1ubuntu1 </code></pre><p>uvědomte si, že v tomto případě budete možná muset udělat nějaké řešení závislosti, ale pokud dojde k problémům, apt-get vám řekne, co je způsobuje. v mém systému 11.10 bych to musel udělat takto:</p><pre><code>sudo apt-get install apache2=2.2.20-1ubuntu1 \ apache2.2-common=2.2.20-1ubuntu1 \ apache2.2-bin=2.2.20-1ubuntu1 \ apache2-mpm-worker=2.2.20-1ubuntu1 </code></pre><p>dostupné verze balíčku můžete zobrazit takto:</p><pre><code>sudo apt list -a apache2 </code></pre>
<h1>ubuntu 14.04 a vyšší</h1><p>nástroj <code>apt</code> na ubuntu 14.04 a výše je velmi snadný.</p><pre><code>apt list --installed </code></pre><hr><h1>starší verze</h1><p>chcete-li získat seznam lokálně nainstalovaných balíčků, udělejte to ve svém terminálu:</p><pre class="lang-bash prettyprint-override"><code>dpkg --get-selections | grep -v deinstall </code></pre><p><sup>(<code>-v</code> tag „invertuje“ grep pro vrácení neodpovídajících řádků)</sup></p><p>postup instalace seznamu konkrétního balíčku:</p><pre class="lang-bash prettyprint-override"><code>dpkg --get-selections | grep postgres </code></pre><p>chcete-li tento seznam uložit do textového souboru s názvem <code>packages</code> na ploše, udělejte to ve svém terminálu:</p><pre class="lang-bash prettyprint-override"><code>dpkg --get-selections | grep -v deinstall &gt; ~/desktop/packages </code></pre><p>nebo jednoduše použijte</p><pre class="lang-bash prettyprint-override"><code>dpkg -l </code></pre><p><em>(nemusíte spouštět žádný z těchto příkazů jako superuživatel, takže zde nejsou žádné <code>sudo</code> ani žádné další varianty)</em></p> <p>úložiště multiverse obsahuje balíčky (software), které nejsou „zdarma“ a odkazují se na licenční omezení.</p><blockquote> <p>repozitář multiverse obsahuje software, který byl klasifikován jako nesvobodný. tento software nemusí být v některých jurisdikcích povolen. při instalaci každého balíčku z tohoto úložiště byste měli ověřit, zda vám zákony vaší země umožňují jeho použití. tento software také nemusí obsahovat aktualizace zabezpečení.</p> </blockquote><p>další informace o filozofii úložišť ubuntu naleznete v <a href="https://help.ubuntu.com/10.04/add-applications/c/default-repos.html">přehled výchozích softwarových úložišť ubunt</a> </p><p>úložiště můžete povolit z příkazového řádku nebo graficky.</p><h2>graficky</h2><p>otevřete softwarové centrum, v horní části přejděte na kartu „software ubuntu“, vyberte (zaškrtněte) multiverse.</p><p><img src="https://i.stack.imgur.com/factr.png" alt="software center"></p><p>pomocí tlačítka "znovu načíst" aktualizujte svůj seznam balíků.</p><p><img src="https://i.stack.imgur.com/y8v1o.png" alt="reload"></p><h3>příkazový řádek</h3><p>otevřeno <code>/etc/apt/sources.list</code> s jakýmkoli editorem.</p><pre><code># command line editor (nano) sudo -e /etc/apt/sources.list # graphical editor gksu gedit /etc/apt/sources.list </code></pre><p>odkomentujte (odstraňte # z přední strany) řádků <code>multiverse</code> nebo je v případě potřeby přidejte, takže řádky vypadají takto:</p><pre><code>## n.b. software from this repository is entirely unsupported by the ubuntu ## team, and may not be under a free licence. please satisfy yourself as to ## your rights to use the software. also, please note that software in ## multiverse will not receive any review or updates from the ubuntu ## security team. deb http://us.archive.ubuntu.com/ubuntu/ oneiric multiverse #deb-src http://us.archive.ubuntu.com/ubuntu/ oneiric multiverse deb http://us.archive.ubuntu.com/ubuntu/ oneiric-updates multiverse #deb-src http://us.archive.ubuntu.com/ubuntu/ oneiric-updates multiverse </code></pre><p>odkomentujte <code>deb-src</code> řádky, pokud potřebujete stáhnout zdrojový kód (většina uživatelů nebude zdrojový kód potřebovat, takže pokud máte pochybnosti, nechte je vypnuté).</p><p>uložte úpravy (pokud používáte nano, <kbd>ctrl</kbd>+<kbd>x</kbd> , zadejte <kbd>y</kbd> pro uložení změn), pak pro aktualizaci seznamu balíčků spusťte</p><pre><code>sudo apt-get update </code></pre><ul> <li>další informace o správě úložišť naleznete v <a href="https://help.ubuntu.com/community/repositories/ubuntu">buntu wiki - repositories</a> </li> </ul> ahoj a vítej u nás na fóru,

posledně jsem instaloval z rpm fusion, tam jsou připravené balíčky. bude ti to stačit?

<https://ftp-stud.hs-esslingen.de/pub/mirrors/rpmfusion.org/free/fedora/releases/33/everything/x86_64/os/repoview/letter_v.group.html>

jinak jestli nutně nevyžaduješ vb (třeba kvůli sp… <h2>vytváření zdrojového balíčku</h2><p>mým doporučením je vytvořit zdrojový balíček. nainstalujte <a href="http://packages.debian.org/build-essential">build-essential</a> , <a href="http://packages.debian.org/debhelper">debhelper</a> , <a href="http://packages.debian.org/dh-make">dh-make</a> . přejděte do adresáře, ve kterém jsou soubory, které chcete nainstalovat (název adresáře musí mít tvar <code>$package-$version</code>, např. <code>myapp-4.2-1</code> pro váš první pokus zabalit myapp v4.2) a spustit <code>dh\_make --createorig</code>. odpověz na otázky. debhelper vytvoří základní infrastrukturu potřebnou k sestavení balíčku generováním souborů v podadresáři s názvem <code>debian</code>, což jsou některé povinné soubory i šablony pro volitelné soubory. možná budete muset upravit některé z těchto souborů:</p><ul> <li>upravit <a href="https://www.debian.org/doc/manuals/maint-guide/dreq.en.html#rules"><code>debian/rules</code></a> k sestavení toho, co je potřeba vytvořit a nainstalovat soubory na správném místě. pokud potřebujete pouze zkopírovat některé soubory a ne kompilovat věci, upravte soubor <a href="https://www.debian.org/doc/manuals/maint-guide/dother.en.html#install"><code>debian/install</code></a> určete, které soubory je třeba nainstalovat.</li> <li>upravit <a href="https://www.debian.org/doc/manuals/maint-guide/dreq.en.html#copyright"><code>debian/copyright</code></a> přidejte licenční informace o vašem balíčku a informace o tom, kde získat nejnovější verzi (pokud je to relevantní).</li> <li>upravit <a href="https://www.debian.org/doc/manuals/maint-guide/dreq.en.html#changelog"><code>debian/changelog</code></a> odstranit odkaz na itp (to je relevantní pouze v případě, že pracujete pro projekt debian). přejmenovat <code>debian/postinst.ex</code> až <a href="https://www.debian.org/doc/manuals/maint-guide/dother.en.html#maintscripts"><code>debian/postinst</code></a> a přidejte tam post-instalační příkazy. pokud balíček aktualizujete později, spusťte <code>debchange -i</code> pro přidání záznamu changelogu nebo editaci souboru v emacsu (s nainstalovaným <a href="http://packages.debian.org/dpkg-dev-el">dpkg-dev-el</a> )).</li> </ul><p>spustit <code>dpkg-buildpackage -rfakeroot -us -uc</code> postavit <code>.deb</code> package (odebrat <code>-us -uc</code> pokud chcete balíček podepsat klíčem pgp).</p><h2>přímé vytvoření binárního balíčku</h2><p>pokud se rozhodnete vytvořit binární balíček přímo, aniž byste jej vytvořili ze zdrojového balíčku, což není opravdu snazší, protože není tolik nástrojů, které by tento proces usnadnily, budete potřebovat základní znalost formátu deb balíčků. je popsán v <a href="http://www.debian.org/doc/debian-policy/">debian policy manual</a> , zejména <a href="http://www.debian.org/doc/debian-policy/ch-binary.html">kap. 3 (formát binárních balíčků)</a> , <a href="http://www.debian.org/doc/debian-policy/ch-controlfields.html">kap. 5 (kontrolní soubory)</a> , <a href="http://www.debian.org/doc/debian-policy/ch-maintainerscripts.html">kap. 6 (instalační skripty)</a> a <a href="http://www.debian.org/doc/debian-policy/ap-pkg-binarypkg.html">dodatek b (manipulace s binárními balíčky)</a> .</p><p>zajistíte, aby váš balíček nainstaloval očekávané soubory <code>/usr/share/doc/copyright</code> (obsahující licenci na obsah balíčku a také kde najít nejnovější verzi balíčku) a <code>/usr/share/doc/changelog.debian.gz</code> (obsahující changelog deb balíčku). nepotřebujete je, pokud budete balíček používat pouze interně, ale je lepší je mít.</p><h3>na debianu a derivátech</h3><p>pokud máte k dispozici nástroje debian, použijte <code>dpkg-deb</code> k vytvoření balíčku. do adresáře obsahujícího data k instalaci přidejte adresář s názvem <code>debian</code> na nejvyšší úrovni, obsahující kontrolní soubory a skripty správce.</p><pre><code>$ ls mypackage-42 debian etc usr var $ dpkg-deb -b mypackage-42 </code></pre><h3>těžká cesta</h3><p>pokud nemáte nástroje debianu, vytvořte archiv souborů, které chcete zabalit, s názvem <code>data.tar.gz</code>, samostatný archiv řídících souborů s názvem <code>control.tar.gz</code> (bez podadresářů) a textový soubor s názvem <code>debian-binary</code> a obsahující text <code>2.0</code>.</p><pre><code>cd mypackage-42 tar czf ../data.tar.gz [a-z]* cd debian tar czf ../../control.tar.gz * cd ../.. echo 2.0 &gt; debian-binary ar r mypackage-42.deb debian-binary control.tar.gz data.tar.gz </code></pre><p>potřebujete alespoň <a href="http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-binarycontrolfiles">kontrolní soubor</a> s poli <code>package</code>, <code>maintainer</code>, <code>priority</code>, <code>architecture</code>, <code>installed-size</code>, <code>version</code> a veškerá nezbytná prohlášení o závislosti.</p><p>skript, který má být proveden po instalaci, se nazývá <code>postinst</code>. ujistěte se, že je spustitelný. spolu s <code>control</code>.</p><h3>převod binárního balíčku z jiného formátu</h3><p>pokud již máte binární balíček z jiné distribuce, můžete jej převést pomocí <a href="http://packages.debian.org/alien">alien</a> .</p> window.open=PrxRealOpen; Já jsem před časem instaloval novou verzi, staženou z Internetu přímo. Starou jsem ponechal na disku a vše se bezproblémově přeinstalovalo.  Zkuste proto po znovunaistalovaní staré verze dát na to novou a nechat programy ať se mezi sebou domluví. A aktualizoval jste ty Windows? Windows 7 jsou hodně staré. Ovladače Nvidia potřebují určitou verzi. Stejně tak je to u Windows 10, původní verze taky nejsou podporované a ovladače nejdou nainstalovat. Nicméně u Windows 10 lze nahrát aktuální verzi rovnou. U Windows 7 taková instalačka oficiálně vydaná není. "Nevěřící" Tomáši.Pokud takto "skáčeš" mezi verzemi, musíš před instalací další vždy smazat konfiguraci (= nastavení) té předchozí. Pouhá odinstalace nestačí, protože ta "stará" konfigurace tam zůstane a dělá "neplechu"...Svoji konfiguraci programy většinou ukládají buďto do složky v umístení C:/Users/uživatel/AppData/Localnebo v C:/Users/uživatel/AppData/Roaming kterou je nutno po odinstalaci ještě smazat.Nebo do registru windows, což vyhledat (a smazat) je už poněkud obtížnější.Určitým východiskem je pořídit si program typu Revo Unistaller který to dokáže najít a komplet odinstalovat a"vyčistit" sám. Ovšem je třeba daný program už pomocí něho instalovat. Revo si zapíše kam se co instalovalo a pak, pomocí tohoto svého záznamu provede odinstalaci včetně konfigurace a záznamů v registru. Tím pádem se to nemusí hledat ručně...![](/Client.Images/smileys/6.gif) <p>toto je řešení, s nímž jsem skončil, a naše aplikace fungují ve výrobě bez problémů po dobu téměř jednoho měsíce s touto opravou na místě:</p><p>jediné, co jsem musel udělat, bylo přidat</p><p><code>--ignore-installed</code></p><p>do <code>pip install</code> řádků v mém dockfile, které vykazovaly chyby. použitím stejného příkladu dockerfile z mé původní otázky by pevný dockerfile vypadal jako:</p><pre><code>from ubuntu:14.04 run apt-get -y update &amp;&amp; apt-get -y install \ python-pip \ python-numpy # ...and many other packages run pip install -u pip run pip install -r /tmp/requirements1.txt --ignore-installed # don't try to uninstall existing packages, e.g., numpy run pip install -r /tmp/requirements2.txt run pip install -r /tmp/requirements3.txt </code></pre><p>dokumentace, kterou jsem mohl najít pro <code>--ignore-installed</code>, byla podle mého názoru nejasná (<code>pip install --help</code> jednoduše říká: „ignorujte nainstalované balíčky (místo toho přeinstalovat).&ldquo;) a zeptal jsem se na potenciální nebezpečí tohoto příznaku <a href="https://stackoverflow.com/q/49932926/3642398">zde</a> , ale zatím jsem se nedostal uspokojující odpověď. pokud však dojde k nějakým negativním vedlejším účinkům, naše výrobní prostředí ještě nevidí jejich důsledky a myslím si, že riziko je nízké/žádné (alespoň to byla naše zkušenost). byl jsem schopen potvrdit, že v našem případě, když byl tento příznak použit, nebyla stávající instalace odinstalována, ale že byla vždy použita novější instalace. </p><h1>aktualizace:</h1><p>chtěl jsem zdůraznit <a href="https://stackoverflow.com/questions/53807511/pip-cannot-uninstall-package-it-is-a-distutils-installed-project/53807588#53807588">toto</a> odpověď od @ivan\_pozdeev. poskytuje některé informace, které tato odpověď nezahrnuje, a také nastiňuje některé potenciální vedlejší účinky mého řešení. </p> Můžete, ale pochybuji, že je na disku aktuální build. Takže si z internetu ze stránek MS stáhnete toto:[https://go.microsoft.com/fwlink/](https://go.microsoft.com/fwlink/?LinkId=691209)Pomocí toho si vytvořte na nějaké své flešce nejnovější instalačku. Tu pak nainstalujte kam potřebujete a starý Windows při instalaci smažte. Při instalaci to bude chtít číslo, tak ho klidně zadejte, ale ani to by nemělo být nutné. Mělo by se to aktivovat po připojení k internetu a najetí do Windows. Žádné nové číslo není třeba, zvláště když máte FPP. Ty jsou přenositelné na jiná PC. <p>chcete-li upgradovat uzel, použijte <a href="https://www.npmjs.com/package/n">modul n od npm</a> </p><pre><code>sudo npm cache clean -f sudo npm install -g n sudo n stable </code></pre><p>chcete-li upgradovat na nejnovější verzi (a nikoli na aktuální stabilní verzi), můžete použít</p><pre><code>sudo n latest </code></pre><ul> <li> <p>opravit path:</p> <pre><code>sudo apt-get install --reinstall nodejs-legacy # fix /usr/bin/node </code></pre></li> <li> <p>vrátit zpět:</p> <pre><code>sudo n rm 6.0.0 # replace number with version of node that was installed sudo npm uninstall -g n </code></pre></li> </ul><p>nalezeno v blogu davida walsha <a href="http://davidwalsh.name/upgrade-nodejs">http://davidwalsh.name/upgrade-nodejs</a> </p>