Application Binary Interface
Windows与Linux不兼容
API即Application Programming Interface,API可以在各种不同的操作系统上实现给应用程序提供完全 相同的接口,而它们本身在这些系统上的实现却可能迥异,主流的操作系统有两种,一种是Windows系 统,另一种是Linux系统。由于操作系统的不同,API又分为Windows API和Linux API。在Windows平 台开发出来的软件在Linux上无法运行,在Linux上开发的软件在Windows上又无法运行,这就导致了软 件移植困难,POSIX 标准的出现就是为了解决这个问题
Portable Operating System Interface 可移植操作系统接口,定义了操作系统应该为应用程序 提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称。Linux 和windows都要实现基本的posix标准,程序就在源代码级别可移植了
查看二进制程序所依赖的库文件
ldd /bin/tree
管理及查看本机装载的库文件
#加载配置文件中指定的库文件
ldconfig
#显示本机已经缓存的所有可用库文件名及文件路径映射关系
/sbin/ldconfig –p
配置文件
/etc/ld.so.conf
/etc/ld.so.conf.d/*.conf
缓存文件
/etc/ld.so.cache
安装
rpm -ivh PACKAGE_FILE
升级
rpm -Uvh PACKAGE_FILE upgrade:安装有旧版程序包,则"升级",如果不存在旧版程序包,则"安装"
rpm -Fvh PACKAGE_FILE freshen:安装有旧版程序包,则"升级", 如果不存在旧版程序包,则不执行升级操作
注意项:
不要对内核做升级操作;Linux支持多内核版本并存,因此直接安装新版本内核
如果原程序包的配置文件安装后曾被修改,升级时,新版本提供的同一个配置文件不会直接覆盖老版本的配置文件,而把新版本文件重命名(FILENAME.rpmnew)后保留
查询
rpm -qa #查所有包(已安装的)
rpm -qa 包名或者命令名字
rpm -qi 包名/命令名 #查包信息 yum info
rpm -qf 文件名 #查属于那个包
rpm -ql 包名或者命令名 #查包内文件内容
rpm -qc 包名或者命令名 #之查看配置文件
yum客户端配置文件
/etc/yum.conf #为所有仓库提供公共配置
/etc/yum.repos.d/*.repo: #为每个仓库的提供配置文件
repo仓库配置文件指向的定义:
[repositoryID] #要求唯一,不要重复
name=Some name for this repository #只是这个仓库的名字,没有特别要求
baseurl=url://path/to/repository/
enabled={1|0}
gpgcheck={1|0}
gpgkey=URL
enablegroups={1|0}
failovermethod={roundrobin|priority}
roundrobin:意为随机挑选,默认值
priority:按顺序访问 #优先级,数字越小,优先级越高,多个仓库存在相同的包情况下,优先从高优先级下载
cost= 默认为1000
gpgkey 本机
/etc/pki/rpm-gpg/RPM-GPG-KEY
yum服务器的baseurl形式:
file:// 本地路径
http://
https://
ftp://
注意: yum仓库指向的路径一定必须是repodata目录所在目录
相关变量(可以在repo 文件中使用的变量)
$releasever: 当前OS的发行版的主版本号,如:8,7,6
$arch: CPU架构,如:aarch64, i586, i686,x86_64等
$basearch:系统基础平台;i386, x86_64
$contentdir:表示目录,比如:centos-8,centos-7
$YUM0-$YUM9:自定义变量
yum repolist #查看仓库列表
[all|enabled|disabled|-v]
yum-config-manager --add-repo URL或file
#禁用仓库
yum-config-manager --disable "仓库名"
#启用仓库
yum-config-manager --enable "仓库名"
yum 命令
yum [options] [command] [package ...]
-y #自动回答为"yes"
-q #静默模式
--nogpgcheck #禁止进行gpg check
--enablerepo=repoidglob #临时启用此处指定的repo,支持通配符,如:"*"
--disablerepo=repoidglob #临时禁用此处指定的repo,和上面语句同时使用,放在后面的生效
显示程序包
yum list
yum list [all | glob_exp1] [glob_exp2] [...]
yum list {available|installed|updates} [glob_exp1] [...]
常用命令
yum insatll
yum remove
yum clean all
yum list vim
yum list vim* #可以使用通配符
yum info vim #查看远程包信息
yum search 包名关键字
yum provides /dir/文件名 #通过文件名从仓库中找对应的包,知道文件路径
yum provides */文件名 #不知道文件路径
安装程序包
yum install package1 [package2] [...]
yum reinstall package1 [package2] [...] #重新安装
--downloadonly #只下载相关包默认至/var/cache/yum/x86_64/7/目录下,而不执行install/upgrade/erase
--downloaddir=<path>, --destdir=<path> #--downloaddir选项来指定下载的目录,如果不存在自动创建
yum install nginx --downloadonly --downloaddir=./test/ #把nginx及其相关依赖包下载到test目录里面而不安装
BaseOs AppStream extras PowerTools
1. 启用http 服务,以httpd为例
yum install -y httpd
在/var/www/html 建立仓库目录 例如/var/www/html/rockylinux/8
把每个仓库的两个部分拷贝过来
packages
repodata
1.可以通过光盘拷贝
2.可以配置好yum远程yum源之后,用yum命令考,例如
yum reposync --repoid=PowerTools --download-metadata -p /var/www/html/rockylinux/8
dpkg -i 安装
dpkg -l #列出所有包
dpgk -l tree #tree是否安装上
dpkg -P tree #删除包tree
dpkg -s tree #rpm -qi
dpkg -L tree #rpm -ql
dpkg -S /bin/tree # rpm -qf
仓库路径
/etc/apt/sources.list
找到镜像源 阿里云 或者 清华镜像源
拷贝覆盖 sources.list 文件即可
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
然后执行 apt update
最新使用安装命令直接使用apt,
apt install
apt remove #移除软件
apt purge #移除软件和配置文件
apt search
apt autoremove #删除之前软件所有安装的软件
apt-cache madison nginx #查看仓库中软件包有哪些版本可以安装
#安装软件包的时候指定安装具体的版本
apt install nginx=1.14.0-0ubuntu1.6
#显示系统安装包的统计信息,可以统计已经安装包的数量,大小,占用空间等
apt-cache stats
#Ubuntu安装 apt install command-not-found,可以有跟yum provides 一样的功能,默认应该是安装的,在你敲一个未安装的命令时候
#会提示你,这个命令来自那个包,你应该安装的包
apt install command-not-found
建议min安装,安装常用的软件
apt purge ufw lxd lxd-client lxcfs liblxc-common #24.4没有lxd-client包
apt install iproute2 ntpdate tcpdump telnet traceroute nfs-kernel-server nfs-common lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev gcc openssh-server iotop unzip zip -y
利用编译工具,通常只需要三个大的步骤
./configure
(1) 通过选项传递参数,指定安装路径、启用特性等;执行时会参考用户的指定以及Makefile.in文件生成Makefile
(2) 检查依赖到的外部环境,如依赖的软件包
make 根据Makefile文件,会检测依赖的环境,进行构建应用程序
make install 复制文件到相应路径
一般而言, configure 一个参数 --prefix=软件安装位置
编译之后的软件 -V 可以查看编译参数
./configure 执行阶段失败,不需要重新清理
make 编译阶段 失败,需要重新清理
make -j 指定处理核数
make -j $(egrep -c processor /proc/cpuinfo) && make install
最小化安装一般需要安装下面包
yum install gcc make autoconf gcc-c++ glibc glibc-devel pcre pcre-devel openssl
openssl-devel systemd-devel zlib-devel vim lrzsz tree tmux lsof tcpdump wget
net-tools iotop bc bzip2 zip unzip nfs-utils man-pages