程序的安装——软件安装包的制作、软件仓库的使用
读书笔记 —— 《嵌入式C语言自我修养》
软件安装
linux
安装包的制作
编译
软件安装包路径
使用dpkg命令来制作安装包 及 安装包的卸载
软件仓库
更新源
查看具体需要更新的软件包 更新软件包
软件安装
软件安装的过程其实就是将一个可执行文件安装到ROM的过程。ROM中存储的数据断电后不会消失,常用来保存程序的指令和数据,但ROM不支持随机存取,因此程序运行时,会首先将指令和数据从ROM加载到RAM,然后CPU到RAM中取指令就可以了。
下载的软件安装包里包含了可以在计算机上运行的可执行文件,开发者为了方便用户使用,将可执行文件、程序运行时需要的动态共享库、安装使用文档等打包压缩,生成可运行的自解压安装包格式。
使用安装包安装软件就是将包中的可执行文件解压出来,然后将可执行文件和动态共享库复制到指定的安装目录,并把这些安装信息告诉操作系统。当用户要运行这个软件时,操作系统就会从安装目录找到这个可执行文件,把它加载到内存执行。
在Linux环境下,一般将可执行文件直接复制到系统的官方路径/bin、/sbin、/usr/bin下,程序运行时直接从这些系统默认的路径下去查找可执行文件,将其加载到内存运行。
linux
安装包的制作
Linux操作系统一般可分为两派:Redhat系和Debian系。Redhat系使用RPM包管理机制,而Debian系,像Debian、Ubuntu等操作系统则使用deb包管理机制。
在制作deb包时,除了可执行文件,还需要一些控制信息来描述这个安装包,如软件的版本、作者、安装包要安装的路径等,这些控制信息放在一个叫作control的文件里。下面我们就写一个简单的helloworld程序,并为它制作一个deb包。
helloworld.c
#include <stdio.h>
int main(void)
{int j,j,count=0;printf("this is my first program!\n");while(1){printf("hello world!\n");for(i=0;i<20000;i++)for(j=0;j<20000;j++);}return 0;
}
编译
gcc -o helloworld helloworld.c
软件安装包路径
创建一个helloworld同名目录,然后进入该目录,分别创建DEBIAN、usr/local/bin/目录,并在DEBIAN目录下创建control文件,将可执行文件helloworld复制到usr/local/bin/目录下,操作完成后helloworld的目录结构如下所示制作一个软件安装
usr/local/bin/表示deb包的默认安装路径
control文件用来记录安装包的安装信息
package:helloword
version:1.0
architecture:i386
maintainer:wit
description:deb package demo
使用dpkg命令来制作安装包 及 安装包的卸载
# dpkg -b helloworld/ helloword_1.0_i385.deb
//安装
# dpkg -i helloword_1.0_i385.deb
//卸载程序及配置文件
# dpkg -P helloworld
//卸载程序
dpkg -r helloworld
软件仓库
因为每个人都可以编译、制作deb包,并随意发布到网上,这就很容易造成混乱软件包鱼龙混杂,质量得不到保证,Ubuntu操作系统采用一个软件仓库来管理这些deb包,第三方开发者发布的软件和工具首先要通过官方验证,然后把这些包放到一个官方网站服务器上,提供给用户下载使用。当用户使用apt-get命令安装软件时,只能到这个服务器下载。考虑到全球各个地方的网络环境差异,官方网站一般会在全球各地配置多个镜像服务器,Ubuntu用户可以根据自己的网络状况,到网速最快的服务器上去下载和安装deb包。这些服务器我们也称为软件源(repository),简称为“源”。这些服务器的网络地址保存在/etc/apt/source.list文件中。当用户使用apt-get install安装软件时,apt-get工具就会根据这个source.list文件中的服务器地址去下载对应的软件包。
访问国外的网站速度可能会慢很多,选择一个国内镜像源,如阿里云软件源、中科大软件源等服务器地址,添加到/etc/apt/source.list文件中,修改后,需要更新源。
更新源
#apt-get update
这个命令的作用是访问/etc/apt/source.list文件中的每一个服务器,读取可以支持下载的软件列表,并保存到本地计算机中(/var/lib/apt/lists)。当你要安装的软件不在软件列表中时,很可能就会安装失败。另一个作用是本地已经安装的软件如果和软件列表中的版本不一致,则系统就会提示软件需要更新。
查看具体需要更新的软件包 更新软件包
# apt-get list --upgradable
# apt-get update
程序的安装——软件安装包的制作、软件仓库的使用相关推荐
- Pocket PC/Smartphone软件安装包之制作DIY
Pocket PC/Smartphone软件安装包之制作DIY<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:of ...
- 使用HM NIS Edit制作软件安装包
使用HM NIS Edit制作软件安装包 使用HM NIS Edit制作软件安装包 背景 准备工作 制作流程 结束语 背景 由于参与的横向项目需要,需要对实验室开发的VSP处理软件进行安装包制作,主要 ...
- 资料汇总更新|软件安装包、书籍、源码、技术文档、手册……
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...
- 005-电脑软件安装包20190408
电脑软件安装包20190408 现在的人总是喜欢简单强大,总是要偷懒,总是要用零配置的现成的. 电脑软件也是如此,不喜欢用AutoHotkey或Delphi自己制作,总是用网上下载的软件. 为了防止出 ...
- 南方CASS11软件安装包
本文提供一个适用于AutoCAD2010-2023的CASS软件安装包CASS11 一.软件安装包 南方CASS11软件安装包: 链接:https://pan.baidu.com/s/1FzVRDZ_ ...
- [转]一次.NET Web应用程序安装包的制作经历:Sql数据库安装的3种方式 配置IIS及Web.Config文件...
本文转自:http://www.cnblogs.com/moonspell/archive/2007/07/27/832433.html 原文如下: ----------- 一次难得的安装包制作经 ...
- windows安装程序制作教程。《inno setup》可将多个安装程序打包成一个安装包,一次安装操作全部安装完成
1,下载 inno setup 官网地址:http://www.jrsoftware.org 下载地址:https://mlaan2.home.xs4all.nl/ispack/innosetup-5 ...
- 使用Qt Installer Framework制作软件安装包
概述 Qt Installer Framework(缩写QIF)是Qt官方用于生成软件安装包的工具.包括Qt Creator和Qt Installer Framework自身的安装包都是由这个工具制作 ...
- 超详细的软件安装包制作打包流程(C/S客户端)
C/S客户端开发完成,需要将程序交付给用户,直接压缩发给用户是可以的(只是有点不专业),如果能有一个比较好看的安装界面,那档次就不一样了. 本文介绍怎么使用Adanced Installer 17.9 ...
最新文章
- MySQL中INSERT INTO SELECT的使用
- 你们AI圈儿,已经引起了罗马教皇的警惕
- Docker系列之.NET Core入门(三)
- java后台异步任务执行器TaskManager
- 决策树的python实现
- 打造自己的专业图像工具-Visual C++ 2005图像编程系列【四】
- swift和java_Swift和Java关于字符串和字符的比较
- 引用数据类型的一些知识
- kdj的matlab代码,8个字符的Kdj股票技术指标公式源代码(插图)
- HTML5_用语义化标记重新定义博客
- JS边框图片基础知识
- Python爬取满7天赎回零费率基金:短线基金定投
- 2015中国国内元器件分销商10亿俱乐部20强榜单
- 怎么学计算机打字输入,电脑怎么学习打字
- 我的世界服务器显示无法解析主机名什么意思,我开了我的世界服务器可为什么它出现无法解析主机名...
- uniapp获取通知栏内容 监听通知栏信息
- uni-app 自定义table-demo 左右列固定冻结
- vue.config.js中lintOnSave配置
- 如何配置nginx服务器中access_log日志分析?
- 美国商会呼吁对ICO进行澄清