背景:想要在Jenkins上跑appium的自动化测试,所以想要在Jenkins服务器(Linux远程)上安装appium服务,故而研究了一下appium+Linux下安装。虽然有无数的前辈踩过坑,但自己还是吭哧吭哧搞了一天半,终于大功告成。详细安装步骤,以及曲折的安装试错过程如下:
 
1、nodeJs安装
apt-get install node.js
 
2、npm安装
apt-get install npm
 
3、cnpm安装
npm install -g cnpm --registry=https://registry.npm.taobao.org // -g全局安装
 
4、appium安装
在非root用户权限下安装
cnpm install -g appium //appium server安装

cnpm install wd //appium client安装

说明:新版appium(我的是当前最新版本1.7.1)在root权限下,可以安装成功,但无法启动appium
5、极其曲折的appium安装过程
1)、最开始按appium官网教程来安装,但执行npm install -g appium 一直卡在第一步文件下载中,N久之后,返回timeout的错误
2)、尝试FQ,设置npm代理(据说和浏览器代理一致即可)
npm config set proxy http://server:port(或npm config set https-proxy http://server:port
 
查看当前代理:npm config get proxy
 
然鹅,没用。不知道有没有成功的小伙伴。
先取消npm代理:
npm config delete proxy(npm config delete https-proxy)
 
3)改为npm淘宝镜像安装
npm install -g appium --registry=https://registry.npm.taobao.org
理论上应该是可以的,但可能当时自己电脑网络有问题,还是timeout。没办法只好让同事在他电脑上安装(root权限下)。但由于网络极慢,安装了太久,我并不知道安装过程 是否报错,同事说应该安装好了,让我试试。
执行appium命令:appium -v ,报错 appium:command not found
但/usr/local/lib/node_modules下明明已经安装了appium
尝试:
  • 我想可能是缺少appium的环境变量,到profile文件中配置APPIUM_HOME和PATH环境变量,仍是报错 appium:command not found
  • /usr/local/bin下有已经存在的npm,newman等软连接,而且可以直接执行,我强行手动建立软连接:ln -s /usr/local/lib/node_modules/appium/lib/appium.js /usr/local/bin/appium,再执行appium -v ,报了一堆错。(ps:当然会报错,只怪小白的我怕根本没搞清楚appium执行原理,后来发现需要软连接源文件并不是这个目录下的,而是/usr/local/lib/node_modules/appium/build/lib/main.js)
4)但网上看很多人说新版appium不能使用root权限安装,否则启动失败。最后决定卸载appium,再去非root权限用户下,重新安装appium。
appium卸载命令:npm uninstall appium
 
5)非root用户权限安装appium
cnpm install -g appium //cnpm已经安装好
还是报错,permission denied
赋予当前用户权限:chown -R dev node_modules //node_modules目录及其子目录下的所有文件
再执行安装命令 cnpm install -g appium
虽然速度稍慢,但还是比较顺利的安装中,直到在安装的收尾阶段,突然报了错,还是权限问题
我索性使用root权限, sudo ln -s ../lib/node_modules/appium/build/lib/main.js /usr/local/bin/appium
appium软连接创建成功,再执行appium,惊喜的发现真的成功了。截图纪念。

appium+Linux环境安装配置的更多相关文章

  1. appium 使用环境安装配置记录

    一.安装配置Java (cmd输入java,回车,没有出现“不是内部或外部命令,也不是可运行的程序或批处理文件”,即为成功) 二.安装node.js (cmd输入node -v,显示版本号即为成功) ...

  2. Linux环境安装配置Swftools

    系统:CentOS6.5的64位版本   这里有一位仁兄的几个错误处理办法,下面是swftools的安装配置步骤:   1.安装所需的库和组件.机器之前安装过了,主要安装的是下面几个组件.如果不安装会 ...

  3. Linux环境安装配置JDK

    本文安装环境为Ubuntu14 64位,jdk版本为jdk1.6.0_38,安装文件名为jdk-6u38-linux-x64.bin(根据系统不同,下载不同的安装文件) 下载地址:http://www ...

  4. Linux环境安装配置maven

     按照下面命令执行即可 1.下载apache-maven-3.5.3-bin.tar.gz 并上传到服务器上 提取地址:https://pan.baidu.com/s/11nxZp84lmonRBCR ...

  5. linux环境安装配置nginx

    安装依赖 yum install gcc yum install pcre-devel yum install zlib zlib-devel yum install openssl openssl- ...

  6. Linux下xampp集成环境安装配置方法 、部署bugfree及部署禅道

    XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包.XAMPP 是一个易于安装且包含 MySQL.PHP 和 Perl 的 Apache 发行版.XAMPP 的确非 ...

  7. LNMP1.3一键安装Linux环境,配置Nginx运行ThinkPHP3.2

    LNMP1.3一键安装Linux环境,配置Nginx运行ThinkPHP3.2 你是否遇见过:安装LNMP1.3环境后,运行ThinkPHP 3.2,只能打开首页,不能访问控制器,报404错误. 按照 ...

  8. Linux 下安装配置 JDK7

    Linux 下安装配置 JDK7 配置环境(debian 7) 自从从Oracle收购Sun近三年来,已经有很多变化.早在8月,甲骨文将“Operating System Distributor Li ...

  9. (转载)Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记

    Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记 Linux下配LMAP环境,花了我好几天的时间.之前没有配置过,网上的安装资料比较混乱,加上我用的版本问题,安装过程 ...

随机推荐

  1. 版本控制之二:SVN的初步使用(转)

    转自http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407979.html 上一篇介绍了VisualSVN Server和Tortoise ...

  2. ubuntu上安装adt时无法在线安装的问题

    安装了新的ubuntu系统之后,就得重新布置android开发环境了. 找了网上的教程,一步一步做,到了在eclipse上在线下载adt总是出现 Unable to connect to reposi ...

  3. ssh连接虚拟机失败解决办法

    首先,你需要知道本机IP跟虚拟机IP,然后让两者互相ping一下,看能否ping通 让主机ping虚拟机 :ping (虚拟机ip) 出现如下: 表示主机可以ping通虚拟机 然后让虚拟机ping主机 ...

  4. 解决Qt编译动态链接库could not find or load the Qt platform plugin "windows" in.问题

    最近用Qt5做了一个项目的界面,在编译成可执行文件EXE之后,运行文件,提示: This application failed to start because it could not find o ...

  5. SSH框架的多表查询和增删查改 (方法一)上

    原创作品,允许转载,转载时请务必标明作者信息和声明本文章==>  http://www.cnblogs.com/zhu520/p/7772823.html   因为最近在做Android 练习的 ...

  6. SSH框架的多表查询和增删查改 (方法一)中

    原创作品,允许转载,转载时请务必标明作者信息和声明本文章==>http://www.cnblogs.com/zhu520/p/7774144.html   这边文章是接的刚刚前一遍的基础上敲的  ...

  7. 静态代理设计模式(StaticProxy)

    静态代理设计模式: 要求:真实角色,代理角色:真实角色和代理角色要实现同一个接口,代理角色要持有真实角色的引用. 在Java中线程的设计就使用了静态代理设计模式,其中自定义线程类实现Runable接口 ...

  8. Problem B: 大整数的加法运算 升级版

    #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> ...

  9. 借助 frp 随时随地访问自己的树莓派

    前言 看了知乎上的一个「树莓派」是什么以及普通人怎么玩? 的高票回答,双十一时间,果断买了一个树莓派 3. 周一(11.13) 到的货.我目前只想实现一个简单的功能 -- 想从任意位置访问我的树莓派. ...

  10. .net core 同时实现网站管理员后台、会员、WebApi登录及权限控制

    我们在开网站信息系统时,常常有这样几个角色,如后台的管理员,前台的会员,以及我们各种应用的WebAPI 都需要进行登录操作及权限控制,那么在.net core如何进行设计呢. 首先我使用的是.net ...