Padre抱怨SQLite数据库问题



我从perl开始,想在Ubuntu 14.04上安装IDE Padre。这个问题的答案表明我可以使用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

当我以根用户(sudo padre)运行它时:

DBD::SQLite::db do failed: Safety level may not be changed inside a transaction at (eval 1905) line 37.
Perl exited with active threads:
    1 running and unjoined
    0 finished and unjoined
    0 running and detached

padre --version显示:Perl Application Development and Refactoring Environment 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;
}

自:

sub db_increment {
    my $self = shift;
    unless ( $self->{db_depth}++ ) {
        #...
        Padre::DB->pragma( synchronous => 0 );
        Padre::DB->begin;
    }
    return;
}

即更改Padre::DB->pragmaPadre::DB->begin的顺序。

这允许我以 root (sudo ) 的身份启动padre,为了解决这个问题,我不得不更改 Padre 配置的所有者。我使用 chown 更改了用户的权限:

sudo chown -R myuser:myuser /.local/share/.padre/

相关内容

  • 没有找到相关文章

最新更新