linux的run包怎么弄,linux下的.run包的制做

首先开始个人唠叨几句,网上有不少.run包的制做,那为何我还要写呢?缘由很简单,他们的执行不了啊,各类错误,今天我给你们讲一个能执行的,一步一步手把手教大家。linux

先给你们讲讲思路:编程

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

目标:hello_install.run文件bash

步骤:工具

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

2.编写install.sh文件it

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

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

ok,如今开始实现gcc

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

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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值