Perl Padre抱怨SQLite数据库问题
我从perl开始,希望在Ubuntu 14.04上安装IDE。 指示我可以简单地使用Perl Padre抱怨SQLite数据库问题,perl,sqlite,ubuntu-14.04,padre,Perl,Sqlite,Ubuntu 14.04,Padre,我从perl开始,希望在Ubuntu 14.04上安装IDE。 指示我可以简单地使用apt-get: sudo apt-get install padre 我还尝试使用以下工具安装它: sudo cpan Padre 如图所示 但是,当我运行padre时,会出现以下错误: DBD::SQLite::db selectall_arrayref failed: attempt to write a readonly database at (eval 1905) line 41. Perl ex
apt-get
:
sudo apt-get install padre
我还尝试使用以下工具安装它:
sudo cpan Padre
如图所示
但是,当我运行padre
时,会出现以下错误:
DBD::SQLite::db selectall_arrayref failed: attempt to write a readonly database at (eval 1905) line 41.
Perl exited with active threads:
1 running and unjoined
0 finished and unjoined
0 running and detached
当我以root运行它时(sudopadre
):
padre--version
向我展示了:Perl应用程序开发和重构环境1.00
,我的Perl版本是5.18.2
在
/usr/bin/padre
脚本中,我没有看到任何对SQLite数据库的引用。有人知道我如何解决这个问题吗?我终于在中找到了解决方案。在文件Locker.pm
(位于/usr/share/perl5/Padre
的我的系统中)应更改以下功能(第102行):
sub db_increment {
my $self = shift;
unless ( $self->{db_depth}++ ) {
Padre::DB->begin;
# ...
Padre::DB->pragma( synchronous => 0 );
}
return;
}
致:
i、 e.更改Padre::DB->pragma
和Padre::DB->begin
的顺序
这允许我以root(sudo
)身份启动padre
),要解决这个问题,我必须更改padre配置的所有者。我使用chown
更改了用户的权限:
sudo chown -R myuser:myuser /.local/share/.padre/
sub db_increment {
my $self = shift;
unless ( $self->{db_depth}++ ) {
#...
Padre::DB->pragma( synchronous => 0 );
Padre::DB->begin;
}
return;
}
sudo chown -R myuser:myuser /.local/share/.padre/