Moin, es ist Sonntag und ihr habt alle gaaaaanz viel Zeit, stimmts? Aus aktuellem Anlass (ähnliche Diskussion im engl. Forum, aber auch die letzten Änderungen im deutschen Wiki) möchte ich darauf hinweisen, das der Befehl "pacman -Sy [Paketname]" potentiell schädlich ist. So etwas sollte man in keinem Fall im Wiki empfehlen. Wenn andere Seiten das auch so machen, dann müssen wir die anderen Seiten eben ändern.

Man sollte entweder -S [Paketname] oder -Syu [Paketname] verwenden. Nähere technische Erläuterung steht u.a. hier:
http://matt-linux-log.blogspot.com/2010/09/installing-packages-with-pacman-safe.html

(Das ist nicht mein Blog, der heisst nur zufällig so wie ich. Aber er hat recht.)

Und da ihr ja alle heute so viel Zeit habt: Ändert doch bitte im Wiki jeden Verweis auf -Sy, den ihr finden könnt.
Sehr gut zu wissen, dass man pacman -Sy nicht verwenden sollte...
Sollte man nun einfach alle -Sy mit -Syu ersetzten oder immer -Syu + -S vorschlagen?

Wer mithelfen möchte, kann google als Hilfe verwenden:
"pacman -Sy" site:wiki.archlinux.de liefert 121 Ergebnisse, es wartet also einiges an Arbeit 😉
jetzt weiss ich auch, warum der befehl schaedlich ist... ich dachte bisher, das packet wird einfach wie bei "pacman -S [packet]" installiert, nur dass die packetliste vorher noch mal erneuert wird... das ist aber nicht der fall... gut zu wissen 🙂
Robert schrieb Sollte man nun einfach alle -Sy mit -Syu ersetzten oder immer -Syu + -S vorschlagen?
Das ist Jacke wie Hose - mit der aktuellen Pacman-Version funktioniert auch "-Syu [Paketname]". Nur -Sy ist ein Zwischending, dass Abhänigigkeiten brechen kann.
Bevor wir jetzt alle wild (natürlich kommentarlos und unangemeldet!) am Rumeditieren sind, sollten wir und vielleicht darauf einigen, was wir verwenden wollen, damit es konsistent bleibt. Sonst haben wir nachher diverse Artikel, in denen -Syu verwendet wird, und andere, in denen -S verwendet wird.

Ich persönlich würde eher zu -S tendieren, da -Syu den meisten wohl im System-Update-Kontext bekannt ist.
Ach mist, jetzt hab ich alle Google äSuchergebnisse zu -S angepasst, damit ich eine sinnvolle Ausrede habe, keine Hausaufgaben machen zu müssen 😉
Ich würde auch pacman -S vorschlagen, weil ich ein als Anfänger ja nur ein Paket installieren möchte und vllt gerade keine Systemaktualisierung machen will..
-S
Edit: Okay, kann zu Problemen führen wenn das Paket in der Version die der lokale Pacman kennt nicht mehr auf den Mirrorn liegt, kann man dann aber dazu schreiben =)
Ich würde auch eher -S verwenden, aber das ist eben die konservativere Lösung. Glückwunsch an Robert, der gerade mit Feuereifer die Erde verbrennt. Genau so wollte ich das haben - ich sag einmal was, und alle anderen laufen los und machen das. Prima Job hier.
Hallo,

meiner Meinung nach sollte ein pacman -Sy <paketname> keine negativen Auswirkungen haben, falls der/die/das PKGBUILD korrekt formuliert ist.

Denn in dieser Datei müssen schließlich die Abhängigkeiten, samt der kleinstmöglichen Versionsnummer definiert werden.

Hier ein Auszug aus der m.E. vorbildlichen PKGBUILD von qlandkartegt: (Vollständige Version)
depends=('proj>=4.6' 'gdal>1.5.0' 'qt>=4.4' 'xerces-c' 'mesa')
installiere ich das Paket nun mit pacman -Sy qlandkartegt und qt ist aus irgendeinem Grund <=4.4, sollte pacman diese Abhängigkeit auflösen und qt in der benötigten Version installieren.

Viele Pakete "vergessen" diese Angabe aber, wodurch es zu den im o.g. Blog beschriebenen Problemen kommt.

Der Fehler liegt meiner Meinung nach also bei den Paketerstellern.

ein schönens Beispiel ist auch die PKGBUILD von nvidia (Vollständige Version)
depends=('kernel26>=2.6.35' 'kernel26<2.6.36' "nvidia-utils=${pkgver}")
Ich lasse mich gerne eines besseren belehren, falls ich mit meiner Annahme daneben liege



EDIT: verlinkt bitte mal jemand die oben erwähnte englische Diskussion!? Danke.
Steffen
Zur Kritik an den Paketen:
boenki, was du grundlegend übersiehst, ist die Tatsache, dass in den meisten Fällen Bibliotheksversionen über Jahre hinweg in weiten Teilen zueinander kompatibel sind, weswegen ein von der jeweiligen Version abhängiges Paketieren nach unten zwar teilweise sinnvoll ist, das begrenzen nach oben jedoch nur in wenigen Fällen Sinn macht - beispielsweise wie der von dir genannte für bestimmte Kernelversionen kompilierte Grafikkartentreiber. Die meisten Pakete funktionieren jedoch an und für sich meist für mehrere Jahre ohne weitere Anpassungen mit den jeweils aktuellen Versionen der Bibliotheken und müssen erst dann erneuert werden, wenn es auf Bibliotheksseite eine größere Aktualisierung gab, welche tiefer gehend in den Aufbau der API eingreift, also beispielsweise durch Funktionen welche umbenannt oder entfernt werden, neu hinzukommende Funktionen sind hierbei in den meisten Fällen irrelevant. (Neue Upstream-Versionen der Pakete selbst, lassen wir an dieser Stelle mal weg, sondern gehen von etwas mit toter Entwicklung aus.)

Dass oft nicht nach unten begrenzt wird, liegt schlicht daran, dass sich das Ganze gegen die momentanen Bibliotheksversionen Paketieren lässt und man davon ausgeht, dass die Nutzerschaft diese auch auf ihren aktuellen Systemen installiert. Wer sein System nicht halbwegs aktuell hält ist mit Arch schlicht falsch bedient, das passt nicht zum Rolling Release Konzept der Distribution.

Kommt nun ein größeres Bibliotheksupdate, bei dem einige Methoden umbenannt oder schlicht komplett entfernt wurden, wird dies beim aktualisieren des Paketes mit eben jener Begrenzung nach unten deutlich gemacht, da die nun verwendeten Patches andere Funktionen nutzen, welche in vorherigen Versionen der Bibliothek eben noch nicht vorhanden waren.

Zu pacman -Sy $PAKET:
Das Problem hierbei ist, dass Abhängigkeiten auch direkt aktualisiert werden, als bestes Beispiel dürften etliche Threads - hier und im internationalen Forum - vom diesjährigen OpenSSL Update auf Version 1.0.0 bieten. Es gab zahlreiche Nutzer, die nun einzelne Pakete mittels pacman -Sy installierten und dabei auch die neue OpenSSL Version aufspielten, was unweigerlich zum Versagen aller anderen, von OpenSSL abhängigen Programme auf den jeweiligen Systemen führte.

Nun kann selbstverständlich der Einwand kommen, dass die Versionen der Abhängigkeiten ja auch nach oben hin hätten begrenzt werden können, nun wenn jemand die Devs und uns TUs mit funktionierenden Glaskugeln beliefern kann, bei denen man über die Änderungen von Bibliothek-APIs mit genauer Versionsnummer versorgen kann, machen wir dies gerne, ansonsten ist dies jedoch etwas, das verdammt viel unnötigen Mehraufwand mit sich bringt, denn nicht jeder größerer Versionssprung ist mit wegfallenden Funktionen gleichzusetzen, also muss auch nicht jedes Paket erneut erstellt werden, da ist das erneute Paketieren der betroffenen Pakete deutlich angenehmer. Auf Nutzerseite bedeutet dies nur eines: Ankündigungen lesen, warten bis der benutzte Mirror vollständig synchronisiert ist und dann erst einmal eine komplette Systemaktualisierung durchzuführen, wer an dieser Stelle stattdessen nur ein einzelnes Paket samt Abhängigkeiten aktualisiert greift selbst in die Keramikschüssel.

Aktualisierung um 11:15: Etliche Tippfehler der vergangenen Nacht ausgebessert, Sätze stellenweise umgeformt zum leichteren Verständnis, was ich hiermit sagen möchte.
es gibt ja noch ein paar Seiten auf denen -Syu steht, soll das so bleiben, oder auch in -S geändert werden?
Ich habe mir mal die Suche des Wikis geschnappt und bei allen Artikeln die ich finden konnte das "pacman -Sy paketname" ersetzt. Daher sollten jetzt alle Artikel bearbeitet worden sein.
Ja, gute Aktion - von allen, die dabei mitgearbeitet haben! Ich denke, das ist jetzt durch (bis auf ein paar -Sy, die keinen Paketnamen dahinter haben, und somit durchaus stehen bleiben dürfen).

Gute Gemeinschaft hier. Over and out!