Siduction Forum

Siduction Forum => Upgrade Warnings => Topic started by: michaaa62 on 2012/01/08, 20:06:34

Title: [Erledigt]Warnung: bash-completion 1.99-1 ist nicht funktion
Post by: michaaa62 on 2012/01/08, 20:06:34
Code: [Select]
/home/micha# apt-cache policy bash-completion
bash-completion:
  Installiert: 1:1.3-1
  Kandidat:    1:1.99-1
  Versionstabelle:
     1:1.99-1 0
        500 http://debian.tu-bs.de/debian/ sid/main amd64 Packages
     1:1.90-1 0
          1 http://debian.tu-bs.de/debian/ experimental/main amd64 Packages
 *** 1:1.3-1 0
        100 /var/lib/dpkg/status
Die Versionen 1.99-1 and 1.90-1 von bash-completion sind defekt.
Diese zwei Versionen entfernen alle Dateien im Ordner /etc/bash_completion.d ohne den Ordner mit neuem Inhalt zu befüllen!

Auf keinen Fall upgraden auf bash-completion 1.99-1!!!
Title: RE: Warnung: bash-completion 1.99-1 ist nicht funktionstüch
Post by: agaida on 2012/01/08, 22:18:45
Warum eigentlich nicht? Die Completion funktioniert, so weit ich das beurteilen kann, einwandfrei. Eine paar kleine Anmerkung dazu.
* rm /etc/bash_completion; ln -s /usr/share/bash-completion/bash_completion tat bei mir nicht
* ich hab die completions in /usr/share/bash-completion/completions in /etc/bash_completion.d eingetragen. File für File ;) Diese Arbeit hat mir dankenswerter Weise das folgende Script abgenommen:

Code: [Select]

for i in $(ls /usr/share/bash-completion/completions/*)
do
 ln -s $i
done


als script in /etc/bash_completions.d anlegen, ausführbahr machen und laufen lassen. Freuen.
Title: RE: Warnung: bash-completion 1.99-1 ist nicht funktionstüch
Post by: michaaa62 on 2012/01/08, 22:53:28
Na klar kannst du das so machen...
Paketmanagement mit apt-get funktioniert aber anders...
Title: RE: Warnung: bash-completion 1.99-1 ist nicht funktionstüch
Post by: agaida on 2012/01/08, 23:11:00
Und: Was soll mir das jetzt sagen? Wenn das eine perfekte Welt ohne Fehler wäre, dann würde die Distribution, auf die wir aufbauen, nicht unstable heissen und auch keine Fehler enthalten.
Das ist ein gemeldeter Bug und man kann die Completions so verlinken, genau dazu ist dieses Verzeichnis gedacht. Das steht sogar irgendwo in einer Note dazu. Ich zitiere mal devil zu dem Thema, der hat das entdeckt:
Quote

[08.01.2012 22:00] <devil> If you want to activate a completion, just symlink it into
[08.01.2012 22:00] <devil>   /etc/bash_completion.d/

Eine zweite Frage war, ob die Buben noch alle Sinne beisammen haben. Und das Script trägt halt ganz selektiv erst mal alles ein. Ich kann da erst mal nichts falsches drin sehen, vor allem nichts, was mit dem Paketmanagement zu tun haben könnte.

Dass mir dieser recht minimalistische Ansatz einer komplett leeren /etc/bash_completion.d erst mal nicht sonderlich gut gefällt, ist eine ganz andere Sache.
Title: RE: Warnung: bash-completion 1.99-1 ist nicht funktionstüch
Post by: michaaa62 on 2012/01/09, 07:46:49
Eine zweite Lösungsmöglichkeit, die der Paketbetreuer bei Debian angeregt hat ist die Veränderung der Einstellungen in der Datei .bashrc, so dass diese auf die neue /usr/share/bash-completion/bash_completion verweist.
Quote
Ok, I'll use a symlink. I totally forgot to drop /etc/bash_completion. Sorry
 for the noise.

 Bash maintainers: the new bash-completion location is
 at /usr/share/bash-completion/bash_completion . Please update the files of your
 package (bash.bashrc, but there may be others) to reflect the new location. TIA!

Damit schiebt er den schwarzen Peter dem Betreuer von bash zu. Mal sehen wie dieser reagieren wird.
Title: RE: Warnung: bash-completion 1.99-1 ist nicht funktionstüch
Post by: agaida on 2012/01/09, 08:02:28
Ist halt alles irgendwo eine politische Entscheidung. Im Endeffekt ist jede Lösung, die mehr oder weniger sauber zum Ziel führt, richtig. Ich bin jetzt mal ein wenig schwarz:
Code: [Select]

  GNU nano 2.2.6                              Datei: debian/NEWS                                                                    

bash-completion (1:1.3-2) experimental; urgency=low

  From this version, bash-completion uses triggers to decide which completions
  to load.

  This means that, when you install a package, a trigger will be activated,
  which will symlink the relevant completion to /var/lib/bash-completion/.

  To help this, completions have also been moved out of /etc/: they're now
  under /usr/share/bash-completion/; there you can find other related helpers
  and files.

  If you want to activate a completion, just symlink it into
  /etc/bash_completion.d/.

 -- David Paleino <dapal>  Wed, 06 Apr 2011 21:47:50 +0200


Im Endeffekt bedeutet das in meinen Augen nichts anderes, als dass die Trigger in den Paketen das eintragen sollten. Wenn der Bestand nicht übernommen wird, ist das erst mal schlecht. Mein kleines schmutziges Script hat jetzt erst mal die Links so gesetzt, wie da beschrieben.

Rein sachlich sehe ich da nichts falsches dran. Der andere Aspekt ist: Will ich für alles und jedes die Completion an haben oder nicht. Da gibt es dann halt 2 Ansätze: Anfangen von komplett leer oder anfangen von komplett voll und dann selektieren. Du kannst mich hauen, aber an der Stelle kenne ich keine befriedigende Antwort. Ich für mich persönlich bevorzuge den Ansatz "alles rein, eventuell selektiv löschen". Mal schauen, wie es entschieden und gefixt wird. Ich find das irgendwie spannend.
Title: RE: Warnung: bash-completion 1.99-1 ist nicht funktionstüch
Post by: michaaa62 on 2012/01/09, 08:12:43
Recht hast du!
Aber mal ehrlich, nach Teamwork sieht das bei Debian nicht aus: Betreuer A ändert etwas mit Auswirkungen auf andere Pakete und verabschiedet sich nach Upload in den Feierabend ohne Bescheid zu sagen. Am nächsten Vormittag im Gang darauf angesprochen, dass es Probleme gebe, wünscht er Betreuer B viel Glück dabei die Änderungen in sein Paket einzupflegen.

Außen vor bleiben die Nutzer, die erst Nachfragen müssen, was los ist. Denn bei sämtlichen installierten, und noch zu installierenden, Systemen muss eine Änderung, entweder für jeden Benutzer, root und die Profiles in /etc oder als Symlink, eingepflegt werden.
Title: RE: Warnung: bash-completion 1.99-1 ist nicht funktionstüch
Post by: agaida on 2012/01/09, 08:32:25
Und dieser Zustand ist die Realität, nicht etwa von Monthy Pythons erdacht.

In dem Moment liebe ich arch, da ist der Personenkreis wesentlich kleiner und die Entscheidugen sind konsistenter. Im Endeffekt brauchen wir uns da auch nicht den großen Schädel drum zu machen. Wenn uns was absolut gegen den Strich geht, dann kann man es auf unserer Ebene sehr einfach fixen, wenn wirklich Not am Mann ist.
Title: RE: Warnung: bash-completion 1.99-1 ist nicht funktionstüch
Post by: der_bud on 2012/01/10, 11:07:43
Mit heutigem D-U wird bash-completion 1.99-2 installiert, damit wird /etc/bash_completion auf -> /usr/share/bash-completion/bash_completion gelinkt.
Title: RE: Warnung: bash-completion 1.99-1 ist nicht funktionstüch
Post by: agaida on 2012/01/10, 12:52:31
Und jetzt wirds witzig. Die Verlinkung in /etc/ ist natürlich wichtig, weil damit die User-Scripte nicht geändert werden müssen, die da im Standard:

Code: [Select]

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

lauten.

Der 2. Punkt ist wesentlich witziger. Durch die Auslagerung der bash_completion.d nach /usr/share/bash-completion/bash_completions müssen imho auch die verlinkungen in /etc/bash_completions.d hergestellt werden. Ich hab das jetzt noch nicht gesondert geprüft, würde aber mal behaupten, dass das so ist. Dann würde es heissen: Willkommen in der wunderbaren Welt der Schwerkraft. :twisted:
Title: Re: RE: Warnung: bash-completion 1.99-1 ist nicht funktionst
Post by: der_bud on 2012/01/10, 13:59:17
Quote from: "agaida"
.... Durch die Auslagerung der bash_completion.d nach /usr/share/bash-completion/bash_completions müssen imho auch die verlinkungen in /etc/bash_completions.d hergestellt werden....
Wenn ich richtig verstehe was Du meinst, wird das miterledigt. Beim D-U wird ein ganzer Schwung Daten in /etc/bash_completions.d gelöscht (bei mir bleiben 13 Einträge stehen). Gleichzeitig wird im Unterordner /usr/share/bash-completion/completions/ ein neuer Satz angelegt, siehe
 (http://tempim.de/picture/thumb/24472/bddolcompl.png) (http://tempim.de/picture/24472/bddolcompl.png)
 Die Theorie sagt, dass damit alles funktionieren müsste (die Praxis zeigt derzeit noch anderes, ohne editieren der .bashrc keine komplette completion).
Title: RE: Re: RE: Warnung: bash-completion 1.99-1 ist nicht funkti
Post by: agaida on 2012/01/10, 14:18:34
Ja, schon, ich glaube aber bei aller Liebe nicht, dass das von den debianern so gewünscht ist. In den von mir eingestellten news ist der meines Erachtens richtige Weg aufgezeigt: Die einzelnen completions liegen irgendwo rum und können selektiv über /etc/bash_completion.d gesteuert werden.

Der jetzt wieder gesetzte Link ist imho unnütz und dient nur zur Reduzierung des Supportaufwands. Die Steuerung über /etc/bash_completion.d finde ich hingegen nicht als sinnlos. Das würde ich als Konfiguration an der einzig richtigen Stelle bezeichnen wollen. Vielleicht bin ich aber auch nur zu altmodisch und verbohrt. ;)
Title: RE: Re: RE: Warnung: bash-completion 1.99-1 ist nicht funkti
Post by: jackyohh on 2012/01/11, 20:46:59
Ist jetzt schon das letzte Wort von den Paketbetreuern gesprochen, oder darf man "wild" rumfrickeln? Die Frage ist ja nicht welche Vorgehensweise funktioniert - das tun ja beide (Verlinkung und Anpassung der .bashrc). Vielmehr fragt man sich, was denn jetzt die klügere Wahl ist bzgl. zukünftigen Administrieraufwand.

Wie sieht es eigentlich mit der automatischen Generierung der .bashrc aus?
Wird das noch angepasst (sodass wie früher alle (?) completions enthalten sind?) und wenn ja wie? Fragen über Fragen^^
Title: RE: Re: RE: Warnung: bash-completion 1.99-1 ist nicht funkti
Post by: michaa7 on 2012/01/11, 21:00:20
tja, ich mach das so:

- die bash_completion habe ich auf hold gesetzt, dank der warnung hier noch rechtzeitig.
- dann habe ich hier die frickellösungen gelesen und erstmal links liegen gelassen, funktioniert ja noch alles dank hold.
- jetzt warte ich mal ob ein neues bash paket im d-u auftaucht
- dann schaun mer ma ob ich das changlog lese oder anderen den vortritt lasse oder oder oder
- dann hebe ich ggf. den hold auf
Title: RE: Re: RE: Warnung: bash-completion 1.99-1 ist nicht funkti
Post by: reddark on 2012/01/11, 21:09:36
also ich hatte trotz updates keinen ärger. Als die warnung hier auftauchte, griff ich auf agaidas weg zurück und hatte dann ein paar komische meldungen in der konsole .. nach dem neuerlichen DU war alles wieder ok.
Title: RE: Re: RE: Warnung: bash-completion 1.99-1 ist nicht funkti
Post by: michaaa62 on 2012/01/11, 21:12:05
Wenn du schon bash-completion per DU aktualisiert hast, dann ist es an dir zu wissen, wie viele User du mit Veränderungen versorgen musst. Hast du wie ich ein Single-User-System, dann ist das schnell in ~/.bashrc und /root/.bashrc erledigt: Einfach das Ende der genannten Dateien wie folgt ändern
Quote
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /usr/share/bash-completion/bash_completion ] && ! shopt -oq posix; then
    . /usr/share/bash-completion/bash_completion
fi
Title: RE: Re: RE: Warnung: bash-completion 1.99-1 ist nicht funkti
Post by: devil on 2012/01/11, 21:15:11
Vermutlich werden noch die bash scripte upgedated. Zumindest sagte das der Maintainer von bash_completion beim letzten update.

Ansonsten hat towo die einfachste Vorgehensweise hier gepostet:
http://forum.siduction.org/index.php?topic=1746&start=15

greetz
devil
Title: RE: Re: RE: Warnung: bash-completion 1.99-1 ist nicht funkti
Post by: reddark on 2012/01/11, 21:16:10
kann dann der alte ordner gelöscht werden?