apt-get install php7.0- {some modules}的更短方法


8

我目前正在安装php7.0,想知道是否有较短的安装模块的方法。通常我输入:

    apt-get install php7.0 php7.0-fpm php7.0-mbstring php7.0-mcrypt 
     php7.0-phpdbg php7.0-dev php7.0-curl php7.0-sqlite3 php7.0-json 
     php7.0-gd php7.0-cli

是否有一个正则表达式,所以您不必一遍又一遍地输入php7.0?就像是:

   apt-get install php7.0-{fpm mbstring mcrypt phpdbg dev curl sqlite3 
    json gd cli}

我搜索了几个小时的类似内容,但找不到。预先感谢您的回复。


1
apt-get install php7*呢 够短吗?但是它将仅安装所有可能的php7软件包。
Videonauth

@Videonauth更糟-它会安装所有包含php在软件包名称中任何位置的软件包。
大师

Answers:


14

就像@Videonauth建议的那样,您可以使用,apt-get install php7.*但它将安装名称包含的所有软件包php7。要安装名称以开头的那些php7,请使用apt-get install '^php7. *。要仅安装列表中的那些,可以使用大括号扩展。格式几乎是您已经尝试过的格式:大括号但以逗号分隔的列表:

$ echo foo{a,b,c}
fooa foob fooc

因此:

$ echo php7.0-{fpm,mbstring,mcrypt,phpdbg,dev,curl,sqlite3,json,gd,cli}
php7.0-fpm php7.0-mbstring php7.0-mcrypt php7.0-phpdbg php7.0-dev php7.0-curl php7.0-sqlite3 php7.0-json php7.0-gd php7.0-cli

因此,您可以运行:

sudo apt-get install php7.0-{fpm,mbstring,mcrypt,phpdbg,dev,curl,sqlite3,json,gd,cli}

他(他)不确定这些括号扩展是否会起作用,所以我只发表了评论。
Videonauth

@Videonauth是的,他们确实需要空间。您也可以做类似echo {1..10}或的事情echo {01..10}。有用的东西。
terdon

否,php7* 安装以开头的软件包php7apt-get使用正则表达式,而不使用通配符。除非您php7-foo在当前目录中命名了文件,php7*否则shell会将它们传递给apt-get,这会将其视为正则表达式并与整个包名称匹配。因此将选择每个包含php其名称的软件包进行安装。人们一再被这个问题所困扰
muru

@muru eek!谢谢,我忘了.
terdon

@terdon不仅是.,您还需要将表达式锚定为^
大师
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.