我正在制作一个简单的 JPro-one 网络应用程序并尝试在 Heroku 部署。
我已经按照这些简单的步骤
在 Heroku
创建一个免费帐户安装 Heroku Command Line Interface (CLI) 并运行:
heroku login
结帐 HelloJPro 为:
git clone https://github.com/JPro-one/HelloJPro
cd HelloJPro
创建包含内容的 system.properties
文件:
java.runtime.version=11
添加文件并提交为:
git add .
git commit -m "switch to java 11"
heroku create
通过像这样设置 GRADLE_TASK
配置变量来覆盖默认任务:
heroku config:set GRADLE_TASK="jproRestart"
部署到 Heroku 为:
git push heroku master
它会产生很多错误:
λ git push heroku master
Enumerating objects: 316, done.
Counting objects: 100% (316/316), done.
Delta compression using up to 2 threads
Compressing objects: 100% (145/145), done.
Writing objects: 100% (316/316), 239.41 KiB | 19.95 MiB/s, done.
Total 316 (delta 119), reused 312 (delta 118)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Building on the Heroku-20 stack
remote: -----> Determining which buildpack to use for this app
remote: -----> Gradle app detected
remote: -----> Installing JDK 11... done
remote: -----> Building Gradle app...
remote: -----> executing ./gradlew jproRestart
remote: Downloading https://services.gradle.org/distributions/gradle-6.7.1-bin.zip
remote: .........10%..........20%..........30%..........40%..........50%.........60%..........70%..........80%..........90%..........100%
remote: To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/6.7.1/userguide/gradle_daemon.html.
remote: Daemon will be stopped at the end of the build stopping after processing
remote:
remote: > Configure project :
remote: Project : => 'org.openjfx.gradle.javafx.test' Java module
remote:
remote: > Task :compileJava
remote: > Task :processResources
remote: > Task :classes
remote:
remote: > Task :jproStop
remote: The Server is not running!
remote:
remote: > Task :prepareBrowser
remote: > Task :jproStartAsync
remote: WARNING: An illegal reflective access operation has occurred
remote: WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/tmp/codon/tmp/cache/.gradle/caches/modules-2/files-2.1/com.google.inject/guice/4.2.3/2ea992d6d7bdcac7a43111a95d182a4c42eb5ff7/guice-4.2.3.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
remote: WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
remote: WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
remote: WARNING: All illegal access operations will be denied in a future release
remote: [info] a.e.s.Slf4jLogger - Slf4jLogger started
remote: [info] play.api.Play - Application started (Prod) (no global state)
remote: [info] p.c.s.AkkaHttpServer - Enabling HTTP/2 on Akka HTTP server...
remote: [info] p.c.s.AkkaHttpServer - Listening for HTTP on /0:0:0:0:0:0:0:0:8080
remote: [info] c.jpro.activity - Starting the server
remote: [info] c.j.i.s.Initializer$ - *** Starting JPro: https://www.jpro.one/ ***
remote: [info] c.j.i.s.Initializer$ - OS: Linux
remote: [info] c.j.i.s.Initializer$ - JPro: 2020.1.3
remote: [info] c.j.i.s.Initializer$ - Java version: 11.0.10
remote: [info] c.j.i.s.Initializer$ - JVM: 11.0.10 Oracle Corporation
remote: [info] c.j.i.s.Initializer$ - redirected OUT / ERR
remote: [info] c.j.i.s.Initializer$ - installed SLF4JBridge
remote: [info] c.j.i.s.MonocleInitializer$ - screen: null
remote: Loading library prism_es2 from resource failed: java.lang.UnsatisfiedLinkError: /app/.openjfx/cache/15.0.1.1-jpro/libprism_es2.so: libGL.so.1: cannot open shared object file: No such file or directory
remote: java.lang.UnsatisfiedLinkError: /app/.openjfx/cache/15.0.1.1-jpro/libprism_es2.so: libGL.so.1: cannot open shared object file: No such file or directory
remote: at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
remote: at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
remote: at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
remote: at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
remote: at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627)
remote: at java.base/java.lang.Runtime.load0(Runtime.java:768)
remote: at java.base/java.lang.System.load(System.java:1837)
remote: at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:214)
remote: at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:194)
remote: at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:135)
remote: at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:53)
remote: at com.sun.prism.es2.ES2Pipeline.lambda$static$0(ES2Pipeline.java:69)
remote: at java.base/java.security.AccessController.doPrivileged(Native Method)
remote: at com.sun.prism.es2.ES2Pipeline.<clinit>(ES2Pipeline.java:51)
remote: at java.base/java.lang.Class.forName0(Native Method)
remote: at java.base/java.lang.Class.forName(Class.java:315)
remote: at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:218)
remote: at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:91)
remote: at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
remote: at java.base/java.lang.Thread.run(Thread.java:834)
remote: [info] c.j.i.s.Initializer$ - finished init!
remote: [info] c.j.i.s.Initializer$ - JavaFX version: 15.0.1.1-jpro+0-2021-01-03-124213
remote: [info] c.j.i.c.m.ChartJSONImExporter - Nothing to import
remote: [info] c.j.i.c.m.DynamicDataModel - Started Monitoring chart data...
remote: Loading library jfxmedia from resource failed: java.lang.UnsatisfiedLinkError: /app/.openjfx/cache/15.0.1.1-jpro/libjfxmedia.so: libasound.so.2: cannot open shared object file: No such file or directory
remote: java.lang.UnsatisfiedLinkError: /app/.openjfx/cache/15.0.1.1-jpro/libjfxmedia.so: libasound.so.2: cannot open shared object file: No such file or directory
remote: at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
remote: at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
remote: at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
remote: at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
remote: at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627)
remote: at java.base/java.lang.Runtime.load0(Runtime.java:768)
remote: at java.base/java.lang.System.load(System.java:1837)
remote: at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:214)
remote: at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:194)
remote: at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:135)
remote: at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:63)
remote: at com.sun.media.jfxmediaimpl.NativeMediaManager.lambda$new$0(NativeMediaManager.java:137)
remote: at java.base/java.security.AccessController.doPrivileged(Native Method)
remote: at com.sun.media.jfxmediaimpl.NativeMediaManager.<init>(NativeMediaManager.java:107)
remote: at com.sun.media.jfxmediaimpl.NativeMediaManager$NativeMediaManagerInitializer.<clinit>(NativeMediaManager.java:78)
remote: at com.sun.media.jfxmediaimpl.NativeMediaManager.getDefaultInstance(NativeMediaManager.java:90)
remote: at com.sun.media.jfxmedia.MediaManager.getAllMediaPlayers(MediaManager.java:166)
remote: at com.jpro.internal.stats.ServerInfo$.mediaPlayersSize(ServerInfo.scala:34)
remote: at com.jpro.internal.chart.model.MonitoredData$.$anonfun$appsInfoSeries$4(MonitoredData.scala:36)
remote: at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$getNewValues$2(DynamicDataModel.scala:64)
remote: at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$getNewValues$2$adapted(DynamicDataModel.scala:63)
remote: at scala.collection.TraversableLike$WithFilter.$anonfun$foreach$1(TraversableLike.scala:924)
remote: at scala.collection.immutable.HashMap$HashMap1.foreach(HashMap.scala:394)
remote: at scala.collection.immutable.HashMap$HashTrieMap.foreach(HashMap.scala:721)
remote: at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:923)
remote: at com.jpro.internal.chart.model.DynamicDataModel.getNewValues(DynamicDataModel.scala:63)
remote: at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$startValueMonitoring$1(DynamicDataModel.scala:153)
remote: at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
remote: at simplefx.cores.standard.parts.CoreTimeEvent.$anonfun$runEvery$2(CoreTimeEvent.scala:124)
remote: at simplefx.cores.standard.parts.CoreTimeEvent.$anonfun$runAt$2(CoreTimeEvent.scala:74)
remote: at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$4(CoreTimeEvent.scala:100)
remote: at scala.collection.immutable.Set$Set1.foreach(Set.scala:141)
remote: at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$3(CoreTimeEvent.scala:98)
remote: at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$3$adapted(CoreTimeEvent.scala:91)
remote: at simplefx.cores.standard.parts.CoreTypesBindable$BindableImpl.$anonfun$triggerOnChange$3(CoreTypesBindable.scala:208)
remote: at simplefx.cores.standard.parts.CoreScheduler.runSchedulerImpl(CoreScheduler.scala:73)
remote: at simplefx.cores.standard.parts.CoreScheduler.runSchedulerImpl$(CoreScheduler.scala:52)
remote: at simplefx.cores.standard.Core.runSchedulerImpl(Core.scala:9)
remote: at simplefx.cores.standard.parts.CoreScheduler.tryStartSchedulerStop(CoreScheduler.scala:44)
remote: at simplefx.cores.standard.parts.CoreScheduler.tryStartSchedulerStop$(CoreScheduler.scala:42)
remote: at simplefx.cores.standard.Core.tryStartSchedulerStop(Core.scala:9)
remote: at simplefx.cores.standard.parts.CoreTimeEvent$$anon$1.handle(CoreTimeEvent.scala:24)
remote: at javafx.animation.AnimationTimer$AnimationTimerReceiver.lambda$handle$0(AnimationTimer.java:57)
remote: at java.base/java.security.AccessController.doPrivileged(Native Method)
remote: at javafx.animation.AnimationTimer$AnimationTimerReceiver.handle(AnimationTimer.java:56)
remote: at com.sun.scenario.animation.AbstractMasterTimer.timePulseImpl(AbstractMasterTimer.java:357)
remote: at com.sun.scenario.animation.AbstractMasterTimer$MainLoop.run(AbstractMasterTimer.java:267)
remote: at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:569)
remote: at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:553)
remote: at com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:546)
remote: at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$12(QuantumToolkit.java:348)
remote: at com.sun.glass.ui.monocle.RunnableProcessor.runLoop(RunnableProcessor.java:92)
remote: at com.sun.glass.ui.monocle.RunnableProcessor.run(RunnableProcessor.java:51)
remote: at java.base/java.lang.Thread.run(Thread.java:834)
remote: java.lang.UnsatisfiedLinkError: no jfxmedia in java.library.path: [/usr/java/packages/lib, /usr/lib64, /lib64, /lib, /usr/lib]
remote: at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2670)
remote: at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)
remote: at java.base/java.lang.System.loadLibrary(System.java:1873)
remote: at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:163)
remote: at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:63)
remote: at com.sun.media.jfxmediaimpl.NativeMediaManager.lambda$new$0(NativeMediaManager.java:137)
remote: at java.base/java.security.AccessController.doPrivileged(Native Method)
remote: at com.sun.media.jfxmediaimpl.NativeMediaManager.<init>(NativeMediaManager.java:107)
remote: at com.sun.media.jfxmediaimpl.NativeMediaManager$NativeMediaManagerInitializer.<clinit>(NativeMediaManager.java:78)
remote: at com.sun.media.jfxmediaimpl.NativeMediaManager.getDefaultInstance(NativeMediaManager.java:90)
remote: at com.sun.media.jfxmedia.MediaManager.getAllMediaPlayers(MediaManager.java:166)
remote: at com.jpro.internal.stats.ServerInfo$.mediaPlayersSize(ServerInfo.scala:34)
remote: at com.jpro.internal.chart.model.MonitoredData$.$anonfun$appsInfoSeries$4(MonitoredData.scala:36)
remote: at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$getNewValues$2(DynamicDataModel.scala:64)
remote: at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$getNewValues$2$adapted(DynamicDataModel.scala:63)
remote: at scala.collection.TraversableLike$WithFilter.$anonfun$foreach$1(TraversableLike.scala:924)
remote: at scala.collection.immutable.HashMap$HashMap1.foreach(HashMap.scala:394)
remote: at scala.collection.immutable.HashMap$HashTrieMap.foreach(HashMap.scala:721)
remote: at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:923)
remote: at com.jpro.internal.chart.model.DynamicDataModel.getNewValues(DynamicDataModel.scala:63)
remote: at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$startValueMonitoring$1(DynamicDataModel.scala:153)
remote: at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
remote: at simplefx.cores.standard.parts.CoreTimeEvent.$anonfun$runEvery$2(CoreTimeEvent.scala:124)
remote: at simplefx.cores.standard.parts.CoreTimeEvent.$anonfun$runAt$2(CoreTimeEvent.scala:74)
remote: at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$4(CoreTimeEvent.scala:100)
remote: at scala.collection.immutable.Set$Set1.foreach(Set.scala:141)
remote: at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$3(CoreTimeEvent.scala:98)
remote: at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$3$adapted(CoreTimeEvent.scala:91)
remote: at simplefx.cores.standard.parts.CoreTypesBindable$BindableImpl.$anonfun$triggerOnChange$3(CoreTypesBindable.scala:208)
remote: at simplefx.cores.standard.parts.CoreScheduler.runSchedulerImpl(CoreScheduler.scala:73)
remote: at simplefx.cores.standard.parts.CoreScheduler.runSchedulerImpl$(CoreScheduler.scala:52)
remote: at simplefx.cores.standard.Core.runSchedulerImpl(Core.scala:9)
remote: at simplefx.cores.standard.parts.CoreScheduler.tryStartSchedulerStop(CoreScheduler.scala:44)
remote: at simplefx.cores.standard.parts.CoreScheduler.tryStartSchedulerStop$(CoreScheduler.scala:42)
remote: at simplefx.cores.standard.Core.tryStartSchedulerStop(Core.scala:9)
remote: at simplefx.cores.standard.parts.CoreTimeEvent$$anon$1.handle(CoreTimeEvent.scala:24)
remote: at javafx.animation.AnimationTimer$AnimationTimerReceiver.lambda$handle$0(AnimationTimer.java:57)
remote: at java.base/java.security.AccessController.doPrivileged(Native Method)
remote: at javafx.animation.AnimationTimer$AnimationTimerReceiver.handle(AnimationTimer.java:56)
remote: at com.sun.scenario.animation.AbstractMasterTimer.timePulseImpl(AbstractMasterTimer.java:357)
remote: at com.sun.scenario.animation.AbstractMasterTimer$MainLoop.run(AbstractMasterTimer.java:267)
remote: at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:569)
remote: at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:553)
remote: at com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:546)
remote: at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$12(QuantumToolkit.java:348)
remote: at com.sun.glass.ui.monocle.RunnableProcessor.runLoop(RunnableProcessor.java:92)
remote: at com.sun.glass.ui.monocle.RunnableProcessor.run(RunnableProcessor.java:51)
remote: at java.base/java.lang.Thread.run(Thread.java:834)
remote: > Task :jproStart
remote: > Task :jproRestart
remote: java.lang.NoClassDefFoundError: Could not initialize class com.sun.media.jfxmediaimpl.NativeMediaManager$NativeMediaManagerInitializer
remote: at com.sun.media.jfxmediaimpl.NativeMediaManager.getDefaultInstance(NativeMediaManager.java:90)
remote: at com.sun.media.jfxmedia.MediaManager.getAllMediaPlayers(MediaManager.java:166)
remote: at com.jpro.internal.stats.ServerInfo$.mediaPlayersSize(ServerInfo.scala:34)
remote: at com.jpro.internal.chart.model.MonitoredData$.$anonfun$appsInfoSeries$4(MonitoredData.scala:36)
remote: at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$getNewValues$2(DynamicDataModel.scala:64)
remote: at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$getNewValues$2$adapted(DynamicDataModel.scala:63)
remote: at scala.collection.TraversableLike$WithFilter.$anonfun$foreach$1(TraversableLike.scala:924)
remote: at scala.collection.immutable.HashMap$HashMap1.foreach(HashMap.scala:394)
remote: at scala.collection.immutable.HashMap$HashTrieMap.foreach(HashMap.scala:721)
remote: at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:923)
remote: at com.jpro.internal.chart.model.DynamicDataModel.getNewValues(DynamicDataModel.scala:63)
remote: at com.jpro.internal.chart.model.DynamicDataModel.$anonfun$startValueMonitoring$1(DynamicDataModel.scala:153)
remote: at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
remote: at simplefx.cores.standard.parts.CoreTimeEvent.$anonfun$runEvery$2(CoreTimeEvent.scala:124)
remote: at simplefx.cores.standard.parts.CoreTimeEvent.$anonfun$runAt$2(CoreTimeEvent.scala:74)
remote: at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$4(CoreTimeEvent.scala:100)
remote: at scala.collection.immutable.Set$Set1.foreach(Set.scala:141)
remote: at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$3(CoreTimeEvent.scala:98)
remote: at simplefx.cores.standard.parts.CoreTimeEvent$Helper$.$anonfun$new$3$adapted(CoreTimeEvent.scala:91)
remote: at simplefx.cores.standard.parts.CoreTypesBindable$BindableImpl.$anonfun$triggerOnChange$3(CoreTypesBindable.scala:208)
remote: at simplefx.cores.standard.parts.CoreScheduler.runSchedulerImpl(CoreScheduler.scala:73)
remote: at simplefx.cores.standard.parts.CoreScheduler.runSchedulerImpl$(CoreScheduler.scala:52)
remote: at simplefx.cores.standard.Core.runSchedulerImpl(Core.scala:9)
remote: at simplefx.cores.standard.parts.CoreScheduler.tryStartSchedulerStop(CoreScheduler.scala:44)
remote: at simplefx.cores.standard.parts.CoreScheduler.tryStartSchedulerStop$(CoreScheduler.scala:42)
remote: at simplefx.cores.standard.Core.tryStartSchedulerStop(Core.scala:9)
remote: at simplefx.cores.standard.parts.CoreTimeEvent$$anon$1.handle(CoreTimeEvent.scala:24)
remote: at javafx.animation.AnimationTimer$AnimationTimerReceiver.lambda$handle$0(AnimationTimer.java:57)
remote: at java.base/java.security.AccessController.doPrivileged(Native Method)
remote: at javafx.animation.AnimationTimer$AnimationTimerReceiver.handle(AnimationTimer.java:56)
remote: at com.sun.scenario.animation.AbstractMasterTimer.timePulseImpl(AbstractMasterTimer.java:357)
remote: at com.sun.scenario.animation.AbstractMasterTimer$MainLoop.run(AbstractMasterTimer.java:267)
remote: at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:569)
remote: at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:553)
remote: at com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:546)
remote: at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$12(QuantumToolkit.java:348)
remote: at com.sun.glass.ui.monocle.RunnableProcessor.runLoop(RunnableProcessor.java:92)
remote: at com.sun.glass.ui.monocle.RunnableProcessor.run(RunnableProcessor.java:51)
remote:
remote: at java.base/java.lang.Thread.run(Thread.java:834)
remote: BUILD SUCCESSFUL in 54s
remote: 6 actionable tasks: 6 executed
remote: -----> Discovering process types
remote: Procfile declares types -> (none)
remote:
remote: -----> Compressing...
remote: Done: 61.4M
remote: -----> Launching...
remote: Released v4
remote: https://floating-beach-17551.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/floating-beach-17551.git
* [new branch] master -> master
注意:JRpo-one 建议下载一些库:https://www.jpro.one/?page=docs/current/2.7/PREPARING_LINUX_FOR_JPRO
也试试这个:
heroku run apt-get install xorg gtk2-engines libasound2 libgtk2.0-0
Running apt-get install xorg gtk2-engines libasound2 libgtk2.0-0 on ⬢ floating-beach-17551... up, run.9569 (Free)
Reading package lists... Done
Building dependency tree
Reading state information... Done
W: Not using locking for read only lock file /var/lib/dpkg/lock-frontend
W: Not using locking for read only lock file /var/lib/dpkg/lock
E: Unable to locate package xorg
E: Unable to locate package gtk2-engines
E: Unable to locate package libasound2
E: Unable to locate package libgtk2.0-0
E: Couldn't find any package by glob 'libgtk2.0-0'
E: Couldn't find any package by regex 'libgtk2.0-0'
但无论如何我都无法得到这些,感谢任何帮助。