软件-yum-apt-编译例子

软件管理

本地
[app]
name=app
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0

[base]
name=base
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0
ABI 二进制接口 windows和linux不兼容
	linux ELF
	windows PE
gcc编译过程
#分步骤编译过程
gcc -E hello.c -o hello.i	对.c文件进行预处理,生成.i文件
gcc -S helli.c -o hello.s	对预处理文件进行编译,生成汇编文件
gcc -c hello.s -o hello.o	对汇编文件进行编译,生成目标文件
gcc hello.o -o hello		对目标文件进行连接,生成可执行文件
#一步实现编译过程
gcc hello.c -o hello 		直接编译成可执行文件
################################################
查看执行文件需要的程序库####	ldd /usr/bin/ls
rpm
rpm -ivh	安装
rpm -Uvh	升级
rpm -evh	卸载
查询软件包的详细信息:执行rpm -qi rpm包名
查该软件包会向系统里面写入哪些文件:执行 rpm -ql rpm包名
查该软件包包含的脚本:执行 rpm -q --scripts             per 前   post 后
查该软件包包含的配置文件:rpm -qc
查询某个文件是属于那个rpm包的:执行rpm -qf rpm包名
查看最近安装的包:rpm -qa --last
查看包安装后文件有没有被修改 rpm -V openssh
--nodeps 不验证软件包的依赖
--force 强制安装
yum
man 5 yum.conf
yum repolist -v 列出仓库的包数量
 dnf history redo 5  安装
 dnf history undo 5  撤销
yum info vim 
yum provides *mem
yum install -y --downloadonly=httpd  --downloaddir=/tmp/httpd/  #下载包到/tmp下不安装
yum -y install /tmp/httpd/*.rpm                                 #安装/tmp下rpm包
dnf reposync --repoid=nanjing-epel --download-metadata -p /tmp  下载RPM包和meta源数据  使用http共享出去作为epel源
yum自带变量
$releasever  系统版本号
$basearch   系统架构
###################################################################
epel-release.noarch  epel源的包
http://elrepo.org/tiki/HomePage  升级内核的网站  lt长期支持版  ml测试版
###################################################################
[wsb]
name=wsb
baseurl=file:///mnt/  #也可以使用url  http  https  ftp
enabled=1
gpgcheck=0

[epel]
name=epel
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/$basearch
        https://mirrors.aliyun.com/epel/$releasever/Everything/$basearch
gpgcheck=0
gogkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-8
########################################################################
私有源
dnf reposync --repoid=nanjing-epel --download-metadata -p /var/www/html  下载RPM包和meta源数据  使用http共享出去作为epel源
[root@rocky html]# ll
total 0
drwxr-xr-x 4 root root 38 Jul 24 05:52 nanjing-epel
[root@rocky html]# ll nanjing-epel/
total 4
drwxr-xr-x 29 root root  249 Jul 24 05:52 Packages
drwxr-xr-x  2 root root 4096 Jul 24 05:51 repodata
---------------------------------------------------------------------------
[rocky-epel]
name=rocky-epel
baseurl=http://192.168.1.20/nanjing-epel/
gpgcheck=0
---------------------------------------------------------------------------
[root@wsb yum.repos.d]# yum repolist -v
Loading "fastestmirror" plugin
Config time: 0.004
Yum version: 3.4.3
Loading mirror speeds from cached hostfile
Setting up Package Sacks
pkgsack time: 0.002
Repo-id      : rocky-epel
Repo-name    : rocky-epel
Repo-revision: 1658708488
Repo-updated : Mon Jul 25 08:37:56 2022
Repo-pkgs    : 8,837
Repo-size    : 12 G
Repo-baseurl : http://192.168.1.20/nanjing-epel/
Repo-expire  : 21,600 second(s) (last: Tue Jul 26 20:19:03 2022)
  Filter     : read-only:present
Repo-filename: /etc/yum.repos.d/wsb.repo
dpkg
dpkg -i *.deb安装
dpkg -l 类似 rpm -qa
dpkg -l 类似 rpm -ql
dpkg -s 类似 rpm -qi
dpkg -S 类似 rpm -qf
dpkg -P 卸载包包括配置文件
dpkg -i package.deb #安装包
dpkg -r package #删除包
dpkg -P package #删除包(包括配置文件)
dpkg -L package #列出与该包关联的文件
dpkg -l package #显示该包的版本
dpkg --unpack package.deb #解开deb包的内容
dpkg -S keyword #搜索所属的包内容
dpkg -l #列出当前已安装的包
dpkg -c package.deb #列出deb包的内容
dpkg --configure package #配置包
期望状态标识:
未知(u)
安装(i)
删除(r)
清除(p)
保持(h)

当前状态标识:
未安装(n)
已安装(i)
仅存配置(c)
仅解压缩(U)
配置失败(F)
不完全安装(H)
触发器等待(W)
触发器未决(T)
apt
apt install  #安装
apt purge	#卸载包括配置文件
apt update	#更新安装仓库
apt seach	#查找
apt show	#查看
apt list	#列出包
apt edit-sources	#编辑源文件
apt-cdrom -m -d=/mnt add	#添加本来源
apt-cache madison nginx		#查看软件的多个版本
apt install nginx=1.18.0-6ubuntu14 安装特定版本
apt-file search -x ls #类似 yum provides 如果没有需要安装 apt install -y apt-file ; apt-file update 用法apt-file search -x "/sl$"
编译源码
源码编译的优点 可以实行定制化
根据提示安装包make还有报错需要把目录删掉重新编译安装
tree源码编译
cd /usr/local/src/
wget http://mama.indstate.edu/users/ice/tree/src/tree-2.0.2.tgz
tar xf tree-2.0.2.tgz ;cd tree-2.0.2/
vim Makefile
PREFIX=/apps/tree

grep 2.0.2 *
sed -i 's/v2.0.2/v8.8.8/' tree.c
make && make install 
hash -r
which tree
rm -rf /usr/local/sbin/tree
ln -s /apps/tree/bin/tree /usr/local/sbin/
[root@rocky ~]# tree --version
tree v8.8.8 (c) 1996 - 2022 by Steve Baker, Thomas Moore, Francesc Rocher, Florian Sesser, Kyosuke Tokoro
cmatrix源码编译
yum install ncurses-devel
wget https://jaist.dl.sourceforge.net/project/cmatrix/cmatrix/1.2a/cmatrix-1.2a.tar.gz
tar xf cmatrix-1.2a.tar.gz
cd cmatrix-1.2a
./configure && make && make install
$ cmatrix
$ cmatrix -b -u 3 -C blue
httpd源码编译
wget https://dlcdn.apache.org/httpd/httpd-2.4.54.tar.gz
tar xf httpd-2.4.54.tar.gz
cd httpd-2.4.54/
./configure --prefix=/apps/httpd --sysconfdir=/apps/httpd/etc/
dnf -y install apr-devel apr-util-devel pcre-devel  redhat-rpm-config 
make -j 2 && make install 
#####################################################################################
一键安装
#!/bin/bash
CPUS=`grep -c process /proc/cpuinfo`
HTTPD_VERSION=2.4.54
INSTALL_DIR=/apps/httpd

yum -y install apr-devel apr-util-devel pcre-devel  redhat-rpm-config  gcc make openssl-devel wget 

cd /usr/local/src
wget -P /usr/local/src https://dlcdn.apache.org/httpd/httpd-${HTTPD_VERSION}.tar.gz  --no-check-certificat || { echo "httpd is not get" ;exit 100 ;}
tar xf httpd-${HTTPD_VERSION}.tar.gz
cd httpd-${HTTPD_VERSION}
./configure --prefix=${INSTALL_DIR} --sysconfdir=${INSTALL_DIR}/etc/
make -j $CPUS && make install
ln -s /apps/httpd/bin/apachectl /usr/local/bin/
cat > /apps/httpd/htdocs/index.html << EOF
<html><body><h1>welcome to 123</h1></body></html>
EOF
apachectl start && echo "安装成功,请访问`hostname -I`"

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值