zoukankan      html  css  js  c++  java
  • Linux将.deb以绿色免安装的方式“安装”

    1.如果是xxx.deb文件,一般网上都是教你dkpg -i xxx.deb,但是这种方式类似windows里的安装,可能会在很多地方生成一些“垃圾”数据【比如不需要在dpkg安装应用信息文件里写入此应用的相关信息】;

    我是希望能像绿色版一样,解压后直接就能运行的那种;

    2.后来研究了下xxx.deb文件的结构,发现可以做到;

    3.工具(360zip linux版)【主要是系统自带的打不开xx.xy的压缩包】,以百度网盘linux为例子;

    貌似可以用:dpkg -X ./xxx.deb extractFolder来解压,还没试过(还有个dpkg –unpack package.deb);

    4.在终端里用root权限打开360zip【不然复制什么的很麻烦】,然后打开百度网盘的.deb包,打开里面的data.tar.xz,继续打开data.tar,点进去可以看到opt和usr,

    经过排除usr里面的只是一些图标之类的数据可以不要,打开opt目录,可以看到有baidunetdisk目录,这个就类似windows里绿色软件的根目录了,

    5.将这个目录解压复制到app目录,比如我的自定义安装的app都在/opt/app目录里,即会生成/opt/app/baidunetdisk目录,里面有应用的核心数据;

    6.由于是用root打开的360zip,因此解压出的baidunetdisk目录及子目录都是属于root,需要改下所属者,用sudo chown -R userName baidunetdisk/即可;

    7.运行百度网盘,直接在baidunetdisk里找到可执行文件baidunetdisk运行即可;

    这种方式不能保证所有的.deb程序都能成功运行,毕竟有些程序它就是要在其他地方有数据,而且就是要通过安装程序来在那些地方生成初始数据,这种情况除非你知道应用是需要在哪些地方有哪些额外数据,然后手动去弄好他们,否则还是只能用安装的方式来执行【不过看了下deb的打包应该是很简单的打包,不存在那种能够安装时做很多额外操作的样子】

    如果双击运行不了,可以在控制台用sudo运行试试,也好看下报什么错,比如依赖,然后可以自己去下载解压依赖到指定目录,还可以自己再配置额外的运行库目录;

    8.之所以想做这个是有时候可能我这边会安装一个应用的多个版本,如果用自动安装的很可能会覆盖安装,这是我不希望看到的;

    而且貌似dkpg -i的方式安装没法指定安装目录,网上的--instdir是无效的;【.deb的安装其实就是解压的过程,因此打包时的目录路径是怎样解压后就是怎样无法指定,因此也无法以apt或dkpg同时安装一个应用的多个版本,因为他们打包时的目录都是一样的只会覆盖安装,如果要同时安装要么用tar.gz自己编译安装,要么就是绿色版】

    【有一些包的安装它是直接安装到如/lib这些目录里的,因为它们是基础库的安装,对于这种貌似可以安装多个版本,因为基础库很多都有版本后缀,这样安装的时候就不会重复】

  • 相关阅读:
    JS 利用数组拼接html字符串
    IE浏览器下读取客户端上传的文件大小
    PrintWriter out = response.getWriter() 输出中文乱码问题
    非常有用的Java程序片段
    sql之left join、right join、inner join的区别
    JAVA 数组常用技巧
    java 图片文件格式转换(多页tif转jpg 、jpg转tif)
    SQL Server 字段状态判断语句
    sql server 2008中id如何设为自增
    java基于xml配置的通用excel单表数据导入组件(五、Action处理类)
  • 原文地址:https://www.cnblogs.com/silentdoer/p/11413898.html
Copyright © 2011-2022 走看看