[問題] docker 中使用 kdevelop

看板Linux作者 (sppmg)時間8年前 (2017/11/06 23:28), 8年前編輯推噓5(5012)
留言17則, 5人參與, 8年前最新討論串1/1
我想用最新版,但不相容於我的舊系統的 kdevelop ,所以試著放在 docker 中使用。 但不知為何總是無法啟動。 docker 中使用的是 debian buster,為了硬體加速,nv 驅動也裝了。 glxgears 、 konsole 都可以開,就 kdevelop 不行。 請問要如何使用呢? ------------------ docker 啟動指令是: docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --device /dev/snd --net=host --shm-size 2g fdc 執行後的錯誤訊息如下: $ kdevelop QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-sppmg' kdevplatform.serialization: version-hint not found, seems to be an old version kdevplatform.serialization: "The data-repository at /home/sppmg/.cache/kdevduchain/kdevelop-{999c931b-ece1-4542-82dc-9c2fdaf9d6d3} has to be cleared." QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-sppmg' QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-sppmg' kdeinit5: Got EXEC_NEW '/usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kio/man.so' from launcher. kdeinit5: preparing to launch '/usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kio/man.so' Failed enumerating UDisks2 objects: "org.freedesktop.DBus.Error.Disconnected" "Not connected to D-Bus server" Failed enumerating UDisks2 objects: "org.freedesktop.DBus.Error.Disconnected" "Not connected to D-Bus server" ...... (重複好幾次) Segmentation fault -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.173.247 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1509982108.A.DFD.html

11/06 23:53, 8年前 , 1F
沒 DBus?
11/06 23:53, 1F

11/07 00:11, 8年前 , 2F
嘗試把 $XDG_RUNTIME_DIR 指向的地方掛進去?
11/07 00:11, 2F
試過了,但 $XDG_RUNTIME_DIR 是空的,結果一樣。

11/07 00:27, 8年前 , 3F
應該是container也要能連到host的dbus
11/07 00:27, 3F
--net=host 就是為了dbus 加的,參考網址如下:(抱歉,我就不特別縮了) http://ask.projectatomic.io/en/question/3647/how-to-connect-to-session-dbus-from-a-docker-container/?answer=3648#post-id-3648 後來發現 docker 內的 dbus 沒啟動,在 /etc/init.d/dbus start 好像可以連上 dbus ,但仍會 Segmentation fault (所以此時 dbus 是 host 的還是 container 的?) ※ 編輯: sppmg (36.231.173.247), 11/07/2017 14:23:13

11/07 18:32, 8年前 , 4F
我剛閒著幫你測了一下 跟dbus沒關聯 我用跟你一樣的指令啟
11/07 18:32, 4F

11/07 18:32, 8年前 , 5F
動 出現一樣的錯誤訊息 但是kdevelop 還是正常開啟
11/07 18:32, 5F

11/07 18:36, 8年前 , 6F
你用gdb run看看 segmentation fault之後印一下backtrace
11/07 18:36, 6F

11/08 00:22, 8年前 , 7F
太感謝了,我明天試試
11/08 00:22, 7F

11/08 00:25, 8年前 , 8F
對了,今天想到會不會和host太舊有關? 我os是Debian 7 ,k
11/08 00:25, 8F

11/08 00:25, 8年前 , 9F
ernel 升到 3.16 ,不清楚 docker 虛擬化能否處理差異這麼
11/08 00:25, 9F

11/08 00:25, 8年前 , 10F
大的情況
11/08 00:25, 10F
回報一下剛剛的測試結果: gdb 執行結果:(完整結果請見 https://pastebin.com/d95yfCk8 ) Thread 1 "kdevelop" received signal SIGSEGV, Segmentation fault. __memmove_sse2_unaligned_erms () at ../sysdeps/x86_64/multiarch/../multiarch/memmove-vec-unaligned-erms.S:325 325 ../sysdeps/x86_64/multiarch/../multiarch/memmove-vec-unaligned-erms.S: No such file or directory. google : memmove-vec-unaligned-erms.S: No such file or directory. 之後,看到 https://github.com/qTox/qTox/issues/3928 也有類似問題,疑似軟體一開始會播放音效,觸發 OpenAL bug (?) mikevmk 提供的解法是 echo "enable-shm = no" >> /etc/pulse/client.conf 我照做了,並配合用 root 啟動 dbus + 以 user 啟動 pulseaudio --start 。 但結果仍然一樣。 (另外也參考過 https://stackoverflow.com/a/28985715 ) 我的host os 是直接用 alsa ,沒有 pulse 。這樣會是問題點嗎? 也曾懷疑會不會是 buster 的 kdevelop 有 bug, 在 buster 上裝了 stretch 的 kdevelop (4:5.0.3-1+b1) 還是一樣的問題。 後來看到 docker hub 上有 yume190/kdevelop (不過是基於 debian:jessie ) 測試後雖然有跳出視窗,但內容一片白。其錯誤訊息如下 X Error: BadShmSeg (invalid shared segment parameter) 159 Extension: 142 (MIT-SHM) Minor opcode: 2 (X_ShmDetach) Resource id: 0x6200013 Object::connect: No such signal org::freedesktop::UPower::DeviceAdded(QString) Object::connect: No such signal org::freedesktop::UPower::DeviceRemoved(QString) X Error: BadShmSeg (invalid shared segment parameter) 159 Extension: 142 (MIT-SHM) Minor opcode: 3 (X_ShmPutImage) Resource id: 0x620001b 前後是一堆的 X Error 。沒有 Segmentation fault ,但就是沒畫面。 請問 galic 大的 docker os 是哪個呢?如果安裝版本都一樣,或許真是我 host os 的問題,可能要找時間在 VM 裡面測 docker 了。 ※ 編輯: sppmg (36.231.173.247), 11/08/2017 19:10:39

11/08 20:00, 8年前 , 11F
跟no such file那行沒關係啦 那是gdb想要dump code給你看
11/08 20:00, 11F

11/08 20:01, 8年前 , 12F
看325行長什麼樣子 但是你沒有抓source code所以跟你說沒有
11/08 20:01, 12F

11/08 20:01, 8年前 , 13F
總之那不是重點 看起來是qt5和opengl出了狀況
11/08 20:01, 13F

11/08 20:02, 8年前 , 14F
有可能container裡面的qt5太新了 跟host的x11配不上
11/08 20:02, 14F

11/08 20:02, 8年前 , 15F
回到jessie那個,有run起來又繪製畫面,就代表已經成功一半
11/08 20:02, 15F

11/08 20:03, 8年前 , 16F
你多加的-e QT_X11_NO_MITSHM=1 看看
11/08 20:03, 16F
太神啦~~ 開出來了!看到啟動畫面那一刻超感動~~~ 看來我的 debian 7 可以再戰十年了 XD 不過看來 qt/gui 部份也只能到 jessie 了 ... 我最後用的指令是這樣的: $ docker run -ti --rm \ -e DISPLAY=$DISPLAY \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -e QT_X11_NO_MITSHM=1 \ yume190/kdevelop (註:進去後要先 adduser ) 剛剛看到 KDevelop 官網有提供 AppImage 可以直接下載。 我還沒測試能否使用。不過如果問題出在 container 和 host 的 x11 問題上, 可能還是無法使用。 非常感謝 galic 大的熱心幫忙! 等等!突然想到如果我用 VNC/ssh -X 等方式而不是用 -v /tmp/.X11-unix 能否執行呢?(我還不會用 -v 之外的方法,所以先隨口問了。) ※ 編輯: sppmg (36.231.173.247), 11/08/2017 23:47:50

11/10 23:48, 8年前 , 17F
推很酷的問答流程XD
11/10 23:48, 17F
文章代碼(AID): #1Q07-Stz (Linux)
文章代碼(AID): #1Q07-Stz (Linux)