ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Ubuntu下LabVIEW与VIPM完整安装指南:从依赖配置到库管理

Ubuntu下LabVIEW与VIPM完整安装指南:从依赖配置到库管理 在大多数LabVIEW工程师的认知里LabVIEW似乎天生就是Windows的宠物老项目永远跑在Windows 7或者10上。直到你拿到一台只有Ubuntu的工控机或者客户要求测试系统必须跑在Linux下才会意识到其实NI一直提供独立的Linux版本。这篇文章记录我在Ubuntu 22.04上从零安装LabVIEW和VIPMVI Package Manager再用VIPM把常用开发库全部拉下来的完整过程。适合的对象是有一定Linux命令行基础、正在为跨平台部署发愁的LabVIEW使用者如果你完全没见过Ubuntu也没关系只要按顺序执行每一步都有解释。1. 安装方案的整体设计为什么选择tar.gz加deb的组合1.1 Linux版LabVIEW的真实生态先说个很多人不知道的事实NI官方对Linux的支持不是象征性的。从LabVIEW 2015开始每年都会发布64位Linux版本安装包以tar.gz形式提供里面是一个原生应用不是Wine模拟。但Linux版确实“减配”某些Express VIs不完整部分第三方驱动只有Windows版本而且NI官网上的一些工具包下载页默认只放Windows版你得手动切到Linux标签。VIPM同样有Linux原生版本只是更新节奏比Windows版慢半拍。这意味着只要你选对版本号完全可以做到“开发在Windows部署在Linux”。但这也带来一个现实问题Linux下的LabVIEW不能像Windows那样靠一个自解压exe无脑装完它依赖系统里一堆图形库、音频库和证书库。很多人装到一半就卡在“Error: Missing shared library”上其实不是LabVIEW本身难装而是没搞明白Linux的依赖管理体系。只要把底层思路捋顺后面所有操作都很简单。1.2 三种安装方式的取舍我在实际部署前调研过三种方案这里直接说结论。第一种是使用NI Package ManagerNIPM。NIPM在Linux上也有但它更像一个GUI包管理器适合习惯图形界面的新手。问题在于NIPM会额外引入一个大的运行时环境而且在服务器上跑测试时很多人不愿意多装一个带图形界面的管理器。第二种是直接下载官方tar.gz包手动安装这也是我最推荐的方式。它自带install脚本本质是把文件复制到/usr/local/natinst再注册一些环境变量过程透明遇到依赖问题可以精准修补。第三种是Docker镜像适合只想跑个测试函数的人但会引入容器图形界面、USB权限和实时性损耗的问题对仪器控制项目尤其不友好。所以我的路线是LabVIEW用官方tar.gz安装脚本VIPM用JKI官方打包的deb文件通过dpkg安装。这个组合最贴合Ubuntu的习惯后续维护也清晰。1.3 版本对应关系与系统要求版本匹配是最大的隐形坑。LabVIEW 2023 Q3 Linux版支持Ubuntu 20.04 LTS和22.04 LTS都要求x86_64架构。VIPM 2023.1官方支持LabVIEW 2014到2023但VIPM 2021就认不出LabVIEW 2023反过来也一样。所以安装前先确认两个版本都在同一代。系统方面用两条命令确认环境uname -m lsb_release -auname -m输出x86_64才说明是64位系统。如果的是aarch64那只能等NI出ARM版目前没有。lsb_release -a看Ubuntu版本号如果是18.04这种老版本建议先升级到20.04以上因为新LabVIEW对OpenSSL和GTK版本有硬性要求。2. 装之前把系统收拾干净依赖与账户权限2.1 准备基础工具和图形库打开终端先干一件所有Ubuntu用户都熟的事更新软件源。sudo apt update sudo apt upgrade -y然后安装基础工具链sudo apt install -y build-essential curl wget tar gdebi-coregdebi-core很有用后面装deb包时可以自动拉依赖。接下来是LabVIEW图形界面依赖的关键。LabVIEW在Linux下通过XCB与X Window系统通信还依赖OpenGL、音频和NSS证书库。我一次性列全避免你装到一半报错再回头补sudo apt install -y libxcb1 libxcb-render0 libxcb-shm0 libxcb-shape0 libxcb-xfixes0 libxcb-xinerama0 libxcb-icccm4 libxcb-keysyms1 libxcb-image0 libxcb-randr0 libxcb-render-util0 libxcb-xkb1 libxkbcommon-x11-0 libxi6 libxtst6 libxrandr2 libasound2 libnss3 libegl1 libgl1-mesa-glx libglib2.0-0 libfontconfig1 libdbus-1-3这些包名看起来很长但每条都有用处。xcb系列负责窗口绘制和事件传输libasound2是音频设备接口libnss3用于TLS证书校验libegl1和libgl1-mesa-glx是OpenGL渲染所需。如果你的Ubuntu版本较新某些包可能已经不存在比如22.04里libgl1-mesa-glx也能用但24.04可能换成了libgl1。apt会自动提示按提示调整即可。2.2 下载官方安装包的正确姿势LabVIEW Linux版安装包在NI官网的“Downloads”页面需要登录NI账户选择Linux版本。下载后务必检查校验值防止文件损坏sha256sum labview-*.tar.gzVIPM从vipm.io官网下载Linux版本文件名类似vipm-2023.1-linux-x64.deb。两个文件加起来大概3GB下载中断很常见强烈建议用wget断点续传wget -c https://download.ni.com/download/labview/2023.1/labview-2023-q3-linux.tar.gz如果公司网络限速可以找内网镜像或者用浏览器自带的下载管理器。大文件下载过程中不要频繁暂停容易导致服务器端连接超时。我实际下过两次第一次用命令行下载工具没加-c断了就得从头再来第二次老老实实用wget加断点续传参数一晚上就下完了。2.3 关于评估授权与Community版这里我不讨论任何激活破解只说官方允许的方式。LabVIEW Linux版安装后默认有30天评估期足够验证环境。如果你是个人、非商业用途可以申请LabVIEW Community Edition官方会给你社区版许可证安装包本身与全功能版是同一个激活时选择Community即可。这个操作在NI官网的“Community”页面完成需要填写申请表单一般几分钟内会发许可证到邮箱。特别提醒Community版许可证只允许非商业用途如果公司项目用到还是要买正式授权。评估期结束后如果不想买就得卸载不要尝试修改系统时间之类的手段那会破坏系统里其他需要时间校准的服务。3. LabVIEW安装实操从解压到首次启动3.1 解压安装包并查看脚本下载完成后先把压缩包解压tar -xzf labview-2023-q3-linux.tar.gz解压后目录名类似labview-2023-linux/里面有一个install脚本和多个子目录。动手前先看官方说明cd labview-2023-linux cat INSTALL.txt这个习惯很重要。不同小版本的依赖名称会变比如2023 Q3需要libxcb-cursor0而2022 Q2不需要。官方文档永远是最准的不要只上网抄一段命令行就开跑。INSTALL.txt里还会写明默认安装路径、环境变量以及卸载方式。3.2 运行安装脚本按照文档提示运行sudo ./INSTALL脚本会先检查系统缺少哪些库。如果之前那些依赖没有装全它会打印缺失项此时先中止安装回去补包再重新运行脚本。注意脚本的运行过程大约十分钟取决于磁盘速度不要中途打断否则可能留下残缺的安装记录。安装完成后脚本会在/usr/local/natinst/下创建LabVIEW-2023-64目录并在/usr/share/applications/下添加桌面快捷方式。终端里直接输labview即可启动。这里有个小细节安装脚本默认会把LabVIEW注册到所有用户但环境变量只对当前用户生效。如果你用普通用户启动可能会提示找不到labview命令可以在~/.bashrc里加export PATH/usr/local/natinst/LabVIEW-2023-64:$PATH3.3 按需安装NI-VISA和NI-DAQmxLabVIEW本身只是开发环境如果你要控制仪器还需要装NI-VISA如果要采集数据要装NI-DAQmx。这两个驱动同样有Linux版从NI官网下载后解压运行install脚本。VISA的安装会额外安装libusb和linux-gpib相关组件用于和USB/GPIB仪器通信。DAQmx则依赖Linux内核的comedi模块安装前先确认内核版本Ubuntu默认内核一般没问题。驱动包的安装方式和LabVIEW基本相同但它们的目录是独立的比如VISA装在/usr/local/vxipnp/linux/src。装完之后测试一下visa命令能否识别仪器能识别再继续。如果只是安装VIPM和库这一步可以跳过但仪器控制项目没有驱动是万万不能的。3.4 首次启动与许可证激活第一次运行LabVIEW会弹出License激活窗口。选择“Evaluate for 30 days”试用或者输入已经申请好的Community许可证。激活后进入主界面。首次启动会询问配置文件位置保持默认即可配置文件会放在用户目录下的~/.local/share/NI/中。有一个坑在虚拟机里没有GPU加速图形渲染会有点慢但功能不受影响。可以在环境变量里把渲染器设为软件模式LABVIEW_RENDERERsoft labview这个变量在NI官方论坛有提到属于底层调优。如果启动时窗口空白或者绘制不及时这个参数通常能救回来。4. VIPM的安装与配置库管理器的正确打开方式4.1 VIPM在Linux上的角色VIPM的官方定位是“LabVIEW的包管理器”类似Python的pip、Ubuntu的apt。你之前手动下载zip库文件再复制到vi.lib的日子可以结束了。VIPM能自动识别你已经安装的LabVIEW版本把包安装到对应版本的palette目录并且记录依赖关系卸载时干净利落。Linux版VIPM由JKI公司发布提供deb和rpm两种格式。我用的是deb因为Ubuntu是Debian系。不要试图跑Windows版VIPM配Wine兼容性问题会让人崩溃原生Linux版完全够用。4.2 用dpkg安装VIPM下载deb包后执行sudo dpkg -i vipm-2023.1-linux-x64.deb如果报依赖错误不要慌这是deb系的常规操作sudo apt -f install -y这会自动修复VIPM所依赖的包通常是libgtk-3-0或libwebkit2gtk。完成后终端输入vipm或者在程序菜单点“VI Package Manager”图标。首次启动会提示选择语言选英文即可因为中文界面在这版里不完整选中文反而可能乱码。4.3 让VIPM识别到LabVIEWVIPM启动后左侧的“LabVIEW Versions”区域会列出检测到的版本。如果没有点右上角“Options”在“LabVIEW Paths”中手动添加/usr/local/natinst/LabVIEW-2023-64/。注意VIPM要求的是包含labview可执行文件的目录不是vi.lib的上级填错会报“Invalid LabVIEW path”。还要保证当前用户对/usr/local/natinst目录有写权限。如果LabVIEW是用root权限安装的而VIPM以普通用户运行安装包时会遇到Permission denied。解决办法有两个sudo chown -R $USER /usr/local/natinst或者始终用sudo vipm启动。我推荐前者因为VIPM安装包时不需要每次都提权。注意chown之后以后所有LabVIEW插件安装到系统目录都会以当前用户身份写入相对安全如果你担心安全问题可以只给vi.lib和user.lib目录写权限VIPM安装包大部分都写这里。4.4 配置网络源与离线包VIPM默认访问JKI官方源在“Options” - “Package Sources”里能看到。如果内网无法直接访问官方服务器可以添加内部私有源或者下载VIPM Package.vip文件后用“File - Install Package”离线安装。很多公司会把常用库打包成内部库服务器这个功能最实用。VIPM的在线源和apt源类似有稳定版和测试版之分。默认勾选的是“VIPM Community”里面包含OpenG等免费库。如果你需要商业库可能需要添加付费源。离线安装.vip文件是另一个好选择因为在线源有时候会更新到某个版本后不再提供旧版本离线文件可以锁定版本。5. 动手装库用VIPM搞定日常开发三件套5.1 先认识最常用的几个库LabVIEW的开源库主要集中在VIPM源里我挑几个几乎每个项目都会用到的OpenG Toolkit最著名的LabVIEW扩展库集合包含字符串、数组、文件、数学等上千个VIs。JKI State MachineJKI发布的状态机框架用于构建可维护的事件驱动状态机适合测试流程控制。MGI Toolkit包含队列、集合、堆栈等数据结构VIs让你的LabVIEW编程风格更接近文本语言。Caraya单元测试框架开源免费适合CI环境。Endevo GOOP面向对象编程工具包用类封装复杂逻辑时会用到。另外还有Report Generation Toolkit、Modbus库、JSON库等可以按项目具体需求安装。装库之前先在相关文档里确认一下该库是否支持你的LabVIEW版本因为老库可能只支持32位LabVIEW而Linux版只有64位装了也找不到palette。5.2 图形界面安装点几下就好打开VIPM在搜索框输入“OpenG Toolkit”搜索结果里点InstallVIPM会弹窗让你选择安装到哪个LabVIEW版本。选择LabVIEW 2023 (64-bit)点OK它会自动下载、校验、安装。安装完成后在“Installed Packages”里能看到状态变成绿色。需要注意VIPM安装包时会把VIs放到系统目录同时更新palette配置文件。如果你的LabVIEW正在运行它会弹窗提示你关闭没有弹窗时保险起见也先关掉LabVIEW再装。我就曾在LabVIEW打开的状态下用VIPM装包结果Functions面板半天不刷新重启LabVIEW才好。5.3 命令行安装无图形界面的高效方式VIPM在Linux端提供了命令行工具vipm-cli用法类似aptvipm-cli install openg-toolkit vipm-cli list --installed vipm-cli search toolkit这招在SSH远端部署时尤其好用不需要X11转发直接跑脚本就能批量装库。我一般会写一个安装脚本#!/bin/bash sudo vipm-cli install openg-toolkit sudo vipm-cli install jki-state-machine sudo vipm-cli install mgi-toolkit sudo vipm-cli install caraya给脚本加执行权限后一键全装。注意vipm-cli安装路径可能在/usr/bin/vipm-cli可以在.bashrc里加一个aliasalias vipmisudo vipm-cli install这样后续直接vipmi openg-toolkit就能装包省得敲长命令。5.4 验证安装结果装完之后在LabVIEW里创建新VI打开Functions面板如果看到“OpenG”这一组palette说明安装成功。也可以直接到文件目录确认ls /usr/local/natinst/LabVIEW-2023-64/vi.lib/OpenG如果列表里有String、Array、File等子目录就说明装好了。还有一种更严谨的方式在LabVIEW的帮助菜单里看“Online Help”中的palette列表里面有OpenG条目的保存路径能对应上。我一般两种方法都试确认根目录和palette同时存在因为有时候文件复制了但palette缓存没刷新。6. 实测中遇到的坑和排查方法6.1 安装脚本报“libxcb-cursor0 not found”这是我第一次装LabVIEW 2023时遇到的错误。Ubuntu 22.04默认没有libxcb-cursor0而LabVIEW需要它。解决很简单sudo apt install libxcb-cursor0这类错误通常只要把缺少的包名放进apt install即可不要照抄网上的一大堆依赖命令因为版本不同依赖也不同。比如网上有人让你装libxcb-util1但22.04里它可能叫libxcb-util0apt会给出候选包名。6.2 LabVIEW启动直接闪退终端无输出通常是显卡或窗口系统问题。先看系统用的是Xorg还是Waylandecho $XDG_SESSION_TYPE如果输出wayland在登录界面切到“Ubuntu on Xorg”再进。LabVIEW对Wayland的支持很有限闪退大多发生在这里。切到Xorg后基本正常。如果仍然闪退试试软件渲染LABVIEW_RENDERERsoft labview这招能解决90%的启动闪退问题剩下的10%大概率是显卡驱动冲突可以检查/usr/lib/xorg/modules/drivers/里有没有奇怪的驱动残留。6.3 VIPM检测不到LabVIEW常见原因有两个VIPM版本太老不支持新版本LabVIEW或者LabVIEW安装在非默认路径。先在VIPM的Options里手动加路径加完如果还认不到就检查LabVIEW安装目录权限确保普通用户可读。还有一个技巧在终端运行vipm看启动日志里是否打印“Searching for LabVIEW versions”如果日志里根本没检测动作多半是配置文件损坏删除~/.config/JKI/vipm.cfg再重启VIPM即可。6.4 用VIPM安装包时卡在“Installing”多半是网络问题VIPM从官方源下载一半断开了。可以把下载超时调大或者在“Options”里设置内网代理。也可以用浏览器先下载.vip文件然后离线安装。离线安装还能避免在线源版本漂移导致的不兼容。我曾经用在线源装OpenG装到一半一直卡在“Fetching package list”关掉重试三次才成功后来干脆用离线文件一分钟不到就装完。关于在线源还有一个细节VIPM的官方源偶尔会临时挂掉报“Could not connect to default package source”这时候可以换到另一个镜像源。JKI官方文档里列了几个社区镜像选延迟低的那个即可。6.5 LabVIEW的Functions面板里找不到刚装的库一般情况下重启LabVIEW就能解决。如果重启后还没有检查VIPM的Installed Packages里包是否处于“Enabled”状态有时候多个LabVIEW版本共存包被装到了另一个版本。在VIPM里右键包选择“Reinstall to...”重新指定目标版本。再不行手动清掉LabVIEW的palette缓存rm -rf ~/.local/share/NI/LabVIEW 2023-64/Palettes这个目录存放着当前用户的palette配置文件删除后LabVIEW会自动重建一般就能看到新库了。注意删除前备份一下防止里面有自定义palette配置。6.6 卸载残留问题VIPM的deb包可以用sudo dpkg -r vipm卸载。LabVIEW没有官方卸载脚本我都是直接删目录和快捷方式sudo rm -rf /usr/local/natinst sudo rm /usr/share/applications/labview*.desktop这样虽然粗暴但不会留下乱七八糟的服务。前提是你确定不需要保留项目数据。LabVIEW项目文件通常在用户目录下与安装目录无关删了不会影响源码。但/etc/environment里如果写了LabVIEW相关变量要手动清理否则终端每次报错提示找不到labview。7. 适合自己工作流的一些补充建议7.1 版本号尽量对齐我给LabVIEW 2023配的是VIPM 2023.1也试过VIPM 2021结果它认不出LabVIEW 2023。所以在VIPM官网查一下支持矩阵最靠谱。类似地NI-VISA和DAQmx驱动也要选对应年份的版本比如LabVIEW 2023对应VISA 2023 Q3。版本一错后面装库、跑测试都可能出现“VI版本太新”的错误。7.2 给VIPM单独建个环境变量如果经常在命令行装库可以在~/.bashrc里加一行export VIPM_CLI/usr/bin/vipm-cli然后再加一个aliasalias vipm-installsudo $VIPM_CLI install这样就不用每次敲全路径。这不算什么高级技巧但对日常效率提升很明显。我甚至写了一个函数自动把包名后缀的.vip去掉方便直接输入短名。7.3 大项目推荐用.vip清单文件VIPM支持把多个包的安装列表存成一个.vipc文件VI Package Configuration也就是把依赖和版本锁定在一个文件里。在团队开发时把这个文件提交到Git仓库新同事拉下来后执行vipm-cli install --from-file project.vipc一台新办公机半小时就能恢复成同样的环境。这个思路和Python的requirements.txt一样把环境定义从“操作步骤”变成了“配置声明”非常利于自动化部署。我在GitLab CI里就用这个文件配合vipm-cli做环境预置每次跑测试前先装依赖一次都没出过问题。7.4 别忘了VI Analyzer和Unit Test如果你的项目要长期维护建议在VIPM里把VI Analyzer Toolkit和Caraya也装上。VI Analyzer能静态检查代码规范比如未使用变量、死代码、连线问题Caraya是单元测试框架支持命令行运行。在Linux上这才是真正发挥自动化优势的地方Jenkins或GitLab CI里直接跑vipm-cli install和labview-cli执行测试完全不需要人工介入。我所在的团队现在每个MR都要跑一次静态检查和单元测试这批脚本都是Linux下用VIPM搭起来的。7.5 网络下载慢的替代思路如果LabVIEW的官方安装包太大下载速度不理想可以尝试选在凌晨用wget断点续传或者找NI官方的镜像站。VIPM的库文件一般都很小最多几十MB在线源通常没压力。如果VIPM源连不上可以先把.vip文件下载到本地用vipm-cli install时指定本地路径sudo vipm-cli install ./openg-toolkit.vip离线安装还有个好处就是不需要在CI环境里配置网络权限对安全要求高的服务器来说更稳妥。最后说点个人感受。当时我花了整整一个周末才把LabVIEW和VIPM在Ubuntu上跑顺踩得最多的是图形库缺失和Wayland兼容性前者要耐心补包后者只能换Session。但一旦跑通后面所有库的安装、卸载、升级都非常顺滑特别是用vipm-cli写脚本批量部署比在Windows上点鼠标效率高多了。现在我的Linux测试机已经完全替代了Windows开发机日常开发、跑单元测试、部署到工控全都在这套环境里完成。希望这篇记录能帮你少走这些弯路直接上手Linux版LabVIEW。
返回列表