Articles of 部署

在Ubuntu上使用共享库部署Qt应用程序二进制文件

我想部署一个我已经在任何“Vanilla”Ubuntu上运行的Qt应用程序。 它可能是一个.deb软件包,或者简单的二进制文件。 事情是,我不知道该怎么做。 我试图按照这个教程: https : //lemirep.wordpress.com/2013/06/01/deploying-qt-applications-on-linux-and-windows-3/我真的设法让应用程序运行在另一台电脑上,但是…它应该播放一些video,我得到了一个消息: defaultServiceProvider :: requestService():找不到服务 – “org.qt-project.qt.mediaplayer” 我可能错过了一些库。 但我真的不知道哪一个。 当我在我的二进制文件上运行ldd时,一切似乎都没有问题。 ldd的结果如下: libQt5MultimediaWidgets.so.5 => /home/mauker/Qt/5.3/gcc_64/lib/libQt5MultimediaWidgets.so.5 (0x00007f02a0adf000) libQt5Multimedia.so.5 => /home/mauker/Qt/5.3/gcc_64/lib/libQt5Multimedia.so.5 (0x00007f02a07fc000) libQt5Widgets.so.5 => /home/mauker/Qt/5.3/gcc_64/lib/libQt5Widgets.so.5 (0x00007f029ffb9000) libQt5Xml.so.5 => /home/mauker/Qt/5.3/gcc_64/lib/libQt5Xml.so.5 (0x00007f029fd7b000) libQt5Network.so.5 => /home/mauker/Qt/5.3/gcc_64/lib/libQt5Network.so.5 (0x00007f029fa17000) libQt5Gui.so.5 => /home/mauker/Qt/5.3/gcc_64/lib/libQt5Gui.so.5 (0x00007f029f2f3000) libQt5Core.so.5 => /home/mauker/Qt/5.3/gcc_64/lib/libQt5Core.so.5 (0x00007f029ebbf000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f029e8a1000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f029e68a000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 […]

Docker:如何创build一个堆栈,多个图像或一个基础图像?

我是使用Docker的新手,我对使用一个图像库作为我的堆栈有疑问,或者我必须根据需要定义每个图像。 例如,阅读有关使用docker创build网站的博客,作者build议使用以下Stack: 图片来自http://project-webdev.blogspot.de/2015/05/create-site-based-on-docker-part4-docker-container-architecture.html 现在看到这个结构,如果我们在Docker注册中心中有像mongoDB,io.JS,nginx这样的技术的基础镜像,为什么在这个例子中我们没有使用那些使用单个Docker基础镜像的镜像呢?

.War在Windows上部署但无法在Linux服务器上部署(Tomcat 7)

正如标题所介绍的,我试图使用Tomcat 7部署的.War文件不能在运行Linux的机器上运行。 它可以在Windows上运行,当然也可以在Tomcat 7上部署。 我试图单独追踪这个问题,并在网上search相关的问题,包括这个论坛,迄今为止没有成功。 这就是为什么我创build这个线程寻求帮助/提示。 我跟踪的错误消息如下: Sep 14, 2015 4:46:05 PM org.apache.catalina.deploy.NamingResources cleanUp WARNING: Failed to retrieve JNDI naming context for container [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SmartHomeReasoner]] so no cleanup was performed for that container javax.naming.NameNotFoundException: Name [comp/env] is not bound in this Context. Unable to find [comp]. at org.apache.naming.NamingContext.lookup(NamingContext.java:819) at org.apache.naming.NamingContext.lookup(NamingContext.java:167) at org.apache.catalina.deploy.NamingResources.cleanUp(NamingResources.java:986) at org.apache.catalina.deploy.NamingResources.stopInternal(NamingResources.java:968) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) […]

Tomcat Intellij想法:远程部署

RackSpace Cloud Server Ubuntu-12.04,Intellij Idea-11.1.2,Windows-8,Tomcat-7.0.26,JDK-6。 在Intellij的想法,当我尝试运行我的远程Tomcat 7服务器上的jsf项目它说: 运行servername时出错:无法连接到IP地址 :1099 看来问题是关于1099的JNDI端口,但我不能激活它。 Tomcatconfiguration是。 像那样: 我试过了什么? 在服务器端设置CATALINA_OPTS或JAVA_OPTS: CATALINA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false 和 JAVA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false 但这一个没有工作,有什么想法?

在Tomcat上部署war文件

有没有办法在Tomcat服务器上部署一个给定的战争文件? 我想这样做,而不使用Web界面。

如何打包我正在使用的Python库,所以我可以分发他们与我的应用程序,并有尽可能less的依赖关系

如何打包我正在使用的Python库,所以我可以分发他们与我的应用程序,尽可能less的依赖关系,也不要与已经在我的系统上的不同的lib /版本冲突。 LE:对不起,我忘了指定。 我将在linux上这样做。 而我并不是指使我的应用程序像deb / rpm等可安装的文件,但如何组织我的文件,例如我将使用cherrypy和sqlalchemy我将运送这些与我的应用程序,而不是把用户通过自己安装所有的依赖的痛苦。

一个简单的Python部署问题 – 一个痛苦的世界

我们有几个在Linux上运行的Python 2.6应用程序。 其中一些是Pylons Web应用程序,另一些则是我们使用nohup从命令行运行的长时间运行的stream程。 我们也在开发和生产中使用virtualenv 。 将这些应用程序部署到生产服务器的最佳方式是什么? 在开发中,我们只需将源代码树放入任何目录,build立一个virtualenv并运行 – 很简单。 我们可以在生产中做同样的事情,也许这是最实际的解决scheme,但是在生产环境中运行svn update只是感觉有点不对。 我们也尝试了fab ,但它从来没有第一次工作。 对于每个应用程序,其他事情都会出错 我觉得整个过程太困难了 ,因为我们要实现的目标基本上是非常简单的。 这是我们从部署过程中需要的。 我们应该可以运行一个简单的命令来部署应用程序的更新版本。 (如果最初的部署涉及到一点额外的复杂性,那也可以。) 当我们运行这个命令的时候,它应该把某些文件拷贝到Subversion版本库或者从本地工作拷贝到服务器上指定的“环境”,这可能意味着一个不同的virtualenv。 我们在同一台服务器上同时安装了应用程序和生产版本,因此需要将它们分开。 如果它安装到站点包中,那也可以,只要它可以工作。 我们在服务器上有一些configuration文件应该被保留(即不被覆盖或被部署过程删除)。 其中一些应用程序从其他应用程序导入模块 ,因此它们需要能够以某种方式将对方引用。 这是我们遇到的最麻烦的部分! 我不关心它是否通过相关import,网站包或其他方式工作,只要它在开发和生产中都可靠地工作。 理想情况下,部署过程应该自动安装我们应用程序所依赖的外部包(例如psycopg2)。 那真是它! 它能有多难?

使用SSH时转义引号

我试图为我的PHP应用程序构build一个简单的部署脚本。 我知道这个工作有几种工具(Capistrano,Phing等),但是对于我的简单部署例程来说,它们看起来像是很多工作。 我使用sshpass来避免一遍又一遍地input密码。 但上传我的压缩安装程序后,我需要ssh进入服务器并运行一些命令。 其中之一是sed。 所以,报价正在打破我的脚本。 这是这样的: sshpass -p foo ssh user @ host“ cd / www / htdocs / foo / bar 回声“解除和删除安装程序” tar -zxf install.tar.gz sed“s / define('ENVIRONMENT','development'); / define('ENVIRONMENT','production');” index.php> tmp && mv tmp index.php sed“s / define('ENVIRONMENT','development'); / define('ENVIRONMENT','production'); /”admin / index.php> tmp && mv tmp admin / index.php “ 正如你所看到的,我使用双引号来启动我的SSH语句,但是我也需要在sed上使用它们。 […]

如何使Linux的Qt应用程序的二进制分发

我正在开发跨平台的Qt应用程序。 这是免费的,虽然不是开源的。 所以我想把它作为一个编译的二进制文件分发。 在Windows上没有问题,我把我编译的exe与MinGW和Qt的DLL一起打包,一切都很顺利。 但是在Linux上有一个问题,因为用户可能在他/她的系统中共享了与我的系统非常不同的库。 Qt部署指南提出了两种方法:静态链接和使用共享库。 第一个生成巨大的可执行文件,也需要Qt依赖的许多库的静态版本,即我将不得不从划痕重build所有这些库。 第二种方法基于在应用程序启动之前重新configurationdynamic链接器,对我来说似乎有点棘手。 任何人都可以分享他/她在Linux下分发Qt应用程序的经验吗? 我应该使用什么方法? 我可以面对什么问题? 还有其他方法可以完成这项工作吗?

部署依赖于共享库的Linux应用程序的可接受方法是什么?

我有一个依赖于Qt, GDCM和VTK的应用程序,主要的构build环境是Qt。 所有这些库都是跨平台的,可以在Windows,Mac和Linux上编译。 在Windows上部署后,我需要将应用程序部署到Linux。 我使用的vtk和gdcm版本是git(大约一个月前)的中继版本,比我能在Ubuntu 11.04上得到的更新,这是我当前(也是唯一)的Linux部署目标。 部署依赖于这些库的应用程序的公认方法是什么? 我应该在这里静态链接,以避免LD_LIBRARY_PATH? 我在LD_LIBRARY_PATH上看到有冲突的报告; 像这样的教程表明,这是修改库path以通过系统重启使用共享库的“正确方法”。 其他人 build议我不应该设置LD_LIBRARY_PATH。 在GDCM的默认版本中,安装程序已经把库放到/usr/local/lib目录下,所以当我运行ldd <my program>时候,这些库会被看到。 另一方面,VTK将它的库放到/usr/local/lib/vtk-5.9 ,这个文件不是大多数用户机器上的LD_LIBRARY_PATH的一部分,所以除非对系统进行了一些修改。 将VTK文件复制到“/ usr / local / lib”不允许“ldd”查看文件。 那么,如何让我的应用程序看到VTK使用库? 在windows上,部署dll非常简单,因为我可以将它们包含在安装程序中,应用程序可以find它们,因为它们位于本地目录中。 这种方法在Linux中不起作用,所以我要让用户从任何适当的源代码安装Qt,GDCM和VTK,并使用默认位置,然后让应用程序指向这些默认位置。 但是,由于VTK将事物放入非标准位置,我是否也希望用户修改LD_LIBRARY_PATH? 我应该包括我想要的特定版本的库,然后弄清楚如何使可执行文件在这些库的本地目录中查找,并忽略在库path中find的那些文件?