![正则表达式中未转义的左大括号已被弃用](https://linux22.com/image/101622/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E4%B8%AD%E6%9C%AA%E8%BD%AC%E4%B9%89%E7%9A%84%E5%B7%A6%E5%A4%A7%E6%8B%AC%E5%8F%B7%E5%B7%B2%E8%A2%AB%E5%BC%83%E7%94%A8.png)
我将这个存储库添加到我的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号线并在警告指向的左大括号前面添加一个反斜杠<-- 这里