正则表达式中未转义的左大括号已被弃用

正则表达式中未转义的左大括号已被弃用

我将这个存储库添加到我的sources.list 文件中:

deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi

在终端中执行命令后,我需要在我的树莓派上安装 php7.0:

_ apt-get install -t stretch mysql-server mysql-client php7.0-mysql -y

现在,当我尝试安装任何软件包时,我总是收到很多这样的消息:

Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^(.*?)(\\)?\${ <-- HERE ([^{}]+)}(.*)$/ at /usr/share/perl5/Debconf/Question.pm line 72.
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE ([^}]+)}/ at /usr/share/perl5/Debconf/Config.pm line 30.

当然,我正确安装了它们,但消息看起来很奇怪。

谁能告诉我这是什么意思以及如何解决?

答案1

据上游报道称该问题已于 2015 年修复:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=786705

但是我在安装了 debconf-1.5.56.all 的 debian 8.8 上仍然看到该错误,该机器是在 2016 年安装的。

为了解决这个问题,我跑了apt-get install debconf

您可以运行apt-get dist-upgrade更新系统中的所有软件包,但要注意它可能会更新到 8.8 -> 9.0

答案2

这是一个警告。维护该代码的人需要转义左大括号,例如将{正则表达式更改为\{。向人们报告这一点以维护该代码可能会有所帮助,因为这是一个微不足道的修复。

答案3

您只需打开警告中提到的文件

米/^(.?)(\)?\${ <-- 这里 ([^{}]+)}(.)$/ 在/usr/share/perl5/Debconf/Question.pm第 72 行。

转到提到的72号线并在警告指向的左大括号前面添加一个反斜杠<-- 这里

相关内容