1、基于gcc命令说明 c语言编译过程
C 程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接
1,查看.C后缀文件
2,gcc -E hello.c -o hello.i 对hello.c文件进行预处理,生成了hello.i 文件
3,gcc -S hello.i -o hello.s 对预处理文件进行编译,生成了汇编文件
4,gcc -c hello.s -o hello.o 对汇编文件进行编译,生成了目标文件
5,gcc hello.o -o hello 对目标文件进行链接,生成可执行文件
注:此结果一条命令也可以搞定gcc hello.c -o hello 直接编译链接成可执行目标文件
2、总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何通过命令获取?
程序包管理器
主流的程序包管理器
redhat:rpm文件, rpm 包管理器,rpm:Redhat Package Manager,RPM Package Manager (红帽)
debian:deb文件, dpkg 包管理器(unbuntu)
软件包包含的文件
1>二进制文件
2>库文件
3>配置文件
4>帮助文件
5>利用 cpio工具查看包文件列表
3、总结程序包获取途径,以及rpm, yum, apt命令选项示例
软件包需要事先将源码进行编译后打包形成,获取包的途径如下:
系统发版的光盘或官方网站
CentOS 镜像:
https://www.centos.org/download/
http://mirrors.aliyun.com
https://mirrors.huaweicloud.com/
https://mirror.tuna.tsinghua.edu.cn/
http://mirrors.sohu.com
http://mirrors.163.com
Ubuntu 镜像:
http://cdimage.ubuntu.com/releases/
http://releases.ubuntu.com
第三方组织提供
https://fedoraproject.org/wiki/EPEL
https://mirrors.aliyun.com/epel/
https://mirrors.cloud.tencent.com/epel/
软件项目官方站点
http://yum.mariadb.org/10.4/centos8-amd64/rpms/
http://repo.mysql.com/yum/mysql-8.0-community/el/8/x86_64/
搜索引擎
http://pkgs.org
http://rpmfind.net
http://rpm.pbone.net
https://sourceforge.net/
自己制作
将源码文件,利用工具,如:rpmbuild,fpm 等工具制作成rpm包文件
RPM
- rpm -qf
which ifconfig
查询某个命令来自哪个包
rovky系统上安装、卸载、升级、查询、校验、数据库维护
rpm -i 软件包 安装软件包(加vh显示安装过程)
rpm -q 软件包名称 查询软件包是否安装
rpm -qi 软件名称 查询软件版本
rpm -qa 列出所有目前装好的包(配合rpm -qa | grep 半个包名 模糊搜索)
rpm -e 软件包名称 卸载软件包
rpm -ql 软件包名称 列出包里包含的所有文件
rpm -q --scripts 软件包名称 查询软件脚本内容
rpm -qf 磁盘文件 查询磁盘文件来自哪个包
YUM
- yum provides */route 知道你要安装的那个命令,然后去查找对应的软件仓库
yum [options] [command] [package …]
yum -y 自动回答YES
yum install 软件 安装软件
yum info 软件 查询软件安装信息
yum remove 卸载程序包
yum -y install --downloadonly --downloaddir=/data/httpd httpd 只下载相关依赖包不安装
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] 清除缓存
yum makecache 构建缓存
APT
apt install 安装软件包
apt remove 移除软件包
apt update 刷新存储库索引
apt show 显示安装细节
apt full-upgrade 在升级软件包时自动处理依赖关系
apt list 列出包含条件的包
apt-cache stats 查看包相关信息
dpkg -S filename 查找存在的文件来自于哪个包
4、简要总结yum/dnf工作原理。并搭建私有yum仓库(base, epel源)给另一个虚拟机使用
工作原理
yum/dnf 是基于C/S 模式
1>yum 服务器存放rpm包和相关包的元数据库
2>yum 客户端访问yum服务器进行安装或查询等
yum 实现过程
先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的
元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动
下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并
安装。
搭建私有YUM仓库(rocky9搭建私有仓库给rocky9-2使用)
1,rocky9先下载httpd,以提供共享地址,没安装先yum安装,
启动httpd服务后,本机ip,百度已经可以访问
网页内容就来自以下文件
2,进入共享数据目录
3,dnf reposync --repoid=epel --download-metadata -p /var/www/html/epel 用此命令下载软件到本地epel
4,网站指明路径,便可以正常提供下载
5,修改epel源地址
6,安装本地自配源的6tunnel安装
7,安装成功
5、总结系统安装之后的常用初始化步骤。rocky/ubuntu
rocky
关闭SELinux
sed -i ‘/^SELINUX=/c SELINUX=disabled’ /etc/selinux/config
关闭防火墙
systemctl disable --now firewalld
支持光盘,/misc/cd对应就是光盘内容
yum -y install autofs
systemctl enable --now autofs
修改网卡名称
[root@rocky8 ~]#sed -ri ‘/GRUB_CMDLINE_LINUX=/s#(.*)“$#\1 ifnames=0”#’ /etc/default/grub
[root@rocky8 ~]#grub2-mkconfig -o /boot/grub2/grub.cfg ;reboot
配置仓库
系统源,EPEL源
最小化安装系统后,建议安装常用软件
yum -y install autofs vim-enhanced tcpdump autofs chrony lrzsz tree telnet ftp lftp redhat-lsb-core bash-completion net-tools postfix wget bzip2 zip unzip xz lsof mlocate man-pages rsync
unbuntu
开启root远程登录功能
#sudo -i
#passwd root
#sed -i ‘/PermitRootLogin/c PermitRootLogin yes’ /etc/ssh/sshd_config
#systemctl restart sshd
修改默认时间
#date查看时区
#timedatectl set-timezone Asia/Shanghai 修改为中国上海时间
修改网卡名称为eth*
#修改开机引导文件 vi /etc/default/grub
修改GRUB_CMDLINE_LINUX=“”
改为GRUB_CMDLINE_LINUX=“net.ifnames=0 biosdevname=0”
#update-grub 更新开机引导文件
#sed -i “s/ens33/eth0/” /etc/netplan/00-installer-config.yaml修改配置文件网卡名为eth0
#reboot重启生效
配置国内yum源
#vim /etc/apt/sources.list 删除原文件内容复制官方yum源直接到soueces.list
ubuntu 建议安装的常用包
#apt install iproute2 ntpdate tcpdump telnet traceroute nfskernel-server nfs-common lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev
zlib1g-dev gcc openssh-server iotop unzip zip purge ufw lxd lxd-client lxcfs liblxc-common
6、解读一键安装httpd脚本,并自行实现一个一键安装脚本
解读一健安装httpd脚本
#!/bin/bash
CPUS=grep -c processor /proc/cpuinfo
(设置CPU核数变量)
HTTPD_VERSION=2.4.52 (设定版本)
INSTALL_DIR=/apps/httpd (安装路径)
COLOR=“echo -e \E[32;1m” (颜色)
END=“\E[0m”
systemctl disable -