前些日子,需要写一个数据导入程序,公司为了安全考虑,只提供了一个linux系统的服务器用来访问数据库服务器,一开始我还是有点慌的,因为Linux服务器系统不是图形界面的,全部需要在终端上输入命令来操作的,毕竟之前没有开发过linux系统的程序,不过想想群里几位大神都已经开发过,而且我也加了DelphiLinux开发的群,心里顿时底气十足。
先在自己电脑上搭一个Linux开发环境
也就是在虚拟机上面装一个Linux系统,我用的是VMWare 16。
再下载Linux系统安装盘,
我是在PC下载网下载的深度(deepin)20.2.4 官方版64位ISO,
https://www.pcsoft.com.cn/soft/35131.html
下载地址:
http://cdimage.deepin.com/releases/20.2.4/deepin-desktop-community-20.2.4-amd64.iso
我一开始是装Ubuntu的,装了之后,Delphi的开发环境配不起来,当前可能是我能力的问题,群里朋友推荐我装深度的,最终配置成功。
再在VMWare中新建一个虚拟机用来装Linux系统,
选择我们刚才下载的ISO
这一步比较困惑了,因为操作系统版本下拉框中没有深度Linux的选项,我查了一下,最新的深度Linux内核已经到了5.15.24,所以我这里选的是“其他Linux 5.x及更高版本内核 64位”
给虚拟机起个名字
硬盘大小设置为80G
最后,点击完成即可
安装的过程省略了,
安装成功之后的桌面,我感觉还挺好看,底下的任务栏,和Windows系统操作习惯一样。
接着在Linux中安装所需要的软件库,
这一步我是参考的下面这篇博客做的:
https://blog.csdn.net/weixin_42566451/article/details/116647003
打开终端:
输入:sudo apt-get install joe wget p7zip-full curl build-essential zlib1g-dev libcurl4-gnutls-dev libncurses5
不过我在这一步失败了,网上说要将软件下载源改为国内的下载源,
按这篇博客中的方法解决:
https://blog.csdn.net/yjj350418592/article/details/121030942
就是运行如下命令:
sudo gedit /etc/apt/sources.list
将sources.list的内容替换为如下:
deb http://mirrors.aliyun.com/ubuntu bionic main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu bionic-updates main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu bionic-security main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu bionic-proposed main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu bionic-backports main multiverse restricted universe
然后运行更新设置命令:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
在执行apt update的时候又报了一个签名的错误,真是走一步错一步呀:
最后是参考的这篇博客解决的:
https://blog.csdn.net/lj19990824/article/details/120666775
我把重点摘出来:
**问题:**在使用sudo apt-get update更新的时候,报了以下错误
**解决:**打开终端,下载对应密钥
sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 3B4FE6ACC0B21F32
3B4FE6ACC0B21F32是缺少的密钥,缺少什么就下什么
接下来在Linux上安装PAServer,
PASever的Linux安装包在Delphi的安装目录中,在我电脑上是C:\Program Files (x86)\Embarcadero\Studio\22.0\PAServer\LinuxPAServer22.0.tar.gz,其中的版本号22.0表示我目前用的Delphi版本是 11(11.1),
用拖拽的方式将它复制到Linux系统中
不用安装,直接右键,解压即可:
那怎么运行PAServer呢?右键解压出来的paserver,在弹出菜单中选择“打开”,
在弹出的对话框中选择“在终端中运行”
提示要我们设置PAServer的连接密码,我一般不输,直接按回车就行:
再查看linux的ip地址:
可以鼠标移到任务栏的网络图标中查看:
也可以在终端中输入命令:ip addr show查看
在Delphi添加Linux的SDK:
先在IDE->Tools->Options->Deployment->Connection Profile Manager中添加一个Linux平台的PAServer连接,Host name(服务端主机名)填我们Linux系统的IP地址:
再在SDK Manager中添加Linux的SDK:
好了,环境配置完成了
现在,让我们写一个linux程序测试一下:
新建一个工程的时候可以看到,有三种工程类型支持Linux,Package控件包、Dynamic Library动态链接库以及Console Application控制台程序,那我们就建一个Console Application吧。
我们用WriteLn在命令行输出:Hello World By Delphi!
编译运行:
但是我这里报了一个错(Debug模式下):
但是在Release模式下可以运行,真是莫名其妙:
在PAServer的窗口中成功输出:
我们编译出来的程序在主目录\PAServer\scratch-dir\连接名\工程名目录中:
我们直接把它拖到终端窗口,按回车即可运行:
生成的Linux程序在Windows上也有一份的,它在工程的生成目录:
最后就是把你生成的程序,拷到服务器上去运行啦!
我是安装的群里推荐的XShell来连接Linux服务器的
先来看看是什么linux系统,我们输入:cat /proc/version
是centos,
把我们刚才生成的Linux程序拷到linux服务器上,输入rz -be命令,会弹出对话框选择要上传的文件:
可以用ls查看当前目录下的文件,看看Project14这个程序有没有在:
再用命令将文件属性改为可执行程序:
sudo chmod 777 Project14
再输入./Project14来运行:
竟然可以运行,Delphi真牛!
那接下来导数据的工作Delphi就可以完全胜任啦!
整个体验到这里就结束啦,总算是有惊无险。Delphi也能在fmxlinux控件的支持下开发Linux下的桌面程序,很巧的是,刚才我写完这篇博客的时候,朋友圈里面有人发他在国产Linux上运行Delphi开发的桌面程序示例:
随着国家对信息安全的注重,已经催生了一波Linux国产自主软件的开发热潮,希望大家多给自家Delphi机会,多用Delphi!
有一个DelphiForLinux的QQ群(群号:734515869)介绍给大家:
大家也可以加我微信18957901025,或者QQ452330643相互交流。
祝大家使用Delphi愉快!