Заставить apt-get
использовать IPv4:
apt-get install -o Acquire::ForceIPv4=true libssl-dev
Чтобы сделать его постоянным:
echo 'Acquire::ForceIPv4 "true";' > /etc/apt/apt.conf.d/42ipv4
NODE EXPLANATION
--------------------------------------------------------------------------------
[^"]* any character except: '"' (0 or more times
(matching the most amount possible))
--------------------------------------------------------------------------------
" '"'
--------------------------------------------------------------------------------
\( group and capture to \1:
--------------------------------------------------------------------------------
[^"]* any character except: '"' (0 or more
times (matching the most amount
possible))
--------------------------------------------------------------------------------
\) end of \1
--------------------------------------------------------------------------------
" '"'
--------------------------------------------------------------------------------
.* any character except \n (0 or more times
(matching the most amount possible))
Второй компонент команды sed
вызывает \1
для использования того, что было «захвачено» в скобках. Следует отметить, что вся команда sed
сама по себе не является регулярным выражением. В конструкции s/needle/pin/g
регулярное выражение имеет вид needle
или, если вам нравится, когда ваши регулярные выражения «завернуты» (e. г. для использования в awk
), /needle/
.
Поскольку [^"]*
означает «любое количество символов, не являющееся кавычками», и поскольку регулярное выражение sed
является жадным, [^"]*
гарантирует, что следующая кавычка будет первой кавычкой в строке. Второе подобное регулярное выражение гарантирует, что следующая цитата будет второй в строке. .*
соответствует тому, что следует за второй цитатой.
Таким образом, [^"]*"\([^"]*\)".*
означает «сопоставить всю строку и поместить вторую кавычку -в поле с разделителями в \1
».