大家好,我是 PLCT 丁丑小队的一名实习生。这是我们工程软件测试系列帖的第三篇,接续总集篇和源内软件篇。本期我们来聊聊那些 RevyOS 源里暂时没有,但我们可以从其他地方找到预编译包直接使用的软件。
这种方式确实很方便,省去了编译的麻烦。但帖主必须在这里提醒一句:直接安装来自其他发行版(比如 Ubuntu)的 .deb 包可能会因为依赖库版本不兼容而破坏您的系统环境,请谨慎操作! 我们这次的测试方法是解压 .deb 包然后手动运行其中的二进制文件,这是一种相对“绿色”和安全的方式。
1. SagCAD - 简单好用的 2D CAD/CAM
SagCAD 是一款轻量级的 2D CAD/CAM 软件。虽然 RevyOS 源里没有,但我们发现 Ubuntu 的源里有为 riscv64 架构构建的包。于是我们决定当一次“拾荒者”。
操作步骤:
首先,我们下载这个 .deb 包,但不是用 dpkg -i 来安装它。
# 创建一个干净的目录来存放它
mkdir sagcad; cd sagcad
# 从 Ubuntu 的仓库下载 .deb 文件
wget http://launchpadlibrarian.net/722730855/sagcad_0.9.14-0ubuntu6_riscv64.deb
# 使用 dpkg-deb 解压,而不是安装
dpkg-deb -x sagcad_0.9.14-0ubuntu6_riscv64.deb .
解压后,我们就能在当前目录下的 ./usr/bin/ 找到可执行文件 sagcad。直接运行它:
./usr/bin/sagcad
令人惊喜的是,它在 Milk-V Pioneer 上完美运行。
详细的测试报告可以看这里:SagCAD 测试报告。
2. Impact - 跨平台的 Java FEA 程序
Impact 是一款用 Java 编写的显式动态有限元程序。Java 的跨平台特性在这里就体现出优势了——只要有对应的 Java 运行环境 (JRE/JDK),理论上就可以直接运行编译好的 .jar 包。
操作步骤:
首先,确保系统里有 Java 环境。RevyOS 源里就有,直接安装即可:
sudo apt install openjdk-17-jdk
然后,从 Impact 的官网下载预编译的 zip 包并解压:
# 下载并重命名
wget https://master.dl.sourceforge.net/project/impact/impact/Version%200.7.06.042/Impact-0.7.06.042.zip?viasf=1 -O Impact.zip
unzip Impact.zip
cd Impact
# 赋予启动脚本执行权限
chmod +x ./Impact.sh
之后,我们就可以用它自带的启动脚本来运行一个示例了:
./Impact.sh examples/cylinder.in
程序成功启动并开始计算,日志输出正常。
debian@revyos-lpi4a:~/Impact$ ./Impact.sh examples/cylinder.in
=========== Welcome to Impact ==========
= Impact is free software and licensed =
= under GPL. Please note that it comes =
= with no warranties whatsoever. =
= =
= Report any bugs at our webpage: =
= http://impact.sourceforge.net =
=============== ENJOY!!!! ==============
*******************************
*** Solver has been invoked ***
*******************************
Running on 4 clients
Processing file: examples/cylinder.in
*** Initializing ***
Found 1392 elements
Found 1 trackers
Found 1 materials
Found 723 nodes
Found 2 constraints
Found 0 loads
Found 2 controls
Found 0 groups
Reading Constraints
Constraint block found!
Filled constraintlist
Reading Loads
Filled loadlist
Reading Nodes
10.0% complete
20.0% complete
30.0% complete
40.0% complete
50.0% complete
60.0% complete
70.0% complete
80.0% complete
90.0% complete
Filled nodelist
Reading Materials
Block found!
Filled materiallist
Reading Elements
Element block found!
10.0% complete
20.0% complete
30.0% complete
40.0% complete
50.0% complete
60.0% complete
70.0% complete
80.0% complete
90.0% complete
Element block found!
Filled elementlist
Reading Trackers
Tracker block found!
Filled trackerlist
Reading Controls
Filled controlset
*** Assembling the Mass Matrix ***
Assembling Elements
Assembling Nodes
Assembling Constraints
ase.dir/matrix_free.cc.o
*** Setting Initial Conditions ***
Initializing nodes
Sorting nodes
Setting up node neighbour handles
Determining optimal model distribution for nodes
Initializing elements
Assigning each element to a CPU
Initializing trackers
Initializing constraints
Determining smallest timestep size
Determined timestep: 4.8293633530785456E-4
Calculating total model mass
Total model mass = 0.24444260770968435
*** Initiating Solver ***
Distributing the model on 4 CPU:s
CPU 0 Nodes: 181 Elements: 338
CPU 1 Nodes: 181 Elements: 362
CPU 2 Nodes: 181 Elements: 362
CPU 3 Nodes: 180 Elements: 330
Time: 0.0 Remaining time (hh:mm:ss) 00:00:39
......
详细的测试报告可以看这里:Impact 测试报告。
总结
通过这两个例子,我们可以看到,即使软件没有被 RevyOS 官方打包,我们依然有机会通过社区或其他渠道找到可用的预编译版本。对于 Java 程序来说,这种方式尤其方便。而对于原生二进制程序,采用“只解包不安装”的策略,可以在享受便利的同时,最大程度地避免污染系统环境。
下一期,我们提到一些“需自行构建或魔改”的软件,从那些相对容易编译的软件开始。敬请期待!
欢迎各位复现/吐槽丁丑小队的所有测试结果。
如果有对我们的测试方法/结果有任何建议/问题,欢迎直接在 GitHub 开 issue,或者在论坛 @ 我们、回帖询问。










