Generieren einer App-Liste aus der alten Installation, um sie auf der neuen Installation auszuführen


8

Ich möchte auf meinem Netbook von Ubuntu-Desktop 10.10 zu Ubuntu Netbook Edition 10.10 wechseln. Derzeit friert Ubuntu ein, sobald ich aus meinem Ad-hoc-Netzwerk in Ubuntu ssh. Es erfordert immer eine kalte Abschaltung. Ich hoffe also, dass die Netbook Edition dieses Problem möglicherweise nicht hat. Ich habe viele Anwendungen auf der Desktop Edition benutzerdefiniert installiert. Daher möchte ich die App-Liste in einem Skript speichern und das Skript bei der neuen Installation ausführen, damit alle Apps heruntergeladen und installiert werden. Ich brauche Vorschläge, wie dies am besten erreicht werden kann.


Jeder, der vorschlägt vorzuschlagen: Denken Sie dpkg --get-selectionsdaran, dass vom System andere Pakete installiert sind. Sie müssen basierend darauf filtern, welche Anwendungen nach dem Basissystem installiert wurden.
Oli

1
Einfrierungen hängen höchstwahrscheinlich mit Kernel / Xorg / X-Treibern zusammen. Es ist sehr unwahrscheinlich, dass eine Änderung des Windows-Managers das Problem behebt.
João Pinto

Darüber hinaus ist die Einheit in 10.10 mehr "eiskalt" als alles andere
Extender

1
Schauen Sie sich auch apt auf CD an, wenn Sie nicht erneut herunterladen müssen.
Jeremy

Antworten:


9

Führen Sie dieses Monster auf Ihrer vorhandenen Installation aus, ersetzen Sie 12.04Ihre Ubuntu-Version und i386durch die Architektur (i386 oder amd64):

release_num='12.04'
arch='i386'

comm -23 \
    <(sort <(aptitude search '~i!~E' --disable-columns | grep -v "i A " | cut -d " " -f 3)) \
    <(sort <(wget -q -O- http://releases.ubuntu.com/maverick/ubuntu-${release_num}-desktop-${arch}.manifest | grep -E -o '^[^ ]+')) \
| sed 's/$/ install/g' > packages

Es wird eine Datei mit dem Namen generiert packages. Kopieren Sie dies an eine Stelle in Ihrer neuen Installation und führen Sie dann Folgendes aus:

sudo apt-get update
sudo bash -c "cat packages | xargs apt-get -y install"

Hinweis: Dadurch werden die auf der LiveCD verwendeten Pakete mit den aktuellen Paketen verglichen. Im Moment befinden sich auf der CD einige Pakete (gparted, btrfs-tools usw.), die nicht installiert sind. Wenn Sie gparted manuell installiert haben, müssen Sie es auch manuell auf dem neuen Computer neu installieren. Zum Glück gilt dies nur für einige Pakete, die alle einfach zu installieren sind, wenn Sie feststellen, dass Sie sie benötigen.

Wenn Sie PPAs oder andere Repositorys verwenden, stellen Sie sicher, dass Sie diese auf dem neuen Computer eingerichtet haben, bevor Sie dies ausführen.


Verwenden Sie stattdessen einfach den .manifest-Desktop. Z.B. gparted und btrfs-tools sind nicht Teil der Standardinstallation (sie befinden sich nur auf der CD). Wenn Sie diese Pakete manuell installiert haben, werden sie nicht in "Paketen" angezeigt.
Torque

Vielleicht möchten Sie die beiden Teile durch Sortieren leiten, da 'comm' sich darüber beschwert hat, dass beide Dateien nicht sortiert wurden. IIUC sollte dies das gleiche "Problem" mit Paketen aus der Standardinstallation haben, die manuell als "manuell installiert" markiert wurden (ich denke, das wäre die 3. Spalte von "comm"?).
Htorque

Wo .manifest-desktopwohnt? Ich bin im Begriff zu bearbeiten, um Sortierung hinzuzufügen. Sie sahen sortiert aus, also dachte ich nicht, dass ich es tun musste, aber anscheinend nicht. Guter Fang. Um fair zu sein, habe ich diesen Beitrag mit einer fiesen kleinen 15-mm * 100-mm-Tastatur aus dem Bett auf meinem Handy getippt. ;)
Oli

Das ist der Nachteil - es scheint nicht online verfügbar zu sein wie diese .manifest-Datei. : - / Auf der CD befindet es sich im Ordner 'casper'.
Htorque

Ich hatte eine Jagd und kann keine aktuelle Version finden. Ich denke, die Verwendung einer alten Version ist genauso schädlich und das Herunterladen der ISO, nur um sie zu extrahieren, ist Energieverschwendung. Ich denke, das muss nur eine Einschränkung dieses Prozesses sein. Möglicherweise müssen Sie einige Pakete, die Sie zuvor hatten, manuell installieren, dies erledigt jedoch die meisten davon.
Oli

7

Ich schlage vor, oneconf zu verwenden Installieren Sie oneconf

Es lässt sich recht gut in das Software Center integrieren und macht das, was Sie wollen.


Ist oneconf für normale Benutzer bereit?
Decio Lira

Normale Benutzer können es wahrscheinlich verwenden, werden es aber noch nicht lieben. es braucht viel Liebe, bevor das der Fall ist. Trotzdem ist es nützlich.
Chipaca

6

Ich denke, andere haben den technischen Teil Ihrer Frage beantwortet. Ich möchte die implizite Frage beantworten: "Wird der Wechsel zu Unity dieses SSH-Problem beheben?", Und die Antwort lautet: Ich fürchte, ich bezweifle es. Remote-Shell-Sitzungen üben im Allgemeinen weder Unity noch den Desktop aus. Wenn Sie über ein kabelgebundenes Netzwerk, jedoch nicht über ein Ad-hoc-Netzwerk, problemlos auf Ihren Desktop zugreifen können, hängt das Einfrieren wahrscheinlich mit Ihren kabellosen Treibern und nicht mit der Desktop-Shell zusammen.


Ich stimme dem zu - da die Netbook Edition und die Desktop Edition fast alle dieselben Treiber / Pakete verwenden, ist es unwahrscheinlich, dass eine Neuinstallation irgendetwas löst. Besser, stattdessen Netzwerkprobleme zu diagnostizieren.
ImaginaryRobots

Mark, ja, es sieht so aus, als wäre es ein Treiberproblem. In seltenen Fällen ist dies jedoch auch im kabelgebundenen Netzwerk geschehen. Ich sollte versuchen, beide Karten auszuschalten und es zu versuchen.
Nixnotwin

1

Im Ordner 'casper' auf der CD befindet sich eine Datei mit dem Namen 'filesystem.manifest-desktop' (oder extrahieren Sie sie aus der ISO-Datei). Es enthält alle Pakete, die installiert werden, abzüglich der Pakete, die während der Installation heruntergeladen wurden (Updates, Langpacks?).

So etwas sollte Ihnen also die Liste der hinzugefügten und entfernten Pakete geben:

dpkg --get-selections | awk '{print $1}' > now.txt
awk '{print $1}' filesystem.manifest-desktop > then.txt
diff -u then.txt now.txt | grep '^+' | sed 's/^+//' | grep -v '^+' > add.txt
diff -u then.txt now.txt | grep '^-' | sed 's/^-//' | grep -v '^-' > rem.txt

Sie können dann installieren über:

cat added.log | xargs sudo apt-get install

(Sie müssen sicherstellen, dass alle diese Pakete verfügbar sind, sonst schlägt dieser Befehl fehl.)


1
Werden dadurch automatisch installierte Pakete manuell auf dem neuen System installiert?
Oli

Es sieht so aus, als ob meine 'add.txt' die gleichen Pakete enthält wie Ihre 'Pakete', also denke ich nein. Dies führt jedoch nicht dazu, dass Pakete aus der Installation auf "manuell installiert" gesetzt werden, wenn Sie dies auf dem aktuellen System getan haben.
Torque

2
Ich habe Ihre Neuinstallationsmethode gestohlen, aber Sie sollten beachten, dass xargs Dinge in mehrere Befehle aufteilen kann, wenn es viele Argumente gibt. Angesichts der Zeit, die zwischen dem Herunterladen des ersten und des zweiten Stapels liegen könnte, würde sudo wahrscheinlich ablaufen. Deshalb habe ich meine in eine eingewickelt sudo bash -c "...".
Oli

Heh, eigentlich dachte ich, Ihr Installationsmodus wäre besser, weil dselect explizit Pakete anzeigt, die nicht installiert werden können (unbekannte PPAs, .debs von Drittanbietern), sodass Sie die Markierung aufheben können. Mit apt ist es alles oder nichts.
Torque
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.