Es funktioniert nicht, weil derjenige, der das ursprüngliche Skript geschrieben hat (Sie können es sich ansehen, es ist ein Python-Skript), nicht dachte, dass dies nützlich sein könnte.
Das Grundprinzip könnte sein, dass das Hinzufügen eines Repositorys besser langsam durchgeführt werden kann . Sie sollten zum Beispiel die Signatur überprüfen --- und überprüfen, ob Sie sie wirklich wollen.
Es ist also im Grunde eine Designentscheidung. Sie können das Skript wahrscheinlich leicht ändern, wenn Sie es möchten, oder den Befehl in der Befehlszeile wiederholen ...
for i in ppa:noobslab/malys-themes ppa:alecive/antigone ppa:nitrux/nitrux-artwork ppa:upubuntu-com/themes; do sudo add-apt-repository $i; done
(Ist das ein Drehbuch oder nicht? Eine Rose ist eine Rose unter einem anderen Namen?)
Tun Sie das nicht , aber ... Unix ist berühmt dafür, dass Benutzer sich in den Fuß schießen lassen, also ...
Wenn Sie wirklich möchten, dass Ihr "Multiple Add-Apt-Repository" (1) funktioniert, gehen Sie folgendermaßen vor:
1) Finden Sie heraus, wo sich das Add-Apt-Repository befindet.
(0)samsung-romano:~% which add-apt-repository
/usr/bin/apt-add-repository
2) benenne es um
(0)samsung-romano:~% sudo mv /usr/bin/add-apt-repository /usr/bin/add-apt-repository.real
3) Ersetzen Sie es durch ein einfaches Skript:
(0)samsung-romano:~% sudo gedit /usr/bin/add-apt-repository
mit dem Inhalt:
#! /bin/bash
#
for i in "$@"; do
/usr/bin/add-apt-repository.real "$i"
done
4) mach es ausführbar:
(0)samsung-romano:~% chmod a+rx /usr/bin/add-apt-repository
5) und jetzt können Sie Ihren Befehl verwenden:
(0)samsung-romano:~% sudo add-apt-repository ppa:noobslab/malys-themes ppa:alecive/antigone ppa:nitrux/nitrux-artwork ppa:upubuntu-com/themes
Warum solltest du es nicht tun? Da beim nächsten Update des Pakets, das das Original enthält apt-add-repository
, Probleme auftreten, treten Probleme auf. Als ob Sie Ihr Skript überschreiben lassen oder (am schlimmsten) das Paket nicht aktualisieren lassen.
In der Tat ist es viel besser, das Systemprogramm nicht zu berühren und das Skript einfach ~/bin
mit einem anderen Namen in Ihr zu setzen, wie z my_aptadd
. Du bist jetzt sicher und glücklich.
Oder wenn Sie den ursprünglichen Namen wirklich mögen ~/override
, können Sie ein Verzeichnis in Ihrem Home-Ordner wie erstellen , es Ihrem PATH in .profile
(wie export PATH=$HOME/override:$PATH
) voranstellen und das Skript dort speichern - offensichtlich mit dem vollständigen Pfad, original /usr/bin/add-apt-repository
in Vermeiden Sie eine Endlosschleife. Sie werden es dann bereuen, wenn jemand eine Datei mit dem Namen "ls" mit Inhalt exe rm $*
(2) darin ablegt, aber hey ...
Warum habe ich es hier geschrieben? Weil dies manchmal wirklich eine nützliche Technik ist, um Programme zu "reparieren", die sonst nicht ausgeführt werden. Zum Beispiel muss ich Umgebungsvariablen zu Programmen hinzufügen, die sich sonst schlecht verhalten und von anderen Programmen aufgerufen werden, die ich nicht ändern kann oder will.
Fußnoten :
(1) Ich habe es noch nie bemerkt, aber in meinem System existiert sogar apt-add-repository
, was ein Symlink zu ist add-apt-repository
. Ich kann verstehen warum, aber es ist ein Aufruf für ein Chaos, das darauf wartet, passiert zu werden ...
(2) es ist falsch. Absichtlich.
add-apt-repository
Befehl können Sie jeweils nur eine PPA hinzufügen.