当前位置: 首页 > news >正文

Linux基础-基础命令和相关知识4

不同操作系统安装包及安装方法

安装包后缀适用系统安装方法
.rpm基于Redhat的Linux发行版,例如centos、redhat、fedorarpm -i
.deb基于Debian的Linux发行版,例如debian、ubuntudpkg -i
.exewindows操作系统的可执行程序格式图形界面双击
源码包程序员编写的源代码通过远程登陆手段将本地源码包传送到远程服务器

java源码包如何在Linux操作系统中形成可执行的程序

编译器是一种计算机程序,它的作用是将一种编程语言转化为另一种编程语言的程序代码。

cd /
cp -a  /usr/bin/ls  /data 
cat ls
得到编译器编译完成的shell语言

通过其他程序编写的源码包,比如java,c++等,在shell里用bash命令去读(bash hello.c(c++写出来的程序))是读不出来的,需要通过编译器将编程语言进行转换,例如gcc(常用)、make、cmake等。

将hello.c源码包变成像ls一样的可执行程序,需要经过5个步骤。

tips:源代码   -----      c++、java等程序编写的语言(高级语言)

      汇编语言-----      本质是二进制,但用符号对复杂繁琐的二进制语言进行替代

      二进制   -----       低级语言,01010101.....

程序的本质:数据+执行代码,(实现某个特定任务的一串代码)

程序与函数的关系

1、函数是程序的组成单元,一个完整的程序通常由多个函数组成。

2、程序往往用于实现复杂的功能和需求,而函数的功能往往单一。

3、函数往往是为了实现特定单一功能而被编写出来的,具有可重用性,而程序往往需要实现复杂的任务,不具有可重用性。

step 1:预处理 (删除不需要的符号以及注释等)

step 2:编译(将经过预处理的文件进行一系列的词法、语法分析、语义分析和优化后,生成相应的汇编语言)

step 3:汇编(将汇编指令与机器指令进行对照,将汇编语言转化为机器可以执行的命令)

step 4:链接(通过调用链接器ld来链接程序运行所需要的一大堆文件,以及它所依赖的库文件(函数库等),左后生成可执行文件)

ldd usr/bin/ls    ldd命令可用于查询可执行文件和共享库所依赖的动态链接库
gcc -E hello.c -o hello.i    将源码包hello.c进行预处理,生成hello.i预处理文件
gcc -s hello.i -o hello.s    将hello.i预处理文件进行编译,形成汇编文件hello.s
gcc -o hello.s -o hello.o    将汇编文件hello.s进行汇编,形成了目标文件hello.o
gcc hello.o -o hello         将目标文件hello.o进行链接,形成可执行文件hellogcc hello.c -o hello         将以上四步一步到位(预处理、编译、汇编、链接)

Linux安装包的发展历程

1、只能编译,安装源码包通过编译得到可执行程序。(✔)

2、红帽rpm软件,建立统一的数据库文件,支持离线,从本地获得rpm安装包,可以检测但无法解决依赖关系。

3、yum仓库,支持在线和离线两种方式,可以通过网络远程下载安装包到本地安装,也可以直接本地安装(需要搭建本地yum仓库),可以检测解决依赖关系。(✔)

Red Hat Package Manager

rpm,不仅仅是一个命令,也是一个数据库,记录了软件包安装、卸载等变化信息,自动分析软件包依赖关系。

软件素材参考:http://www.rpm.org

一般命名格式:软件包的名字+版本+发行次数+支持系统+cpu架构+后缀(.rpm)

rpm命令功能

1、查询、验证rpm包的相关信息

2、安装、升级、卸载rpm软件包

3、维护rpm数据库信息等综合管理操作

命令作用
rpm -q  软件的名字查询软件是否安装
rpm -qa查询安装的所有软件
rpm -ql 软件名指定软件包在当前系统中安装的所有目录以及文件列表
rpm -qc 软件名已安装的软件的配置文件
协议(依托协议)软件(协议的最终体现方式)名字安装包名字程序名字
dnsbindnamed
httpapachehttp/httpdhttpd
ftpvsftpdvsftpdvsftpd

挂载安装软件包的过程

得到安装包的方式

1、网上下载

2、挂载

mount /dev/cdrom /opt/
cd /opt/packages

rpm -i  (安装)

       -v   (显示过程/模式)

       -h (详细进度)

rpm -e (卸载)

rpm -e httpd (可以写缩写)

验证

[root@localhost ~]# cd /etc/pki
[root@localhost pki]# ls
CA  ca-trust  fwupd  fwupd-metadata  java  nssdb  nss-legacy  rpm-gpg  rsyslog  tls
[root@localhost pki]# ls rpm-gpg
RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Debug-7  RPM-GPG-KEY-CentOS-Testing-7

yum仓库

为了解决依赖关系才出现的技术

yum仓库的配置文件

[root@localhost pki]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo  CentOS-CR.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Sources.repo  CentOS-Vault.repo  CentOS-x86_64-kernel.repo
cat CentOS-Base.repo

如何实现安装服务

元信息:软件包在yum仓库中的具体位置,以及依赖关系

元数据的文件夹:repodata(只有这一个名字)

成为yum仓库的必要条件,必须要有元数据以及软件包

Yum本地仓库的建立过程

mount /dev/sr0(cdrom)   /opt      
cd etc/yum.repos.dmkdir bak
mv *.repo ./bak/
vim cxk.repo
[cxk]
name=cxk
baseurl=http:///opt
gpgcheck=0yum clean all                     清除元数据
yum makeacahe                     生成新的元数据yum install httpd -y
yum remove httpd -yyum history

生成元数据的过程

cp -a opt/Packages /data/
cd /data/
createrepo /data/


http://www.mrgr.cn/news/59856.html

相关文章:

  • 实现mysql和es的数据同步以及es的集群
  • 刷c语言练习题13(牛客网)
  • 【数据结构与算法】《Java 算法宝典:探秘从排序到回溯的奇妙世界》
  • 银河麒麟V10系统下libopenblas.so.0和libllmlmf库的安装
  • QT 实现自定义动态选择指示器
  • GPU的使用寿命可能只有1~3年
  • SpringBoot整合API接口做快递智能识别
  • 蓝桥杯普及题
  • Python实现基于WebSocket的stomp协议调试助手工具
  • 软硬链接与动静态库的加载
  • 鹏哥C语言95---第17次作业:指针初阶+结构体
  • 最短路径问题的经典算法——Dijkstra[被证明具有普遍最优性(Universal Optimality)]
  • JavaCV 之均值滤波:图像降噪与模糊的权衡之道
  • Python之Excel自动化处理(三)
  • ReactNative 启动应用(2)
  • Java的访问修饰符
  • 快速入门HTML
  • dd命令简介
  • FreeRTOS 6:任务创建函数xTaskCreate分析
  • 用canvas对图片压缩