linux怎么制作运行包,linux下的.run包的制作

首先开始我的唠叨几句,网上有很多.run包的制作,那为什么我还要写呢?原因很简单,他们的执行不了啊,各种错误,今天我给大家讲一个能执行的,一步一步手把手教你们。

先给大家讲讲思路:

编程前需要有的东西:install.sh文件 hello.c文件(这些文件我都放在hello文件夹,没要求,大家随意)

目标:hello_install.run文件

步骤:

1.将hello.c编写成可应用程序hello,再将hello打包为hello.tar.gz

2.编写install.sh文件

3.执行命令cat install.sh hello.tar.gz > myinstall.sh

4.运行myinstall.sh文件,只需执行命令sh myinstall.sh

ok,现在开始实现

第一步是比较简单的,简单过过

1.#include

int main()

{

printf("hello");

return 0;

linux命令:

gcc -c hello.c

gcc -o hello hello.o

此时生成hello应用程序,

对hello 进行打包:

tar -zcvf hello.tar.gz hello

2.编写install.sh文件

代码如下:

1>#!/bin/bash

2>lines=7

3>tail -n +$lines "$0" > /tmp/hello_tmp.tar.gz

4>tar -xvzf /tmp/hello_tmp.tar.gz -C /tmp

5.>cp /tmp/hello /usr/bin

6>exit

第三行的目的是让程序从本脚本的第7行执行,将执行的结果放到hello_tmp.tar.gz,好多人就说了第7行后面没东西啊,怎么执行,问的很好,那我现在要问问你我们执行最终要执行的是什么文件?我们要执行的是myinstall.run文件对吧,那我们将这些语句放到myinstall.run包中就清楚了,一会说

3.cat install.sh hello.tar.gz > myinstall.run

//我们都知道这是数据流,将install.sh文件读入到myinstall.run中,读完后,hello.tar.gz接着读入,我们可以用vim工具对myinstall.run文件进行查看,回答现他大概是这样的:

myinstall.run内容:

#!/bin/bash

lines=7

tail -n +$lines "$0" > /tmp/hello_tmp.tar.gz

tar -xvzf /tmp/hello_tmp.tar.gz -C /tmp

cp /tmp/hello /usr/bin

exit

........乱码

...................

很明显他的结构是这样的,上面是install.sh文件,下面是乱码,很多朋友这时就郁闷了我靠,这些乱码是什么东西,当然是hello.tar.gz的文件形式了,大家知道linux的功能实现都是通过文件实现的,其实hello.tar.gz也是文件。

接着我为大家解释下上面留着下面说的问题,myinstall.run的第三行(也就是之前的install.sh的第三行)将乱码的所有都打包到/tmp/hello_tmp.tar.gz中,我们知道乱码实际上就是hello.tar.gz,这时我们好像明白了什么,这不类似拷贝嘛,对啊,拷贝过去解压,将应用程序拷贝到/usr/bin下,这就安装成功了。

是啊,我们只能装成功了,细心的网友可能又要说我靠了,咱把hello.tar.gz文件像类似拷贝的拷到hello_tmp.targz中,解压,安装,那我直接对hello.tar.gz进行解压,安装不就行了,绕那么大圈干嘛,闲的没事干,好的,这个其实就是本文做.run包的关键。我们回顾一下,我们是用数据流将install.sh和hello.tar.gz读入到文件myinstall.run中的,读完后的myinstall.run已经包含了hello.tar.gz这个文件数据,那么我们只需要在以后只要myinstall.run文件就可以对hello就行安装了,不再用任何其他文件,是不是省事多了。

写了这么多,有些地方有些啰嗦,可我明白编程中很多时间都耗在了下问题上,可能一些别人看着不起眼的地方,有些人会花费很长的时间,希望我的文章能够对特别需要它的人们起到很大的帮助。大家多多评论,互相交流,互相进步。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值