读书笔记 —— 《嵌入式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

程序的安装——软件安装包的制作、软件仓库的使用相关推荐

  1. Pocket PC/Smartphone软件安装包之制作DIY

    Pocket PC/Smartphone软件安装包之制作DIY<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:of ...

  2. 使用HM NIS Edit制作软件安装包

    使用HM NIS Edit制作软件安装包 使用HM NIS Edit制作软件安装包 背景 准备工作 制作流程 结束语 背景 由于参与的横向项目需要,需要对实验室开发的VSP处理软件进行安装包制作,主要 ...

  3. 资料汇总更新|软件安装包、书籍、源码、技术文档、手册……

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...

  4. 005-电脑软件安装包20190408

    电脑软件安装包20190408 现在的人总是喜欢简单强大,总是要偷懒,总是要用零配置的现成的. 电脑软件也是如此,不喜欢用AutoHotkey或Delphi自己制作,总是用网上下载的软件. 为了防止出 ...

  5. 南方CASS11软件安装包

    本文提供一个适用于AutoCAD2010-2023的CASS软件安装包CASS11 一.软件安装包 南方CASS11软件安装包: 链接:https://pan.baidu.com/s/1FzVRDZ_ ...

  6. [转]一次.NET Web应用程序安装包的制作经历:Sql数据库安装的3种方式 配置IIS及Web.Config文件...

    本文转自:http://www.cnblogs.com/moonspell/archive/2007/07/27/832433.html 原文如下: -----------   一次难得的安装包制作经 ...

  7. windows安装程序制作教程。《inno setup》可将多个安装程序打包成一个安装包,一次安装操作全部安装完成

    1,下载 inno setup 官网地址:http://www.jrsoftware.org 下载地址:https://mlaan2.home.xs4all.nl/ispack/innosetup-5 ...

  8. 使用Qt Installer Framework制作软件安装包

    概述 Qt Installer Framework(缩写QIF)是Qt官方用于生成软件安装包的工具.包括Qt Creator和Qt Installer Framework自身的安装包都是由这个工具制作 ...

  9. 超详细的软件安装包制作打包流程(C/S客户端)

    C/S客户端开发完成,需要将程序交付给用户,直接压缩发给用户是可以的(只是有点不专业),如果能有一个比较好看的安装界面,那档次就不一样了. 本文介绍怎么使用Adanced Installer 17.9 ...

最新文章

  1. MySQL中INSERT INTO SELECT的使用
  2. 你们AI圈儿,已经引起了罗马教皇的警惕
  3. Docker系列之.NET Core入门(三)
  4. java后台异步任务执行器TaskManager
  5. 决策树的python实现
  6. 打造自己的专业图像工具-Visual C++ 2005图像编程系列【四】
  7. swift和java_Swift和Java关于字符串和字符的比较
  8. 引用数据类型的一些知识
  9. kdj的matlab代码,8个字符的Kdj股票技术指标公式源代码(插图)
  10. HTML5_用语义化标记重新定义博客
  11. JS边框图片基础知识
  12. Python爬取满7天赎回零费率基金:短线基金定投
  13. 2015中国国内元器件分销商10亿俱乐部20强榜单
  14. 怎么学计算机打字输入,电脑怎么学习打字
  15. 我的世界服务器显示无法解析主机名什么意思,我开了我的世界服务器可为什么它出现无法解析主机名...
  16. uniapp获取通知栏内容 监听通知栏信息
  17. uni-app 自定义table-demo 左右列固定冻结
  18. vue.config.js中lintOnSave配置
  19. 如何配置nginx服务器中access_log日志分析?
  20. 美国商会呼吁对ICO进行澄清

热门文章

  1. 计算机网络——已知 IP 地址,求解子网的网络地址
  2. 使用PicGo配置七牛云图床(图文步骤详细)
  3. 利用网络,下载网络资源
  4. 主成分分析-简单人脸识别(二)
  5. 基于主成分分析(PCA)的人脸识别
  6. 为什么网络钓鱼攻击仍然有利可图----以及如何阻止它
  7. 【地理】从物理到地理之自然地理提纲整理2——大气圈
  8. 【计算机组成原理 学习总结】第六章 总线系统(2)
  9. ExtJs自学教程(2):从DOM看EXTJS
  10. Wt(C++ Web) 源码编译以及cmake配置