运行 PyCharm 拱门 linux

run PyCharm on arch linux

我在 arch linux 上使用 pycharm-professional,但从昨天开始它没有正确 运行,这是在 temrinal 运行 中使用它时的错误:

[kahrabian@Kian-Arch ~]$ pycharm 
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=350m; support was removed in 8.0
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=lcd
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f26f93b5be0, pid=1999, tid=139805401143040
#
# JRE version: Java(TM) SE Runtime Environment (8.0_60-b27) (build 1.8.0_60-b27)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.60-b23 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  0x00007f26f93b5be0
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/kahrabian/java_error_in_PYCHARM_1999.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#
/opt/pycharm-professional/bin/pycharm.sh: line 187:  1999 Aborted                 (core dumped) LD_LIBRARY_PATH="$IDE_BIN_HOME:$LD_LIBRARY_PATH" "$JDK/bin/java" $AGENT "-Xbootclasspath/a:$IDE_HOME/lib/boot.jar" -classpath "$CLASSPATH" $VM_OPTIONS "-Djb.vmOptionsFile=$VM_OPTIONS_FILES_USED" "-XX:ErrorFile=$HOME/java_error_in_PYCHARM_%p.log" -Djb.restart.code=88 -Didea.paths.selector=PyCharm40 $IDE_PROPERTIES_PROPERTY $IDE_JVM_ARGS $REQUIRED_JVM_ARGS $MAIN_CLASS_NAME "$@"

这里是尝试 运行 pycharm 后生成的日志文件: http://paste.ubuntu.com/12775734/ 由于我无法理解问题及其根源,我需要一些帮助来解决这个问题。

不幸的是,这是一个已知的与当前 glib 和 Oracle JVM 不兼容的问题。

看这里:https://youtrack.jetbrains.com/issue/IDEA-146207 在这里:https://bugzilla.gnome.org/show_bug.cgi?id=755609

您暂时可以使用一些解决方法(从此处找到:https://bugs.archlinux.org/task/46619

  1. 在命令前添加 PRELOAD=/lib/libglib-2.0.so(例如 PRELOAD=/lib/libglib-2.0.so pycharm
  2. 从 arch 论坛线程安装这个修补过的 glib(如果不先检查这个包的安全性,我会厌倦使用这个解决方案):http://pkgbuild.com/~heftig/glib2-2.46.0-2-x86_64.pkg.tar.xz
  3. 暂时降级 GLib-2(仅当您仍然缓存旧包时才有效)。执行此操作的命令类似于:pacman -U /var/cache/pacman/pkg/glib2-2.44.1-1-x86_64.pkg.tar.xz。你也可以使用其他工具降级包,比如从 AUR 降级,只是 运行 downgrade glib2

希望这个错误能尽快解决。

对于其他 运行 遇到此错误并且不想降级 glib 的人,需要将步骤 #1 解决方案中的命令更改为:

# x64
LD_PRELOAD=/lib64/libglib-2.0.so pycharm
# x86
LD_PRELOAD=/lib/libglib-2.0.so pycharm

此存储库中有一个预构建的包:

[archlinuxcn]
SigLevel = Optional TrustAll
Server   = http://repo.archlinuxcn.org/$arch

以@8bitAce 给出的答案为基础:

您实际上不需要安装较旧的 glib2 版本即可将其用于 运行 pycharm。只需将旧的 glib2 包解压缩到您的主目录中的某个位置:

mkdir -p $HOME/oldlibs/pycharm
tar Jxf /var/cache/pacman/pkg/glib2-2.44.1-1-x86_64.pkg.tar.xz -C $HOME/oldlibs/pycharm

然后开始pycharm:

LD_PRELOAD=$HOME/oldlibs/pycharm/usr/lib/libglib-2.0.so pycharm

这样您的程序的其余部分(可能取决于较新的 glib2 版本)就不会被迫使用旧的 glib2 版本,并且 运行 存在其他问题的风险。

我遇到了同样的问题。我使用的是 OpenJDK JRE 9,这似乎是问题的根源。我后来安装了 Oracle 的 JRE 8,一切正常。也许在 OpenJDK JRE 8 中它也能正常工作。