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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值