Krótszy sposób na apt-get install php7.0- {niektóre moduły}

8

Obecnie instaluję php7.0 i zastanawiałem się, czy istnieje krótszy sposób instalacji modułów. zwykle piszę:

    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

Czy istnieje wyrażenie regularne, więc nie musisz ciągle pisać php7.0? Coś jak:

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

Szukałem czegoś takiego przez wiele godzin, ale nie mogłem tego znaleźć. Z góry dziękuję za odpowiedź.

Joris Rietveld
źródło
1
Co apt-get install php7*? Wystarczająco krótko? Ale po prostu zainstaluje wszystkie możliwe pakiety php7.
Videonauth,
@Videonauth gorzej - zainstaluje wszystkie pakiety zawierające phpdowolne miejsce w nazwie pakietu.
muru

Odpowiedzi:

14

Jak sugeruje @Videonauth, możesz użyć, apt-get install php7.*ale to zainstaluje wszystkie pakiety, których nazwy zawierają php7. Aby zainstalować te, których nazwy zaczynają się od php7, użyj apt-get install '^php7. *. Aby zainstalować tylko te z listy, możesz użyć rozszerzenia nawiasów klamrowych. Format jest prawie taki, jak już próbowałeś: nawiasy klamrowe, ale lista oddzielona przecinkami:

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

W związku z tym:

$ 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

Więc możesz uruchomić:

sudo apt-get install php7.0-{fpm,mbstring,mcrypt,phpdbg,dev,curl,sqlite3,json,gd,cli}
terdon
źródło
On nie był pewien, czy te rozszerzenia nawiasów zadziałają, więc tylko skomentowałem.
Videonauth,
@Videonauth tak, robią, potrzebują tylko miejsca. Możesz także robić rzeczy takie jak echo {1..10}lub echo {01..10}. Przydatne rzeczy.
terdon
Nie, php7* nie instaluje pakietów zaczynających się od php7. apt-getużywa wyrażeń regularnych, a nie symboli wieloznacznych. O ile nie masz plików nazwanych php7-foow bieżącym katalogu, php7*powłoka zostanie przekazana do powłoki apt-get, która potraktuje ją jako wyrażenie regularne i dopasuje do całej nazwy pakietu. Tak więc każdy pakiet zawierający phpw nazwie zostanie wybrany do instalacji. Ludziom to przeszkadzało
muru
@muru eek! Dzięki, zapomniałem ..
terdon
@terdon nie tylko ., musisz zakotwiczyć wyrażenie^
muru