Установить несколько терминалов одновременно через терминал без использования скрипта

Я хочу добавить эти четыре ppa к моей машине.

sudo add-apt-repository ppa:noobslab/malys-themes
sudo add-apt-repository ppa:alecive/antigone
sudo add-apt-repository ppa:nitrux/nitrux-artwork
sudo add-apt-repository ppa:upubuntu-com/themes

Вместо того, чтобы добавлять их по одному, я подумал, что буду перечислять их один за другим, как мы делаем при установке приложений.

sudo add-apt-repository ppa:noobslab/malys-themes ppa:alecive/antigone ppa:nitrux/nitrux-artwork ppa:upubuntu-com/themes

Но он вернул ошибку: Error: need a repository as argument

Я искал и видел этот вопрос Как установить несколько PPA и приложений одновременно? , но он предлагает скрипт bash как решение.

Есть ли способ добавить несколько ppa одновременно без использования скрипта?


EDIT
Мне просто любопытно, почему нет

]
sudo add-apt-repository ppa:noobslab/malys-themes ppa:alecive/antigone ppa:nitrux/nitrux-artwork ppa:upubuntu-com/themes

работает, но

sudo apt-get install moka-icon-theme moka-icon-theme-blue moka-icon-theme-dark malys-deda awoken-icon-theme nitrux-icon-theme nouvegnomegray

работает?

РЕДАКТИРОВАТЬ 2
Есть ли обходной путь, где

sudo add-apt-repository ppa:noobslab/malys-themes ppa:alecive/antigone ppa:nitrux/nitrux-artwork ppa:upubuntu-com/themes

можно заставить работать?
И здесь я полностью понимаю риски.

7
задан 13 April 2017 в 15:24

3 ответа

Это не работает, потому что, кто записал исходный сценарий (можно посмотреть на него, это - сценарий Python), не думал, что это могло быть полезно.

Объяснение может быть то, что добавление репозитория является вещью, которая лучше медленно делается. Необходимо проверить подпись, например---и проверить Вас дважды, действительно хотят это.

Таким образом, это - в основном проектное решение. Вы могли, вероятно, легко изменить сценарий, если Вы хотите его, или повторение команды на командной строке...

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

(который является сценарием или нет? Повышение является повышением под другим именем?)

Не делайте этого, но... Unix известен разрешением пользователю, стреляющему себе в ногу, таким образом...

Если Вы действительно хотите свои "несколько add-apt-repository" (1) работа, сделайте это:

1) найдите, где add-apt-repository.

(0)samsung-romano:~% which add-apt-repository
/usr/bin/apt-add-repository

2) переименуйте его

(0)samsung-romano:~% sudo mv /usr/bin/add-apt-repository /usr/bin/add-apt-repository.real

3) замените его простым сценарием:

(0)samsung-romano:~% sudo gedit /usr/bin/add-apt-repository 

с содержанием:

#! /bin/bash
# 
for i in "$@"; do
   /usr/bin/add-apt-repository.real "$i"
done

4) сделайте это исполняемым файлом:

(0)samsung-romano:~% chmod a+rx /usr/bin/add-apt-repository

5) и теперь можно использовать команду:

(0)samsung-romano:~% sudo add-apt-repository ppa:noobslab/malys-themes ppa:alecive/antigone ppa:nitrux/nitrux-artwork ppa:upubuntu-com/themes

Почему Вы не должны делать этого? Поскольку в следующий раз будет обновление пакета, который содержит оригинал apt-add-repository, проблемы возникнут. Как перезаписывание Вашего сценария или (худший) не обновление пакета.

В действительности намного лучше постараться не коснуться системной программы и просто вставлять сценарий Ваш ~/bin с другим именем, как my_aptadd. Вы теперь в безопасности и счастливы.

Или если Вы действительно любите настоящее имя, можно создать каталог в домашней папке как ~/override, предварительно ожидайте его к своему ПУТИ в .profile (как export PATH=$HOME/override:$PATH), и сохраните сценарий там---, очевидно, с полным путем, исходным /usr/bin/add-apt-repository в нем для предотвращения бесконечного цикла. Вы будете затем сожалеть о нем, когда кто-то отбросит файл, названный "ls" в нем с содержанием exe rm $*(2), но эй...

Итак, почему я записал это здесь? Поскольку это - действительно полезная техника когда-то для "исправления" программ, которые иначе не будут работать. Например, у меня есть это для добавления переменных среды к программам, которые иначе будут неправильно себя вести, и которые называют другие программы, которые я не могу или не изменять.


Сноски:

(1) Я никогда не замечал, прежде чем, но в моей системе будет существовать даже apt-add-repository, который является символьной ссылкой на add-apt-repository. Я могу понять, почему, но это - призыв к неизбежной путанице...

(2) это неправильно. Нарочно.

8
ответ дан 13 April 2017 в 15:24

я был по этому прежде при разговоре о том, как скопировать установленный PPAs. Следующее берет файл, где все Ваши PPAs перечислены, и устанавливает их:

<~/ppa-backup.txt xargs -I % sudo add-apt-repository %

Это довольно тривиально для настройки этого для взятия списка:

xargs -I % sudo add-apt-repository % <<EOF
  ppa:noobslab/malys-themes
  ppa:alecive/antigone
  ppa:nitrux/nitrux-artwork
  ppa:upubuntu-com/themes
EOF

, Почему делает apt-get install ..., принимают несколько аргументов и add-apt-repository нет?

Просто, потому что они - различные команды, записанные в различных целях различными людьми. Почему не делают less, и rm берут те же аргументы? Они - разные вещи.

Добавление набора repos является действительно пограничным случаем. Это не похоже на желание установить больше чем один пакет за один раз. Это также усложняет синтаксис. add-apt-repository уже берет несколько различных форматов, некоторые, которые включают пробелы. Парсинг, который нормально является тяжелой работой для разбираний.

там какое-либо обходное решение, чтобы заставить Вашу строку работать?

Уверенный. Вы или пишете обертку для add-apt-repository и располагаете по приоритетам ее или редактируете оригинал... Это - нормальная вещь сделать? Нет, нисколько. Вы будете повреждать существующее add-apt-repository (см. выше) нестандартным способом, поскольку, что? Для сохранения нажатий клавиш на чем-то, Вы работаете однажды?

существует несколько методов с одной командой разделения этого, как несколько человек говорят Вам. Не боритесь с системой, используйте ее.

0
ответ дан 13 April 2017 в 15:24

Попытайтесь поместить что-то вроде этого:

 sudo add-apt-repository ppa:noobslab/malys-themes & sudo add-apt-repository ppa:alecive/antigone & ...

Так в этом формате:

command & next_command & next_command

Это могло бы работать.

0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: