我想将这四个 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
Run Code Online (Sandbox Code Playgroud)
与其一次一个添加它们,我想我会一个接一个地列出它们——就像我们在安装应用程序时所做的那样。
sudo add-apt-repository ppa:noobslab/malys-themes ppa:alecive/antigone ppa:nitrux/nitrux-artwork ppa:upubuntu-com/themes
Run Code Online (Sandbox Code Playgroud)
但它返回了一个错误: Error: need a repository as argument
我四处搜索,看到这个问题如何一次安装多个 PPA 和应用程序?但它提出了一个 bash 脚本作为解决方案。
有没有办法在不使用脚本的情况下一次添加多个 ppa?
编辑
只是好奇,为什么不
sudo add-apt-repository ppa:noobslab/malys-themes ppa:alecive/antigone ppa:nitrux/nitrux-artwork ppa:upubuntu-com/themes
Run Code Online (Sandbox Code Playgroud)
工作但是
sudo apt-get install moka-icon-theme moka-icon-theme-blue moka-icon-theme-dark malys-deda awoken-icon-theme nitrux-icon-theme nouvegnomegray
Run Code Online (Sandbox Code Playgroud)
作品?
编辑 2
是否有任何解决方法
sudo add-apt-repository ppa:noobslab/malys-themes ppa:alecive/antigone ppa:nitrux/nitrux-artwork ppa:upubuntu-com/themes
Run Code Online (Sandbox Code Playgroud)
可以工作吗?
我完全理解这里的风险。
Rma*_*ano 11
它不起作用,因为谁编写了原始脚本(您可以查看它,它是一个 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
Run Code Online (Sandbox Code Playgroud)
(那是不是剧本?玫瑰是另一个名字的玫瑰吗?)
不要这样做,但是...... unix 以让用户用脚射击自己而闻名,所以......
如果您真的希望您的“多个 add-apt-repository”(1) 工作,请执行以下操作:
1) 找到 add-apt-repository 的位置。
(0)samsung-romano:~% which add-apt-repository
/usr/bin/apt-add-repository
Run Code Online (Sandbox Code Playgroud)
2)重命名
(0)samsung-romano:~% sudo mv /usr/bin/add-apt-repository /usr/bin/add-apt-repository.real
Run Code Online (Sandbox Code Playgroud)
3)用一个简单的脚本替换它:
(0)samsung-romano:~% sudo gedit /usr/bin/add-apt-repository
Run Code Online (Sandbox Code Playgroud)
内容:
#! /bin/bash
#
for i in "$@"; do
/usr/bin/add-apt-repository.real "$i"
done
Run Code Online (Sandbox Code Playgroud)
4)使其可执行:
(0)samsung-romano:~% chmod a+rx /usr/bin/add-apt-repository
Run Code Online (Sandbox Code Playgroud)
5) 现在你可以使用你的命令了:
(0)samsung-romano:~% sudo add-apt-repository ppa:noobslab/malys-themes ppa:alecive/antigone ppa:nitrux/nitrux-artwork ppa:upubuntu-com/themes
Run Code Online (Sandbox Code Playgroud)
为什么你不应该这样做?因为下次对包含原始 的包进行更新时apt-add-repository
,就会出现问题。就像你的脚本被覆盖或(最糟糕的)没有更新包。
实际上,避免接触系统程序并简单地将脚本~/bin
以另一个名称放入您的脚本中会好得多,例如my_aptadd
. 你现在是安全和快乐的。
或者,如果您真的很喜欢原始名称,则可以在您的主文件夹中创建一个目录,例如~/override
,将其添加到您的 PATH 中.profile
(例如export PATH=$HOME/override:$PATH
),然后将脚本保存在那里 --- 显然带有完整路径,其中的原始路径/usr/bin/add-apt-repository
为避免无限循环。当有人将一个名为“ls”的文件放入其中并包含内容exe rm $*
(2) 时,您会后悔的,但是嘿...
那我为什么写在这里呢?因为有时这确实是一种有用的技术,可以“修复”否则将无法运行的程序。例如,我有这个来向程序添加环境变量,否则这些程序会行为不端,并且被我不能或不会修改的其他程序调用。
(1) 我以前从未注意到,但在我的系统中甚至存在apt-add-repository
,它是add-apt-repository
. 我能理解为什么,但这是一个等待发生的混乱的呼吁......
(2) 错了。故意。