Smart: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
(Bei bestimmten Pakten Channel auf andere Prioritäten setzen)
(Kernel-Updates)
Zeile 66: Zeile 66:
  
 
===Pakete sperren===
 
===Pakete sperren===
Nach wie vor sollte man für ein Kernel- Update das Yast-Online-Update benutzen. Damit Smart nicht versehentlich den Kernel aktualisiert, sollte man den Kernel einfach locken. Dies funktioniert auf der Konsole mit
+
Möchte man verhindern, daß bestimmte Pakte upgedatet werden, geht das folgendermaßen:
  smart flag --set lock kernel-smp
+
  smart flag --set lock ''Paketname''
smart flag --set lock kernel-source
+
Im GUI sucht man einfach nach dem Paket, macht einen Rechtsklick auf die installierte Version (die mit grünem Kästchen), macht einen Rechtsklick darauf und wählt "Sperre diese Version".
Im GUI sucht man einfach nach Kernel, macht einen Rechtsklick auf die installierte Version (die mit grünem Kästchen), macht einen Rechtsklick darauf und wählt "Sperre diese Version". Das selbe sollte man entsprechend mit kernel-source machen. Dies ist bei den Kernel-Paketen aber nur nötig, wenn man hochgefährliche Channel wie "suser-jengelh" drin hat. Die sollte man aber eher außen vor lassen, weil sich diesen Paketen gut das System zerschießen kann. Falls man aber auf die betreffenden Channel (z.B. suser-jengelh), die gefährliche Kernel-Updates haben nicht verzichten, sehr wohl aber auf die Kernel-Updates, kann man für die Kernel-Pakete die Channel auf negative Prioritäten setzten. Die Kernel-Updates aus diesen Channeln werden dann nicht installiert. Wie es geht steht in diesem [[Installation von smart#Bei bestimmten Pakten Channeln auf andere Prioritäten setzen|Abschnitt]].
 
 
   
 
   
 
Um die Sperrung aufzuheben, wählt man im GUI einfach "Ensperre diese Version", auf der Konsole erledigen das die Befehle  
 
Um die Sperrung aufzuheben, wählt man im GUI einfach "Ensperre diese Version", auf der Konsole erledigen das die Befehle  
  smart flag --remove lock kernel-smp
+
  smart flag --remove lock ''Paketname''
smart flag --remove lock kernel-source
 
  
Möchte man ein anderes Paket sperren, funktioniert das analog. Allerdings muss man den Paketnamen und die Version kennen, um die Sperre auf der Konsole auszuführen. Der Befehl:  
+
Möchte man eine bestimmte Version eines Paketes sperren geht das folgendermaßen:
 
  smart flag --set lock "paket=version"
 
  smart flag --set lock "paket=version"
 
("paket=version" sind natürlich Platzhalter für Paketname und Versionsnummer und werden ohne Anführungszeichen eingegeben!)
 
("paket=version" sind natürlich Platzhalter für Paketname und Versionsnummer und werden ohne Anführungszeichen eingegeben!)
Zeile 86: Zeile 84:
  
 
====Bei bestimmten Pakten Channel auf andere Prioritäten setzen====
 
====Bei bestimmten Pakten Channel auf andere Prioritäten setzen====
Möchte man aus welchen Gründen auch immer (vielleicht um Kernel-Updates aus bestimmten Channel auszuschließen) bestimmten Paketen irgend welche Channel auf andere Prioritäten setzen, geht das folgendermaßen:
+
Möchte man für bestimmte Paketen irgend welche Channel auf andere Prioritäten setzen, um die Updates für diese Paktete aus diesen Channel auszuschließen, geht das folgendermaßen:
  smart priority --set pkgname mychannel 100
+
smart priority --set ''pkgname mychannel'' 100
 +
 
 +
''pkgname'' steht natürlich für den Namen des Paketes und ''mychannel'' für den des Channels.
 +
 
 +
===Kernel-Updates===
 +
Es extistieren Meinungen, daß man für ein Kernel-Update das Yast-Online-Update benutzen sollte. Aus eigener Erfahrung kann ich aber berichten, daß man sich dadurch andere Probleme ins Haus holt. Der Grund für diesen Standpunkt besteht darin, daß in Channeln wie ''suser-jengelh'' zweifelhafte Kernel-Updates zu finden sind, die einen gut das System zerschießen können. Falls man diesen Ratschlag folgen will, sollte man den Anweisungen aus [[Installation von smart#Pakete sperren|Punkt 2.3]] folgen und die Kernel-Pakete einzeln sperren. Im Normalfall sollten das ''kernel-default und ''kernel-source'' sein. Am besten gibt man
 +
rpm -qa kernel*
 +
auf der Konsole ein und sperrt alle ausgegeben Pakete einzeln (also pro Paket ein Befehl).
 +
 
 +
 
 +
Es gibt aber noch eine andere Variante, um Kernel-Updates aus gefährlichen Channeln auszusperren. Bei dieser Variante folge man [[Installation von smart#Bei bestimmten Pakten Channel auf andere Prioritäten setzen|Punkt 2.4.1]]. Auch hier müssen wir natürlich wissen, welche Kernel-Pakte installiert sind. Also auch hier ein
 +
rpm -qa kernel*
 +
Danach weisen wir dem Update-Channel (dort liegen Sicherheits-Updates von opensuse) und dem Base-Channel (Inahlt der Installationsmedien) für die installierten Kernel-Pakete die höchste Priorität zu. Wenn man '''opensuse 10.1 32Bit''' hat und diese [[Channels_OpenSUSE10.1.32|Channel-Liste]] verwendet geht das folgendermaßen:
 +
 
 +
smart priority --set kernel-default suse-101-apt-base 100
 +
  smart priority --set kernel-default suse-101-apt-update 100
 +
 
 +
Falls eine der Bedingungen nicht zutrifft muß man eventuell anpassen. Aber am besten ist es sicherlich, Channel wie ''suser-jengelh'' außen vor zu lassen, die in den Musterkonfigurationen hier im Wiki zwar drin, aber nicht aktiviert sind. Es schadet natürlich nicht die Anweisungen für Variante zwei trotzdem zu befolgen.
  
In der Praxis könnte das folgendermaßen aussehen:
 
smart priority --set kernel-default suser-jengelh -100
 
  
  
 
  HowTo aus dem Linux-Club von omasenkel
 
  HowTo aus dem Linux-Club von omasenkel
 
[[Category:APT und smart]]
 
[[Category:APT und smart]]

Version vom 24. September 2006, 11:06 Uhr

Was ist Smart?

Der Smart Package Manager ist eine Software, mit der man unter Linux die Softwarepakete verwaltet. Da es rpm, deb, yum, apt, urpmi slackware und noch weitere Quellen verwalten kann, sind die Entwickler bestrebt, Smart plattformunabhängig einsetzbar zu machen. Smart löst eigenständig Abhängigkeiten auf. Updates und Upgrades werden auf Knopfdruck eingespielt.

Smart installieren

Smart wird nicht standardmässig bei der Suse-Installation installiert. Aber über K-Menü -> Yast ->Software -> Software installieren oder löschen -> Suche -> smart werden die beiden Pakete „smart“ und „smart-gui“ gefunden. „smart“ muss, „smart-gui“ kann installiert werden. Hat man die beiden Pakete gefunden und ausgewählt, startete die Installation, sobald man auf „Übernehmen“ klickt. Beim Aufruf von Yast muss man natürlich das Passwort eingeben.

Smart einrichten

Wenn Smart frisch installiert ist, stehen noch keine Installationsquellen (sogenannte Channels) zur Verfügung. Diese müssen erst noch eingerichtet werden. Im Internet kursieren etliche Channel- Listen als .txt- Datei, die man herunterladen kann und an der Konsole mit root- Rechten (also su, Return, Root- Passwort (Achtung, es wird blind eingegeben!), Return) mit dem Befehl

smart channel --add /Speicherort/Datei

in Smart einlesen kann. Smart fragt jetzt bei jedem in der Textdatei gefundenen Channel, ob er eingebunden werden soll. Wenn man eine vernünftige Channel- Liste hat, kann man getrost mit „J“ und Return bestätigen.

Eine mögliche Channelliste findet man z. B. in diesem Thread: http://www.linux-club.de/viewtopic.php?t=60190

Das Update

Wenn man nun eine geeignete Channel- Liste eingelesen hat, sollte man mit

smart update

die Smart- Paketinformationen aktualisieren. Damit werden die neuen Channels eingelesen und die Informationen aktualisiert. Diesen Vorgang sollte man vor jeder Aktion, die man mit smart durchführen will, vollziehen, da nur dann smart auch auf aktuelle Informationen zurückgreifen kann.

Das Upgrade des Systems startet man ganz einfach mit

smart upgrade

So einfach hat man Smart eingerichtet und alle verfügbaren Aktualisierungen auf sein System gespielt. Wenn das Upgrade beendet ist, kann man in der Konsole mit dem Befehl

exit

smart beenden. Der Exit- Befehl ist deshalb wichtig, weil durch das bloße Schliessen der Konsole Smart weiter ausgeführt wird. Das kann zu Problemen führen, wenn man später Smart wieder auf der Konsole oder als GUI ausführen möchte.

Die GUI

Die Grafische Benutzeroberfläche ist gerade für Anfänger wesentlich komfortabler. Möchte man mittels GUI eine Channel- Liste einlesen, wählt man K-Menü ->System ->Konfiguration ->smart Auch hier muss wieder das root- Passwort eingegeben werden. Im Smart Hauptfenster wählt man dann

Bearbeiten ->Channel ->Neu ->Lese Channel Beschreibung vom Lokalem Pfad 

Hier wählt man dann die gespeicherte Textdatei.


Die dann aufpoppenden Fenster beinhalten nochmals die Channel- Informationen. Zum Bestätigen klickt man jeweils auf OK. Teilweise kann es passieren, dass sich dieses Fenster immer weiter vergrößert, so dass der „OK“- Button nicht mehr zu sehen ist. Die Tastenkombination „Alt“ und „O“ hat den selben Effekt.


Sind alle Channel eingelesen, klickt man im Channel-Fenster auf „Schliessen“ und landet wieder in der Hauptmaske von Smart. Das Channel-Update erreicht man, indem man auf den Kreispfeil klickt, das Update, indem man auf den nach oben zeigenden Pfeil klickt.


Möchte man ein neues Paket installieren, kann man einfach auf „Suche“ klicken, den Namen des zu installierenden Pakets eingeben und auf Return klicken. Wenn in einem der angegebenen Channel das Paket liegt, wird es gefunden. Angezeigt werden allerdings die Paketrubriken, nicht die Pakete selbst. Das heisst, man muss die einzelnen Rubriken durch einen Klick auf das kleine Dreieck vor der Rubrik öffnen und nachschauen.

Wenn man beispielsweise den Email- Client „Evolution“ installieren möchte, sollte man dementsprechend die Rubrik „Productivity/Networking/Emails/Clients“ wählen. Hat man das Paket dann gefunden, wählt man es zur Installation aus, indem man auf das Icon vor dem Namen klickt. Danach werden noch zusätzlich zu installierende Pakete angezeigt. Dieses Fenster kann man mit „OK“ schliessen. Um die Installation zu starten, klickt man auf das Zahnrad, und schon beginnt der Download der Pakete und deren Installation.

Allgemeine Hinweise

smart cache

Smart speichert die ausgeführten Aktionen in einem sogenannten Cache. Da dieser Cache einerseits für Smart wichtig ist, andererseits eine beachtliche Größe erreichen kann, gibt es einen Schalter, mit dem man einstellen kann, was mit dem Cache passiert. Wenn man auf der Konsole (mit root- Rechten, siehe oben!)

smart config --set remove-packages=false

eingibt (gefolgt von Return), dann wird der Cache nicht gelöscht. Möchte man allerdings den Cache doch löschen, dann gibt man in der Konsole

smart config --set remove-packages=true

ein.

Signaturprüfung

Wie schon unter apt gibt es auch unter Smart eine Signaturprüfung für die Paketinstallation. Diese aktiviert man mit

smart config --set rmp-check-signatures=true

auf der Konsole. Ersetzt man "true" durch "false", ist die Signaturprüfung abgeschaltet. Das Abschalten der Prüfung wird aber ausdrücklich nicht empfohlen.

Entsprechende Schlüssel kann sich smart auch direkt besorgen. Dazu trägt man mit

smart config --set keyserver="subkeys.pgp.net"

einen Schlüsselserver ein und smart holt sich dann automatisch die Schlüssel dort ab.

Pakete sperren

Möchte man verhindern, daß bestimmte Pakte upgedatet werden, geht das folgendermaßen:

smart flag --set lock Paketname

Im GUI sucht man einfach nach dem Paket, macht einen Rechtsklick auf die installierte Version (die mit grünem Kästchen), macht einen Rechtsklick darauf und wählt "Sperre diese Version".

Um die Sperrung aufzuheben, wählt man im GUI einfach "Ensperre diese Version", auf der Konsole erledigen das die Befehle

smart flag --remove lock Paketname

Möchte man eine bestimmte Version eines Paketes sperren geht das folgendermaßen:

smart flag --set lock "paket=version"

("paket=version" sind natürlich Platzhalter für Paketname und Versionsnummer und werden ohne Anführungszeichen eingegeben!)

Kanäle priorisieren

Wenn man Pakete aus einem bestimmten Kanal bevorzugt, wie es z. B. im Falle von Packman meist gewünscht ist, kann man diesen Kanälen einen Vorrang einräumen.

smart channel --set packman-i686-101-apt priority=2
smart channel --set packman-101-apt priority=1 

würde die i686-Pakete vor den nicht auf i686 optimierten Pakten installieren, die nicht optimierten Pakete würden aber noch vor den Suse-Paketen installiert. Die normale Priorität der Kanäle ist auf 0 eingestellt. Die Skala der Prioritäten reicht dabei von -100 bis 100. Diese Einstellungen können auch über die smart Oberfläche unter Bearbeiten - Channel - Eigenschaften des Channels vorgenommen werden.

Bei bestimmten Pakten Channel auf andere Prioritäten setzen

Möchte man für bestimmte Paketen irgend welche Channel auf andere Prioritäten setzen, um die Updates für diese Paktete aus diesen Channel auszuschließen, geht das folgendermaßen:

smart priority --set pkgname mychannel 100

pkgname steht natürlich für den Namen des Paketes und mychannel für den des Channels.

Kernel-Updates

Es extistieren Meinungen, daß man für ein Kernel-Update das Yast-Online-Update benutzen sollte. Aus eigener Erfahrung kann ich aber berichten, daß man sich dadurch andere Probleme ins Haus holt. Der Grund für diesen Standpunkt besteht darin, daß in Channeln wie suser-jengelh zweifelhafte Kernel-Updates zu finden sind, die einen gut das System zerschießen können. Falls man diesen Ratschlag folgen will, sollte man den Anweisungen aus Punkt 2.3 folgen und die Kernel-Pakete einzeln sperren. Im Normalfall sollten das kernel-default und kernel-source sein. Am besten gibt man

rpm -qa kernel*

auf der Konsole ein und sperrt alle ausgegeben Pakete einzeln (also pro Paket ein Befehl).


Es gibt aber noch eine andere Variante, um Kernel-Updates aus gefährlichen Channeln auszusperren. Bei dieser Variante folge man Punkt 2.4.1. Auch hier müssen wir natürlich wissen, welche Kernel-Pakte installiert sind. Also auch hier ein

rpm -qa kernel*

Danach weisen wir dem Update-Channel (dort liegen Sicherheits-Updates von opensuse) und dem Base-Channel (Inahlt der Installationsmedien) für die installierten Kernel-Pakete die höchste Priorität zu. Wenn man opensuse 10.1 32Bit hat und diese Channel-Liste verwendet geht das folgendermaßen:

smart priority --set kernel-default suse-101-apt-base 100
smart priority --set kernel-default suse-101-apt-update 100

Falls eine der Bedingungen nicht zutrifft muß man eventuell anpassen. Aber am besten ist es sicherlich, Channel wie suser-jengelh außen vor zu lassen, die in den Musterkonfigurationen hier im Wiki zwar drin, aber nicht aktiviert sind. Es schadet natürlich nicht die Anweisungen für Variante zwei trotzdem zu befolgen.


HowTo aus dem Linux-Club von omasenkel