课后预习
7.1 安装软件包的三种方法
7.2 rpm包介绍
7.3 rpm工具用法
7.4 yum工具用法
7.5 yum搭建本地仓库
7.6 yum更换国内源
7.7 yum下载rpm包
7.8/7.9 源码包安装
7.1 安装软件包的三种方法
在windows系统下安装软件很简单,只要双击后缀为.exe的文件,然后根据提示连续单击“下一步”按钮即可。然后在linux系统下安装软件就没那么容易了,因为我们不是在图形界面下,所以,必须学会在linux下安装软件。
之前我们用过yum命令,它是Red Hat所特有的安装RPM程序包的工具。使用RPM工具安装某一个程序包时,有可能会因为该程序包依赖另一个程序包而无法安装:
安装软件包只要有yum RPM 源码包这三种方法。
7.2 rpm包介绍
RPM是Red Hat Package Manager的缩写。由Red Hat公司开发。它是以一种数据库记录的方式将我们所需要的套件安装到linux主机的一套管理程序。也就是说,你的linux系统中存在着一个关于RPM的数据库,它记录了安装的包以及包与包之间的依赖关系。RPM包是预先在linux机器上编译并打包的文件,安装非常快捷。但它也有一些缺点,比如安装环境必须与编译时的环境一致或者相当,包与包之间存在着相互依赖的情况,卸载包时需要先把依赖的包卸载。如果依赖的包是系统所必须的,就不能卸载这个包,否则系统会奔溃。
7.3 rpm工具用法
如果你的虚拟机光驱中还有系统安装盘镜像,就可以通过执行如下命令把光驱挂载到/mnt目录下。先检查一下VMware右下角的小光驱图标是否点亮,如果没有,点击一下,再点击“链接”就可以点亮它。在挂载光驱后,会在/mnt/Packages目录下看到很多点缀.rpm的文件,这些文件就是RPM包。
[root@localhost ~]# mount /dev/cdrom /mnt mount: /dev/sr0 写保护,将以只读方式挂载 [root@localhost ~]# ls /mnt/ CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7 EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL [root@localhost ~]# ls /mnt/Packages/ |head 389-ds-base-1.3.4.0-19.el7.x86_64.rpm 389-ds-base-libs-1.3.4.0-19.el7.x86_64.rpm abattis-cantarell-fonts-0.0.16-3.el7.noarch.rpm abrt-2.1.11-36.el7.centos.x86_64.rpm abrt-addon-ccpp-2.1.11-36.el7.centos.x86_64.rpm abrt-addon-kerneloops-2.1.11-36.el7.centos.x86_64.rpm abrt-addon-pstoreoops-2.1.11-36.el7.centos.x86_64.rpm abrt-addon-python-2.1.11-36.el7.centos.x86_64.rpm abrt-addon-vmcore-2.1.11-36.el7.centos.x86_64.rpm abrt-addon-xorg-2.1.11-36.el7.centos.x86_64.rpm
每个RPM包的名称都是由-和.分成若干个部分。比如在abrt-2.1.11-36.el7.centos.x86_64.rpm包中,abrt为包名,2.1.11为版本信息,36.el7.centos为版本的发步号,x86_64为运行平台。常见的运行平台有i386、i586、i686和x86_64。需要注意的是,CPU目前是32位和64位。i386、i586和i686都为32位平台,x86_64为64位平台。另外,有些RPM包没有写具体的平台而是noarch,说明这个RPM包没有硬件平台限制。
Packages下都是RPM包。
- 安装RPM包
安装一个RPM包的命令如下:
[root@localhost Packages]# rpm -ivh libjpeg-turbo-1.2.90-5.el7.x86_64.rpm 准备中... ################################# [100%] 正在升级/安装... 1:libjpeg-turbo-1.2.90-5.el7 ################################# [100%]
各个含义如下:
- -i:表示安装
- -v:表示可视化
- -h:表示显示安装进度
另外,在安装RPM包时。常用的附带参数还包括如下几项
--force 表示强制安装,即使覆盖属于其他包的文件也要安装
--nodeps 表示当要安装的RPM包依赖于其他包时,即使其他包没有安装,也要安装这个包
- 升级RPM包
有的时候我们包的版本较低,需要升级。使用命令rpm -Uvh filename ,其中U表示升级
- 卸载RPM包
卸载RPM包的命令为rpm -e filename 下面我查找一个已经安装的包,然后使用-e卸载它。如下:
[root@localhost Packages]# rpm -qa libjpeg-turbo libjpeg-turbo-1.2.90-5.el7.x86_64 [root@localhost Packages]# rpm -e libjpeg-turbo [root@localhost Packages]# rpm -qa libjpeg-turbo [root@localhost Packages]#
我们卸载之后再次使用rpm -qa查询这个包显示已经不存在了。
卸载时。-e选项后面的filename和安装时是有区别的,安装时,是把一个存在的文件作为参数,而卸载时只需要包名即可。有的时候卸载一个包时,可能会提示你这个包正在依赖那个包,然后需要去卸载依赖的包,这样操作很麻烦,所以说使用rpm卸载时有局限性。
- 查询一个包是否已安装
查询一个包的命令为rpm -q RPM包名,这里的包名是不带平台信息和后缀名的,示例如下:
[root@localhost Packages]# rpm -q libjpeg-turbo 未安装软件包 libjpeg-turbo [root@localhost Packages]#
我们也可以使用命令rpm -qa查询当前系统所有已安装的RPM包,如下:
[root@localhost Packages]# rpm -qa grub2-2.02-0.29.el7.centos.x86_64 centos-release-7-2.1511.el7.centos.2.10.x86_64 audit-2.4.1-5.el7.x86_64 filesystem-3.2-20.el7.x86_64 rdma-7.2_4.1_rc6-1.el7.noarch kbd-misc-1.15.5-11.el7.noarch microcode_ctl-2.1-12.el7.x86_64 linux-firmware-20150904-43.git6ebf5d5.el7.noarch openssh-server-6.6.1p1-22.el7.x86_64 nss-softokn-freebl-3.16.2.3-13.el7_1.x86_64 parted-3.1-23.el7.x86_64 glibc-2.17-105.el7.x86_64 selinux-policy-targeted-3.13.1-60.el7.noarch libstdc++-4.8.5-4.el7.x86_64 authconfig-6.2.8-10.el7.x86_64 bash-4.2.46-19.el7.x86_64 pcre-8.32-15.el7.x86_64 btrfs-progs-3.19.1-1.el7.x86_64 zlib-1.2.7-15.el7.x86_64 tar-1.26-29.el7.x86_64 audit-libs-2.4.1-5.el7.x86_64 rootfiles-8.1-11.el7.noarch libuuid-2.23.2-26.el7.x86_64 iwl6050-firmware-41.28.5.1-43.el7.noarch libcom_err-1.42.9-7.el7.x86_64 iwl4965-firmware-228.61.2.24-43.el7.noarch chkconfig-1.3.61-5.el7.x86_64 iwl6000g2a-firmware-17.168.5.3-43.el7.noarch libdb-5.3.21-19.el7.x86_64 iwl6000g2b-firmware-17.168.5.2-43.el7.noarch bzip2-libs-1.0.6-13.el7.x86_64 iwl105-firmware-18.168.6.1-43.el7.noarch readline-6.2-9.el7.x86_64 iwl135-firmware-18.168.6.1-43.el7.noarch elfutils-libelf-0.163-3.el7.x86_64 iwl6000-firmware-9.221.4.1-43.el7.noarch libffi-3.0.13-16.el7.x86_64 iwl7260-firmware-22.0.7.0-43.el7.noarch libacl-2.2.51-12.el7.x86_64 iwl100-firmware-39.31.5.1-43.el7.noarch libgcrypt-1.5.3-12.el7_1.1.x86_64 net-tools-2.0-0.22.20131004git.el7.x86_64 libxml2-2.9.1-5.el7_1.2.x86_64 openssl-libs-1.0.2k-12.el7.x86_64 expat-2.1.0-8.el7.x86_64 autogen-libopts-5.18-5.el7.x86_64 elfutils-libs-0.163-3.el7.x86_64 openssl-1.0.2k-12.el7.x86_64 lua-5.1.4-14.el7.x86_64 tcl-8.5.13-8.el7.x86_64 findutils-4.5.11-5.el7.x86_64 sudo-1.8.19p2-13.el7.x86_64 libidn-1.28-4.el7.x86_64 device-mapper-1.02.146-4.el7.x86_64 gmp-6.0.0-11.el7.x86_64 device-mapper-event-1.02.146-4.el7.x86_64 nss-softokn-3.16.2.3-13.el7_1.x86_64 device-mapper-persistent-data-0.7.3-3.el7.x86_64 libassuan-2.1.0-3.el7.x86_64 perl-parent-0.225-244.el7.noarch e2fsprogs-libs-1.42.9-7.el7.x86_64 perl-podlators-2.5.1-3.el7.noarch which-2.20-7.el7.x86_64 perl-Pod-Escapes-1.04-292.el7.noarch libunistring-0.9.3-9.el7.x86_64 perl-Encode-2.51-7.el7.x86_64 libnfnetlink-1.0.1-4.el7.x86_64 perl-macros-5.16.3-292.el7.x86_64 newt-0.52.15-4.el7.x86_64 perl-Storable-2.45-3.el7.x86_64 lzo-2.06-8.el7.x86_64 perl-constant-1.27-2.el7.noarch libdaemon-0.14-7.el7.x86_64 perl-Socket-2.010-4.el7.x86_64 hostname-3.13-3.el7.x86_64 perl-Time-HiRes-1.9725-3.el7.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 perl-Scalar-List-Utils-1.27-248.el7.x86_64 p11-kit-trust-0.20.7-3.el7.x86_64 perl-File-Path-2.09-2.el7.noarch less-458-9.el7.x86_64 perl-threads-1.87-4.el7.x86_64 nettle-2.7.1-4.el7.x86_64 perl-Pod-Simple-3.28-4.el7.noarch pkgconfig-0.27.1-4.el7.x86_64 perl-5.16.3-292.el7.x86_64 dbus-glib-0.100-7.el7.x86_64 vim-common-7.4.160-4.el7.x86_64 gettext-libs-0.18.2.1-4.el7.x86_64 vim-enhanced-7.4.160-4.el7.x86_64 gsettings-desktop-schemas-3.14.2-1.el7.x86_64 zip-3.0-11.el7.x86_64 acl-2.2.51-12.el7.x86_64 libjpeg-turbo-1.2.90-5.el7.x86_64 libdb-utils-5.3.21-19.el7.x86_64 libss-1.42.9-7.el7.x86_64 make-3.82-21.el7.x86_64 libselinux-utils-2.2.2-6.el7.x86_64 libedit-3.0-12.20121213cvs.el7.x86_64 libmodman-2.0.1-8.el7.x86_64 snappy-1.1.0-3.el7.x86_64 ustr-1.0.4-16.el7.x86_64 libverto-0.2.5-4.el7.x86_64 ca-certificates-2015.2.4-71.el7.noarch libblkid-2.23.2-26.el7.x86_64 python-2.7.5-34.el7.x86_64 cracklib-2.9.0-11.el7.x86_64 dbus-python-1.1.1-9.el7.x86_64 pam-1.1.8-12.el7_1.1.x86_64 systemd-libs-219-19.el7.x86_64 procps-ng-3.3.10-3.el7.x86_64 pygobject3-base-3.14.0-3.el7.x86_64 centos-logos-70.0.6-3.el7.centos.noarch libselinux-python-2.2.2-6.el7.x86_64 python-slip-dbus-0.4.0-2.el7.noarch python-pyudev-0.15-7.el7.noarch newt-python-0.52.15-4.el7.x86_64 pyliblzma-0.5.3-11.el7.x86_64 python-perf-3.10.0-327.el7.x86_64 avahi-autoipd-0.6.31-15.el7.x86_64 nss-sysinit-3.19.1-18.el7.x86_64 NetworkManager-libnm-1.0.6-27.el7.x86_64 alsa-lib-1.0.28-2.el7.x86_64 mariadb-libs-5.5.44-2.el7.centos.x86_64 fipscheck-1.4.1-5.el7.x86_64 libcurl-7.29.0-25.el7.centos.x86_64 rpm-libs-4.11.3-17.el7.x86_64 openldap-2.4.40-8.el7.x86_64 util-linux-2.23.2-26.el7.x86_64 openssh-6.6.1p1-22.el7.x86_64 dhcp-common-4.2.5-42.el7.centos.x86_64 python-pycurl-7.19.0-17.el7.x86_64 lsscsi-0.27-3.el7.x86_64 pth-2.0.7-23.el7.x86_64 gpgme-1.3.2-5.el7.x86_64 rpm-build-libs-4.11.3-17.el7.x86_64 yum-plugin-fastestmirror-1.1.31-34.el7.noarch libmnl-1.0.3-7.el7.x86_64 iptables-1.4.21-16.el7.x86_64 qrencode-libs-3.4.1-3.el7.x86_64 cryptsetup-libs-1.6.7-1.el7.x86_64 kmod-20-5.el7.x86_64 dbus-1.6.12-13.el7.x86_64 iputils-20121221-7.el7.x86_64 polkit-pkla-compat-0.1-4.el7.x86_64 cronie-1.4.11-14.el7.x86_64 os-prober-1.58-5.el7.x86_64 dnsmasq-2.66-14.el7_1.x86_64 ppp-2.4.5-33.el7.x86_64 libpciaccess-0.13.4-2.el7.x86_64 plymouth-scripts-0.8.9-0.24.20140113.el7.centos.x86_64 trousers-0.3.13-1.el7.x86_64 glib-networking-2.42.0-1.el7.x86_64 fxload-2002_04_11-16.el7.x86_64 alsa-tools-firmware-1.0.28-2.el7.x86_64 kernel-tools-libs-3.10.0-327.el7.x86_64 libaio-0.3.109-13.el7.x86_64 libndp-1.2-4.el7.x86_64 jansson-2.4-6.el7.x86_64 dmidecode-2.12-9.el7.x86_64 libestr-0.1.9-2.el7.x86_64 bind-license-9.9.4-29.el7.noarch dhclient-4.2.5-42.el7.centos.x86_64 dracut-network-033-359.el7.x86_64 kbd-1.15.5-11.el7.x86_64 NetworkManager-tui-1.0.6-27.el7.x86_64 irqbalance-1.0.7-5.el7.x86_64 tuned-2.5.1-4.el7.noarch man-db-2.6.3-9.el7.x86_64 firewalld-0.3.9-14.el7.noarch libgcc-4.8.5-4.el7.x86_64 kernel-3.10.0-327.el7.x86_64 setup-2.8.71-6.el7.noarch postfix-2.10.1-6.el7.x86_64 basesystem-10.0-7.el7.centos.noarch biosdevname-0.6.2-1.el7.x86_64 ncurses-base-5.9-13.20130511.el7.noarch aic94xx-firmware-30-6.el7.noarch tzdata-2015g-1.el7.noarch dracut-config-rescue-033-359.el7.x86_64 glibc-common-2.17-105.el7.x86_64 iprutils-2.4.8-1.el7.x86_64 xz-libs-5.1.2-12alpha.el7.x86_64 openssh-clients-6.6.1p1-22.el7.x86_64 ncurses-libs-5.9-13.20130511.el7.x86_64 passwd-0.79-4.el7.x86_64 libsepol-2.1.9-3.el7.x86_64 xfsprogs-3.2.2-2.el7.x86_64 libselinux-2.2.2-6.el7.x86_64 e2fsprogs-1.42.9-7.el7.x86_64 info-5.1-4.el7.x86_64 libsysfs-2.1.0-16.el7.x86_64 sed-4.2.2-5.el7.x86_64 iwl3945-firmware-15.32.2.9-43.el7.noarch nspr-4.10.8-2.el7_1.x86_64 iwl3160-firmware-22.0.7.0-43.el7.noarch popt-1.13-16.el7.x86_64 iwl5000-firmware-8.83.5.1_1-43.el7.noarch nss-util-3.19.1-4.el7_1.x86_64 iwl7265-firmware-22.0.7.0-43.el7.noarch grep-2.20-2.el7.x86_64 ivtv-firmware-20080701-26.el7.noarch dbus-libs-1.6.12-13.el7.x86_64 iwl2030-firmware-18.168.6.1-43.el7.noarch gawk-4.0.2-4.el7.x86_64 iwl2000-firmware-18.168.6.1-43.el7.noarch libgpg-error-1.12-3.el7.x86_64 iwl1000-firmware-39.31.5.1-43.el7.noarch libattr-2.4.46-12.el7.x86_64 iwl5150-firmware-8.24.2.2-43.el7.noarch libcap-2.22-8.el7.x86_64 gpg-pubkey-f4a80eb5-53a7ff4b cpio-2.11-24.el7.x86_64 tree-1.6.0-10.el7.x86_64 libnl3-3.2.21-10.el7.x86_64 ntpdate-4.2.6p5-28.el7.centos.x86_64 p11-kit-0.20.7-3.el7.x86_64 ntp-4.2.6p5-28.el7.centos.x86_64 sqlite-3.7.17-8.el7.x86_64 lrzsz-0.12.20-36.el7.x86_64 diffutils-3.3-4.el7.x86_64 expect-5.45-14.el7_1.x86_64 libcap-ng-0.7.5-4.el7.x86_64 device-mapper-libs-1.02.146-4.el7.x86_64 file-libs-5.11-31.el7.x86_64 device-mapper-event-libs-1.02.146-4.el7.x86_64 file-5.11-31.el7.x86_64 lvm2-libs-2.02.177-4.el7.x86_64 libnl3-cli-3.2.21-10.el7.x86_64 lvm2-2.02.177-4.el7.x86_64 cyrus-sasl-lib-2.1.26-19.2.el7.x86_64 perl-HTTP-Tiny-0.033-3.el7.noarch groff-base-1.22.2-8.el7.x86_64 perl-Pod-Perldoc-3.20-4.el7.noarch libgomp-4.8.5-4.el7.x86_64 perl-Text-ParseWords-3.29-4.el7.noarch xz-5.1.2-12alpha.el7.x86_64 perl-Pod-Usage-1.63-3.el7.noarch slang-2.2.4-11.el7.x86_64 perl-libs-5.16.3-292.el7.x86_64 sysvinit-tools-2.88-14.dsf.el7.x86_64 perl-Exporter-5.68-3.el7.noarch tcp_wrappers-libs-7.6-77.el7.x86_64 perl-Time-Local-1.2300-2.el7.noarch ethtool-3.15-2.el7.x86_64 perl-Carp-1.26-244.el7.noarch pciutils-libs-3.2.1-4.el7.x86_64 perl-PathTools-3.40-5.el7.x86_64 libtasn1-3.8-2.el7.x86_64 perl-File-Temp-0.23.01-3.el7.noarch gdbm-1.10-8.el7.x86_64 perl-threads-shared-1.43-6.el7.x86_64 libteam-1.17-5.el7.x86_64 perl-Filter-1.49-3.el7.x86_64 glib2-2.42.2-5.el7.x86_64 perl-Getopt-Long-2.40-3.el7.noarch shared-mime-info-1.1-9.el7.x86_64 vim-filesystem-7.4.160-4.el7.x86_64 libcroco-0.6.8-5.el7.x86_64 gpm-libs-1.20.7-5.el7.x86_64 gobject-introspection-1.42.0-1.el7.x86_64 bzip2-1.0.6-13.el7.x86_64 vim-minimal-7.4.160-1.el7.x86_64 unzip-6.0-19.el7.x86_64 avahi-libs-0.6.31-15.el7.x86_64 pinentry-0.8.1-14.el7.x86_64 mozjs17-17.0.0-12.el7.x86_64 kmod-libs-20-5.el7.x86_64 freetype-2.4.11-11.el7.x86_64 ncurses-5.9-13.20130511.el7.x86_64 libproxy-0.4.11-8.el7.x86_64 libpcap-1.5.3-8.el7.x86_64 libsemanage-2.1.10-18.el7.x86_64 krb5-libs-1.13.2-10.el7.x86_64 coreutils-8.22-15.el7.x86_64 shadow-utils-4.1.5.1-18.el7.x86_64 python-libs-2.7.5-34.el7.x86_64 gzip-1.5-8.el7.x86_64 python-decorator-3.4.0-3.el7.noarch cracklib-dicts-2.9.0-11.el7.x86_64 libpwquality-1.2.3-4.el7.x86_64 libgudev1-219-19.el7.x86_64 gettext-0.18.2.1-4.el7.x86_64 libmount-2.23.2-26.el7.x86_64 plymouth-core-libs-0.8.9-0.24.20140113.el7.centos.x86_64 python-slip-0.4.0-2.el7.noarch python-iniparse-0.4-9.el7.noarch python-configobj-4.7.2-7.el7.noarch yum-metadata-parser-1.1.4-10.el7.x86_64 pyxattr-0.5.1-5.el7.x86_64 grubby-8.28-17.el7.x86_64 libutempter-1.1.6-4.el7.x86_64 nss-3.19.1-18.el7.x86_64 nss-tools-3.19.1-18.el7.x86_64 logrotate-3.8.6-6.el7.x86_64 binutils-2.23.52.0.1-55.el7.x86_64 fipscheck-lib-1.4.1-5.el7.x86_64 libssh2-1.4.3-10.el7.x86_64 curl-7.29.0-25.el7.centos.x86_64 rpm-4.11.3-17.el7.x86_64 libuser-0.60-7.el7_1.x86_64 policycoreutils-2.2.5-20.el7.x86_64 dhcp-libs-4.2.5-42.el7.centos.x86_64 selinux-policy-3.13.1-60.el7.noarch python-urlgrabber-3.10-7.el7.noarch hardlink-1.0-19.el7.x86_64 gnupg2-2.0.22-3.el7.x86_64 pygpgme-0.3-9.el7.x86_64 rpm-python-4.11.3-17.el7.x86_64 yum-3.4.3-132.el7.centos.0.1.noarch libnetfilter_conntrack-1.0.4-2.el7.x86_64 iproute-3.10.0-54.el7.x86_64 kpartx-0.4.9-85.el7.x86_64 dracut-033-359.el7.x86_64 systemd-219-19.el7.x86_64 systemd-sysv-219-19.el7.x86_64 initscripts-9.49.30-1.el7.x86_64 polkit-0.112-5.el7.x86_64 cronie-anacron-1.4.11-14.el7.x86_64 crontabs-1.11-6.20121102git.el7.noarch grub2-tools-2.02-0.29.el7.centos.x86_64 wpa_supplicant-2.0-17.el7_1.x86_64 hwdata-0.252-8.1.el7.x86_64 libdrm-2.4.60-3.el7.x86_64 plymouth-0.8.9-0.24.20140113.el7.centos.x86_64 gnutls-3.3.8-12.el7_1.1.x86_64 libsoup-2.48.1-3.el7.x86_64 alsa-firmware-1.0.28-2.el7.noarch ebtables-2.0.10-13.el7.x86_64 libpipeline-1.2.3-3.el7.x86_64 json-c-0.11-4.el7_0.x86_64 teamd-1.17-5.el7.x86_64 virt-what-1.13-6.el7.x86_64 numactl-libs-2.0.9-5.el7_1.x86_64 bind-libs-lite-9.9.4-29.el7.x86_64 NetworkManager-1.0.6-27.el7.x86_64 kbd-legacy-1.15.5-11.el7.noarch kexec-tools-2.0.7-38.el7.x86_64 NetworkManager-team-1.0.6-27.el7.x86_64 rsyslog-7.4.7-12.el7.x86_64 kernel-tools-3.10.0-327.el7.x86_64
- 得到一个已安装的RPM包的相关信息(不常用)命令如下:
rpm -qi
[root@localhost Packages]# rpm -qi libjpeg-turbo Name : libjpeg-turbo Version : 1.2.90 Release : 5.el7 Architecture: x86_64 Install Date: 2018年05月29日 星期二 03时17分16秒 Group : System Environment/Libraries Size : 350387 License : IJG Signature : RSA/SHA256, 2014年07月04日 星期五 10时55分27秒, Key ID 24c6a8a7f4a80eb5 Source RPM : libjpeg-turbo-1.2.90-5.el7.src.rpm Build Date : 2014年06月10日 星期二 11时48分52秒 Build Host : worker1.bsys.centos.org Relocations : (not relocatable) Packager : CentOS BuildSystem <http://bugs.centos.org> Vendor : CentOS URL : http://sourceforge.net/projects/libjpeg-turbo Summary : A MMX/SSE2 accelerated library for manipulating JPEG image files Description : The libjpeg-turbo package contains a library of functions for manipulating JPEG images.
- 列出一个RPM包的安装文件
列出一个RPM包的安装文件的命令为rpm -ql 包名,示例如下:
[root@localhost Packages]# rpm -ql libjpeg-turbo /usr/lib64/libjpeg.so.62 /usr/lib64/libjpeg.so.62.1.0 /usr/share/doc/libjpeg-turbo-1.2.90 /usr/share/doc/libjpeg-turbo-1.2.90/ChangeLog.txt /usr/share/doc/libjpeg-turbo-1.2.90/README /usr/share/doc/libjpeg-turbo-1.2.90/README-turbo.txt /usr/share/doc/libjpeg-turbo-1.2.90/change.log
- 列出某个文件属于哪个RPM包安装的命令为rpm -qf 文件的绝对路径,示例如下:
[root@localhost Packages]# rpm -qf /usr/lib64/libjpeg.so.62 libjpeg-turbo-1.2.90-5.el7.x86_64
- 还有一种方法就是不知道哪个包是由什么路径安装的,可以用`which XX`,用反引号查看,这里的反引号是把查到的命令输入给rpm -qf 示例如下:
[root@localhost Packages]# rpm -qf `which cd` bash-4.2.46-19.el7.x86_64
7.4 yum工具用法
如果你的linux系统支持yum工具,那么使用该工具比使用RPM工具更加方便。yum工具最大的优势在于可以联网去下载所需要的RPM包,然后自动安装,如果要安装的rpm包有依赖关系,yum工具会帮助我们依次安装所有相关的rpm包。
- 列出所有可用的RPM包
使用yum list 命令,可以列出所有的RPM包资源,如下:
[root@localhost Packages]# yum list |head -n 30 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: centos.ustc.edu.cn * updates: mirrors.aliyun.com 已安装的软件包 NetworkManager.x86_64 1:1.0.6-27.el7 @anaconda NetworkManager-libnm.x86_64 1:1.0.6-27.el7 @anaconda NetworkManager-team.x86_64 1:1.0.6-27.el7 @anaconda NetworkManager-tui.x86_64 1:1.0.6-27.el7 @anaconda acl.x86_64 2.2.51-12.el7 @anaconda aic94xx-firmware.noarch 30-6.el7 @anaconda alsa-firmware.noarch 1.0.28-2.el7 @anaconda alsa-lib.x86_64 1.0.28-2.el7 @anaconda alsa-tools-firmware.x86_64 1.0.28-2.el7 @anaconda audit.x86_64 2.4.1-5.el7 @anaconda audit-libs.x86_64 2.4.1-5.el7 @anaconda authconfig.x86_64 6.2.8-10.el7 @anaconda autogen-libopts.x86_64 5.18-5.el7 @base avahi-autoipd.x86_64 0.6.31-15.el7 @anaconda avahi-libs.x86_64 0.6.31-15.el7 @anaconda basesystem.noarch 10.0-7.el7.centos @anaconda bash.x86_64 4.2.46-19.el7 @anaconda bind-libs-lite.x86_64 32:9.9.4-29.el7 @anaconda bind-license.noarch 32:9.9.4-29.el7 @anaconda binutils.x86_64 2.23.52.0.1-55.el7 @anaconda biosdevname.x86_64 0.6.2-1.el7 @anaconda btrfs-progs.x86_64 3.19.1-1.el7 @anaconda bzip2.x86_64 1.0.6-13.el7 @base bzip2-libs.x86_64 1.0.6-13.el7 @anaconda 由于管道被破坏而退出
从上面的例子中,我们可以看到,有base: mirrors.aliyun.com信息出现,这是告诉用户,它是从 mirrors.aliyun.com这里下载到的RPM包资源。从上面的例子中我们还可以看到,最左侧是RPM包名,中间是版本信息,最右侧是安装信息,如果已安装,最右侧就显示@anaconda @base ,它们前面都会有一个@符号,如果没有安装,就直接显示 base anaconda。如果RPM包已安装但需要升级,则显示updates。yum list命令会先列出安装的包,后列出没有安装的包。
- 搜索RPM包的命令为yun search 【相关关键词】
[root@localhost ~]# cd /mnt/Packages/ [root@localhost Packages]# yum search vim 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: centos.ustc.edu.cn * extras: centos.ustc.edu.cn * updates: centos.ustc.edu.cn ============================================= N/S matched: vim ============================================== protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers descriptions vim-X11.x86_64 : The VIM version of the vi editor for the X Window System vim-common.x86_64 : The common files needed by any version of the VIM editor vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements vim-filesystem.x86_64 : VIM filesystem layout vim-minimal.x86_64 : A minimal version of the VIM editor 名称和简介匹配 only,使用“search all”试试。
搜索不知道安装的包,使用通配,什么路径都行。命令如下
yum provides "/*/vim"
- 除了这种方法还有一种就是 yum list |grep ‘vim’
[root@localhost Packages]# yum list |grep 'vim' vim-common.x86_64 2:7.4.160-4.el7 @base vim-enhanced.x86_64 2:7.4.160-4.el7 @base vim-filesystem.x86_64 2:7.4.160-4.el7 @base vim-minimal.x86_64 2:7.4.160-1.el7 @anaconda protobuf-vim.x86_64 2.5.0-8.el7 base vim-X11.x86_64 2:7.4.160-4.el7 base vim-minimal.x86_64 2:7.4.160-4.el7 base
- 安装rpm包
安装RPM包的命令为yum install -y 【RPM包名】,如果加-y选项,则会以与用户交互的方式安装:示例如下:
[root@localhost ~]# yum install -y libjpeg-turbo 已加载插件:fastestmirror base | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 kB 00:00:00 updates/7/x86_64/primary_db | 2.0 MB 00:00:06 Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: centos.ustc.edu.cn * updates: mirrors.aliyun.com 正在解决依赖关系 --> 正在检查事务 ---> 软件包 libjpeg-turbo.x86_64.0.1.2.90-5.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 ============================================================================================================= Package 架构 版本 源 大小 ============================================================================================================= 正在安装: libjpeg-turbo x86_64 1.2.90-5.el7 base 134 k 事务概要 ============================================================================================================= 安装 1 软件包 总下载量:134 k 安装大小:342 k Downloading packages: libjpeg-turbo-1.2.90-5.el7.x86_64.rpm | 134 kB 00:00:05 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : libjpeg-turbo-1.2.90-5.el7.x86_64 1/1 验证中 : libjpeg-turbo-1.2.90-5.el7.x86_64 1/1 已安装: libjpeg-turbo.x86_64 0:1.2.90-5.el7 完毕!
如果在安装的过程中,不加-y选项,就会把所有的依赖的包列出来,然后会询问是否要安装,输入y安装,输入n不安装,这样做比较麻烦,所以建议加上-y选项。
- 卸载RPM包
卸载RPM包的命令为yum remove -y 【RPM包名】,如下:
[root@localhost ~]# yum remove -y libjpeg-turbo 已加载插件:fastestmirror 正在解决依赖关系 --> 正在检查事务 ---> 软件包 libjpeg-turbo.x86_64.0.1.2.90-5.el7 将被 删除 --> 解决依赖关系完成 依赖关系解决 ============================================================================================================= Package 架构 版本 源 大小 ============================================================================================================= 正在删除: libjpeg-turbo x86_64 1.2.90-5.el7 @base 342 k 事务概要 ============================================================================================================= 移除 1 软件包 安装大小:342 k Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction 正在删除 : libjpeg-turbo-1.2.90-5.el7.x86_64 1/1 验证中 : libjpeg-turbo-1.2.90-5.el7.x86_64 1/1 删除: libjpeg-turbo.x86_64 0:1.2.90-5.el7 完毕!
卸载和安装一样,也可以直接加上-y选项,从而省略与用户交互的哪一步,但是卸载某个包时一定要看清楚,不要连其他重要的RPM包也一起卸载了,以免影响正常的业务,所以使用yum remove命令时,最好不要加-y选项,加上就是强制删除的意思。
- 把所有可用的组都给列出来,命令如下:
[root@localhost ~]# yum grouplist 已加载插件:fastestmirror 没有安装组信息文件 Maybe run: yum groups mark convert (see man yum) Loading mirror speeds from cached hostfile * base: centos.ustc.edu.cn * extras: centos.ustc.edu.cn * updates: centos.ustc.edu.cn 可用的环境分组: 最小安装 基础设施服务器 计算节点 文件及打印服务器 基本网页服务器 虚拟化主机 带 GUI 的服务器 GNOME 桌面 KDE Plasma Workspaces 开发及生成工作站 可用组: 传统 UNIX 兼容性 兼容性程序库 图形管理工具 安全性工具 开发工具 控制台互联网工具 智能卡支持 科学记数法支持 系统管理 系统管理工具 完成
- 安装一个想用的组使用命令yum groupinstall -y 【包名】,但是包名中间有空格的时候,需要加上单引号。否则安装不了。
7.5 yum搭建本地仓库
有的时候,linux系统不能联网,此时当然就不能很便捷地使用联网的yum源了,这时我们需要我们自己在linux系统下使用光盘制作yum源,具体步骤如下:
1.挂载光盘,如下所示
[root@localhost ~]# mount /dev/cdrom /mnt mount: /dev/sr0 写保护,将以只读方式挂载
2.删除/etc/yum.repos.d目录下所有的repo文件(删除之前,最后做一个备份),如下
[root@localhost ~]# cp -r /etc/yum.repos.d /etc/yum.repos.d_bak [root@localhost ~]# rm -rf /etc/yum.repos.d/*
3.创建新文件dvd.repo,如下所示:加入以下内容:然后:wq保存
[root@localhost ~]#vi dvd.repo [dvd] name=install dvd baseurl=file://mnt enabled=1 gpcheck=o ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -- 插入 --
4.然后把之前的缓存清除
[root@localhost yum.repos.d]# yum clean all 已加载插件:fastestmirror 正在清理软件源: dvd Cleaning up everything Cleaning up list of fastest mirrors
做这个实验的时候必须把dvd.repo放到yum.repos.d目录下,并且进入yum.repos.d目录下,之后才能清除缓存成功。
5.此时在yum list会看到很多dvd开头的包
[root@localhost yum.repos.d]# yum list xvattr.x86_64 1.3-27.el7 dvd xz-devel.x86_64 5.1.2-12alpha.el7 dvd yajl.x86_64 2.0.4-4.el7 dvd yelp.x86_64 1:3.14.2-1.el7 dvd yelp-libs.x86_64 1:3.14.2-1.el7 dvd yelp-xsl.noarch 3.14.0-1.el7 dvd yp-tools.x86_64 2.14-3.el7 dvd ypbind.x86_64 3:1.37.1-7.el7 dvd ypserv.x86_64 2.31-8.el7 dvd yum-langpacks.noarch 0.4.2-4.el7 dvd yum-plugin-aliases.noarch 1.1.31-34.el7 dvd yum-plugin-changelog.noarch 1.1.31-34.el7 dvd yum-plugin-tmprepo.noarch 1.1.31-34.el7 dvd yum-plugin-verify.noarch 1.1.31-34.el7 dvd yum-plugin-versionlock.noarch 1.1.31-34.el7 dvd yum-utils.noarch 1.1.31-34.el7 dvd zenity.x86_64 3.8.0-5.el7 dvd zlib-devel.x86_64 1.2.7-15.el7 dvd zsh.x86_64 5.0.2-14.el7 dvd zziplib.x86_64 0.13.62-5.el7 dvd [root@localhost yum.repos.d]#
6.我们来实验安装一个
[root@localhost yum.repos.d]# yum install GeoIP 已加载插件:fastestmirror Loading mirror speeds from cached hostfile 正在解决依赖关系 --> 正在检查事务 ---> 软件包 GeoIP.x86_64.0.1.5.0-9.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 ============================================================================================================= Package 架构 版本 源 大小 ============================================================================================================= 正在安装: GeoIP x86_64 1.5.0-9.el7 dvd 709 k 事务概要 ============================================================================================================= 安装 1 软件包 总下载量:709 k 安装大小:1.6 M Is this ok [y/d/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : GeoIP-1.5.0-9.el7.x86_64 1/1 验证中 : GeoIP-1.5.0-9.el7.x86_64 1/1 已安装: GeoIP.x86_64 0:1.5.0-9.el7 完毕!
7.6 yum更换国内源
1.首先第一步把dvd.repo删除掉不要了
[root@localhost yum.repos.d]# ls dvd.repo [root@localhost yum.repos.d]# rm -rf dvd.repo
2.再把之前拷贝的在拷贝回来
[root@localhost yum.repos.d]# cp ../yum.repos.d_bak/* . [root@localhost yum.repos.d]# ls CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
3.再把CentOS-Base.repo最核心的删除掉,改为国内163的,
[root@localhost yum.repos.d]# rm -f CentOS-Base.repo [root@localhost yum.repos.d]# ls CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo [root@localhost yum.repos.d]#
4.我们使用weget命令:weget http://mirrors.163.com/.help/CentOS7-Base-163.repo
[root@localhost yum.repos.d]# weget http://mirrors.163.com/.help/CentOS7-Base-163.repo -bash: weget: 未找到命令 [root@localhost yum.repos.d]#
5.也是没有占到命令我们可以使用yum安装,但是我们刚才把最核心的给删除掉了所有还有另一种方法
[root@localhost yum.repos.d]# curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1572 100 1572 0 0 278 0 0:00:05 0:00:05 --:--:-- 382 [root@localhost yum.repos.d]# ls CentOS7-Base-163.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo [root@localhost yum.repos.d]#
之后我们ls查看一下是否下载了,看到了CentOS7-Base-163.repo,表示下载下来了
6.我们用vim打开它
[root@localhost yum.repos.d]# vim CentOS7-Base-163.repo # CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=CentOS-$releasever - Base - 163.com #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates - 163.com #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/ "CentOS7-Base-163.repo" 41L, 1572C
7.然后我们yum list看一下,看到很多base的包
zenity.x86_64 3.22.0-1.el7 base zlib.i686 1.2.7-17.el7 base zlib.x86_64 1.2.7-17.el7 base zlib-devel.i686 1.2.7-17.el7 base zlib-devel.x86_64 1.2.7-17.el7 base zlib-static.i686 1.2.7-17.el7 base zlib-static.x86_64 1.2.7-17.el7 base zsh.x86_64 5.0.2-28.el7 base zsh-html.x86_64 5.0.2-28.el7 base zziplib.i686 0.13.62-5.el7 base zziplib.x86_64 0.13.62-5.el7 base zziplib-devel.i686 0.13.62-5.el7 base zziplib-devel.x86_64 0.13.62-5.el7 base zziplib-utils.x86_64 0.13.62-5.el7 base
8.我们安装一个试一下
[root@localhost yum.repos.d]# yum install zlib 已加载插件:fastestmirror base | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 kB 00:00:00 Loading mirror speeds from cached hostfile 正在解决依赖关系 --> 正在检查事务 ---> 软件包 zlib.x86_64.0.1.2.7-15.el7 将被 升级 ---> 软件包 zlib.x86_64.0.1.2.7-17.el7 将被 更新 --> 解决依赖关系完成 依赖关系解决 ============================================================================================================= Package 架构 版本 源 大小 ============================================================================================================= 正在更新: zlib x86_64 1.2.7-17.el7 base 90 k 事务概要 ============================================================================================================= 升级 1 软件包 总下载量:90 k Is this ok [y/d/N]: n Exiting on user command 您的事务已保存,请执行: yum load-transaction /tmp/yum_save_tx.2018-05-29.19-51.Fzf9Be.yumtx 重新执行该事务
9.然后在清除下缓存
[root@localhost yum.repos.d]# yum clean all
7.7 yum下载rpm包
在进行操作前,我们需要先恢复之前的yum源,否则后续的使用yum还会出问题具体如下:
rm -rf /etc/yum.repos.d
mv /etc/yum.repos.d_bak /ect/yum.repos.d
yum list 这一步是必须执行的,这样就可以生成缓存了,方便我们下次使用。
有时我们需要下载RPM包但不安装,而仅仅复制给其他机器使用,前面介绍过使用yum工具安装RPM包时,首先得下载这个RPM包,然后再去安装,所以使用yum工具完全能做到只下载而不安装。下载RPM包而不安装的命令如下:
yum install 包名 -y downloadonly
这样虽然下载了RPM包,但并没有保存到我们预想的目录下,默认会在/var/cache/yum/x86_64/7/xxx/packages 下面,这里的xx是指base updates或者extras ,它跟yum list最右侧的字符是一致的。
下载到指定的目录下的命令为:
yum install 包名 -y --downloadonly --downloaddir=/usr/local/src
有一个问题就是,如果这个包已经安装过了,那么使用yum install downloadonly就不起作用了,他会提示这个包已经安装过了,根本就下载不来了,此时该怎么办?现在就是想下载RPM包,总不能先卸载再安装吧?不用麻烦,还有一个办法就是
yum reinstall -y bash --downloadonly
7.8/7.9 源码包安装
这个先讲一个规定就是以后下载的源码包都放在/usr/local/src/目录下
在linux下安装源码包是常用的,在日常的管理中,大部分的软件都是通过源码包安装的,安装源码包,需要我们把源代码编译成可执行的二进制文件,如果能读懂这些源代码,就可以修改这些源代码的自定义功能,然后在按照自己的需求,使用源码包除了可以自定义修改源码包外,还可以定制相关的功能,因为源码包在编译时可以附加额外的选项。
源码包的编译用到了linux系统里的编译器,常用的源码包一般都是用C语言开发的,因为C语言是linux上最标准的程序语言,linux上的C语言编译器称为GCC,利用他可以把C语言编译成可执行的二进制文件,如果没有安装gcc,使用命令安装
yum install gcc
安装源码包通常需要三个步骤:
- ./configure 这一步可以定制功能,加上相应的选项即可,具体有什么选项可以通过命令.configure --help 查看,这一步会自动检测你的linux系统与相关的套件是否有编译该源码包时所需要的库,因为一旦缺少某个库就不能完成编译。只有检测通过后,才会生成makefile文件
- make 使用这个命令,会根据makefile文件中预设的参数进行编译,这一步其实就是gcc工作了,
- make install 这一步是安装步骤,用于创建相关软件的存放目录和配置文件
对于以上步骤,并不是所有的源码包软件都一样,也就是说,源码包的安装并没有标准的安装步骤。这就需要你拿到源码包解压后,进入目录,找到相关的帮助文档。
- 下载源码包
下载源码包一定去官方站点,因为你从其他网站下载的源码包很有可能是被修改过的,我们先httpd的源码包下载到/usr/local/src/下,如下:
[root@localhost ~]# cd /usr/local/src/ [root@localhost src]# wget http://mirrors.cnnic.cn/apache/httpd-2.2.32.tar.gz -bash: wget: 未找到命令 [root@localhost src]# curl -O http://mirrors.cnnic.cn/apache/httpd-2.2.32.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 224 100 224 0 0 39 0 0:00:05 0:00:05 --:--:-- 54
- 解压源码包
[root@localhost src]# tar -zxvf httpd-2.4.33.tar.gz
- 配置相关的选项生成Makefile
首先我们进入解压后的源码目录,
[root@localhost src]# cd httpd-2.4.33 [root@localhost httpd-2.4.33]# ./configure --help |less
常用的配置选项有--prefix=PREFIX ,它的意思是定义软件包的安装路径。这里直接把Apache安装在/usr/local/apache2目录下,该选项配置为--prefix=/usr/local apache2
- 可能会报错,显示没有gcc 需要我们yum一下 yum install -y gcc
- 验证我们上一步是否成功命令 echo $?
- 进行编译 make 一下
- 然后在make install 安装
以上缺少自己的虚拟机实际操作,是因为我们安装上apache 看很多个文档 教程还是没有安装上
新知识点
使yum保留下载的rpm包
可以设置使yum保留已经下载的rpm包,供以后升级或重新安装时使用。
修改/etc/yum.conf即可:[main]
cachedir=/home/soft1/yumcache
keepcache=1
debuglevel=2chchedir是放置下载的包的地方,可以修改为自己想放置的位置。
keepcache为1时表示保存已经下载的rpm包。
RPM 包制作
链接:http://https://jin-yang.github.io/post/linux-create-rpm-package.html
搭建局域网yum源
1. 先创建一个目录,作为存在rpm包的目录
mkdir /data/yumdata2. 拷贝ISO镜像文件中的rpm包到/data/yumdata/
mount /dev/cdrom /mnt/ cp /mnt/Packages/*rpm /data/yumdata【小常识】 可以在/data/yumdata/下面创建子目录,然后把rpm包放到子目录下面,也可以被识别到
3. 创建repository
createrepo /data/yumdata/[root@localhost ~]# createrepo /data/yumdata/ Spawning worker 0 with 135 pkgs Workers Finished Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete
4.然后ls看一下data目录有个repodata目录
[root@localhost ~]# ls /data/yumdata/ abattis-cantarell-fonts-0.0.16-3.el7.noarch.rpm arpwatch-2.1a15-30.el7.x86_64.rpm abrt-2.1.11-36.el7.centos.x86_64.rpm at-3.1.13-20.el7.x86_64.rpm abrt-addon-ccpp-2.1.11-36.el7.centos.x86_64.rpm atk-2.14.0-1.el7.x86_64.rpm abrt-addon-kerneloops-2.1.11-36.el7.centos.x86_64.rpm atk-devel-2.14.0-1.el7.x86_64.rpm abrt-addon-pstoreoops-2.1.11-36.el7.centos.x86_64.rpm atkmm-2.22.7-3.el7.x86_64.rpm abrt-addon-python-2.1.11-36.el7.centos.x86_64.rpm atlas-3.10.1-10.el7.x86_64.rpm abrt-addon-vmcore-2.1.11-36.el7.centos.x86_64.rpm at-spi2-atk-2.8.1-4.el7.x86_64.rpm abrt-addon-xorg-2.1.11-36.el7.centos.x86_64.rpm at-spi2-atk-devel-2.8.1-4.el7.x86_64.rpm abrt-cli-2.1.11-36.el7.centos.x86_64.rpm at-spi2-core-2.8.0-6.el7.x86_64.rpm abrt-console-notification-2.1.11-36.el7.centos.x86_64.rpm attica-0.4.2-1.el7.x86_64.rpm abrt-dbus-2.1.11-36.el7.centos.x86_64.rpm attica-devel-0.4.2-1.el7.x86_64.rpm abrt-desktop-2.1.11-36.el7.centos.x86_64.rpm attr-2.4.46-12.el7.x86_64.rpm abrt-gui-2.1.11-36.el7.centos.x86_64.rpm audispd-plugins-2.4.1-5.el7.x86_64.rpm abrt-gui-libs-2.1.11-36.el7.centos.x86_64.rpm audit-2.4.1-5.el7.x86_64.rpm abrt-java-connector-1.0.6-9.el7.x86_64.rpm audit-libs-2.4.1-5.el7.x86_64.rpm abrt-libs-2.1.11-36.el7.centos.x86_64.rpm audit-libs-devel-2.4.1-5.el7.x86_64.rpm abrt-python-2.1.11-36.el7.centos.x86_64.rpm audit-libs-python-2.4.1-5.el7.x86_64.rpm abrt-retrace-client-2.1.11-36.el7.centos.x86_64.rpm augeas-libs-1.4.0-2.el7.x86_64.rpm abrt-tui-2.1.11-36.el7.centos.x86_64.rpm authconfig-6.2.8-10.el7.x86_64.rpm accountsservice-0.6.35-9.el7.x86_64.rpm authconfig-gtk-6.2.8-10.el7.x86_64.rpm accountsservice-libs-0.6.35-9.el7.x86_64.rpm authd-1.4.3-42.el7.x86_64.rpm acl-2.2.51-12.el7.x86_64.rpm autoconf-2.69-11.el7.noarch.rpm acpid-2.0.19-6.el7.x86_64.rpm autocorr-af-4.3.7.2-5.el7.noarch.rpm adcli-0.7.5-4.el7.x86_64.rpm autocorr-bg-4.3.7.2-5.el7.noarch.rpm adwaita-cursor-theme-3.14.1-1.el7.noarch.rpm autocorr-ca-4.3.7.2-5.el7.noarch.rpm adwaita-gtk2-theme-3.14.2.2-2.el7.x86_64.rpm autocorr-cs-4.3.7.2-5.el7.noarch.rpm adwaita-icon-theme-3.14.1-1.el7.noarch.rpm autocorr-da-4.3.7.2-5.el7.noarch.rpm agg-2.5-18.el7.x86_64.rpm autocorr-de-4.3.7.2-5.el7.noarch.rpm aic94xx-firmware-30-6.el7.noarch.rpm autocorr-en-4.3.7.2-5.el7.noarch.rpm aide-0.15.1-9.el7.x86_64.rpm autocorr-es-4.3.7.2-5.el7.noarch.rpm akonadi-1.9.2-4.el7.x86_64.rpm autocorr-fa-4.3.7.2-5.el7.noarch.rpm akonadi-mysql-1.9.2-4.el7.x86_64.rpm autocorr-fi-4.3.7.2-5.el7.noarch.rpm alacarte-3.7.90-8.el7.noarch.rpm autocorr-fr-4.3.7.2-5.el7.noarch.rpm alsa-firmware-1.0.28-2.el7.noarch.rpm autocorr-ga-4.3.7.2-5.el7.noarch.rpm alsa-lib-1.0.28-2.el7.x86_64.rpm autocorr-hr-4.3.7.2-5.el7.noarch.rpm alsa-lib-devel-1.0.28-2.el7.x86_64.rpm autocorr-hu-4.3.7.2-5.el7.noarch.rpm alsa-plugins-pulseaudio-1.0.27-3.el7.x86_64.rpm autocorr-is-4.3.7.2-5.el7.noarch.rpm alsa-tools-firmware-1.0.28-2.el7.x86_64.rpm autocorr-it-4.3.7.2-5.el7.noarch.rpm alsa-utils-1.0.28-4.el7.x86_64.rpm autocorr-ja-4.3.7.2-5.el7.noarch.rpm amanda-3.3.3-13.el7.x86_64.rpm autocorr-ko-4.3.7.2-5.el7.noarch.rpm amanda-client-3.3.3-13.el7.x86_64.rpm autocorr-lb-4.3.7.2-5.el7.noarch.rpm amanda-libs-3.3.3-13.el7.x86_64.rpm autocorr-lt-4.3.7.2-5.el7.noarch.rpm amanda-server-3.3.3-13.el7.x86_64.rpm autocorr-mn-4.3.7.2-5.el7.noarch.rpm anaconda-21.48.22.56-5.el7.centos.x86_64.rpm autocorr-nl-4.3.7.2-5.el7.noarch.rpm anaconda-core-21.48.22.56-5.el7.centos.x86_64.rpm autocorr-pl-4.3.7.2-5.el7.noarch.rpm anaconda-gui-21.48.22.56-5.el7.centos.x86_64.rpm autocorr-pt-4.3.7.2-5.el7.noarch.rpm anaconda-tui-21.48.22.56-5.el7.centos.x86_64.rpm autocorr-ro-4.3.7.2-5.el7.noarch.rpm anaconda-widgets-21.48.22.56-5.el7.centos.x86_64.rpm autocorr-ru-4.3.7.2-5.el7.noarch.rpm ant-1.9.2-9.el7.noarch.rpm autocorr-sk-4.3.7.2-5.el7.noarch.rpm antlr-tool-2.7.7-30.el7.noarch.rpm autocorr-sl-4.3.7.2-5.el7.noarch.rpm apache-commons-cli-1.2-13.el7.noarch.rpm autocorr-sr-4.3.7.2-5.el7.noarch.rpm apache-commons-codec-1.8-7.el7.noarch.rpm autocorr-sv-4.3.7.2-5.el7.noarch.rpm apache-commons-collections-3.2.1-21.el7.noarch.rpm autocorr-tr-4.3.7.2-5.el7.noarch.rpm apache-commons-daemon-1.0.13-6.el7.x86_64.rpm autocorr-vi-4.3.7.2-5.el7.noarch.rpm apache-commons-dbcp-1.4-17.el7.noarch.rpm autocorr-zh-4.3.7.2-5.el7.noarch.rpm apache-commons-io-2.4-12.el7.noarch.rpm autofs-5.0.7-54.el7.x86_64.rpm apache-commons-lang-2.6-15.el7.noarch.rpm autogen-libopts-5.18-5.el7.x86_64.rpm apache-commons-logging-1.1.2-7.el7.noarch.rpm automake-1.13.4-3.el7.noarch.rpm apache-commons-pool-1.6-9.el7.noarch.rpm automoc-1.0-0.20.rc3.el7.x86_64.rpm appstream-data-7-6.el7.noarch.rpm avahi-0.6.31-15.el7.x86_64.rpm apr-1.4.8-3.el7.x86_64.rpm avahi-autoipd-0.6.31-15.el7.x86_64.rpm apr-devel-1.4.8-3.el7.x86_64.rpm avahi-glib-0.6.31-15.el7.x86_64.rpm apr-util-1.5.2-6.el7.x86_64.rpm avahi-gobject-0.6.31-15.el7.x86_64.rpm apr-util-devel-1.5.2-6.el7.x86_64.rpm avahi-libs-0.6.31-15.el7.x86_64.rpm args4j-2.0.16-13.el7.noarch.rpm avahi-ui-gtk3-0.6.31-15.el7.x86_64.rpm ark-4.10.5-4.el7.x86_64.rpm avalon-framework-4.3-10.el7.noarch.rpm ark-libs-4.10.5-4.el7.x86_64.rpm avalon-logkit-2.1-14.el7.noarch.rpm arptables-0.0.4-7.el7.x86_64.rpm repodata
如果rpm包有增加,需要执行
createrepo --update /data/yumdata/5. 安装nginx,提供http服务
先安装epel-release
[root@localhost ~]# yum install -y epel-release 已加载插件:fastestmirror Loading mirror speeds from cached hostfile 正在解决依赖关系 --> 正在检查事务 ---> 软件包 epel-release.noarch.0.7-11 将被 安装 --> 解决依赖关系完成 依赖关系解决 ============================================================================================================= Package 架构 版本 源 大小 ============================================================================================================= 正在安装: epel-release noarch 7-11 extras 15 k 事务概要 ============================================================================================================= 安装 1 软件包 总下载量:15 k 安装大小:24 k Downloading packages: epel-release-7-11.noarch.rpm | 15 kB 00:00:05 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : epel-release-7-11.noarch 1/1 验证中 : epel-release-7-11.noarch 1/1 已安装: epel-release.noarch 0:7-11 完毕!
6.然后在安装yum install nginx当然,如果无法使用yum,需要下载nginx源码包,并编译安装
配置nginx.conf,使其可以通过IP地址访问到/data/yumdata
7.安装还之后修改一下配置文件
[root@localhost ~]# vi /etc/nginx/nginx.conf
参考配置文件:
server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /data/yumdata; location / { autoindex on; //这一步必须要有,这是为了提供目录浏览 } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }# Settings for a TLS enabled server. # # server { # listen 443 ssl http2 default_server; # listen [::]:443 ssl http2 default_server; # server_name _; # root /usr/share/nginx/html;
上root后面一行改为/data/yumdata; 意思就是能访问到我们创建的目录
# location / { autoindex on; # } #
把这个位置在加上一行autoindex on; 加上它的意思是让我们通过目录的形式浏览到这些包
8.然后在nginx -t看一下有没有错
[root@localhost ~]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
9.然后systemctl start nginx 启动一下nginx
10.这个时候会发现还是不能用浏览器访问,那么需要关闭防火墙
[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable firewalld
然后我们在使用浏览器访问可能还是会出错
11.接下来需要检查一下本机SELinux的开启状态,如果SELinux status参数为enabled即为开启状态,
使用getenforce命令检查,显示enforcing,此时需要我们去临时开启一下。
[root@localhost ~]# getenforce Enforcing
[root@localhost ~]# setenforce 0 [root@localhost ~]# getenforce Permissive
这个时候我们去访问浏览器发现成功了,这个检查方法我是针对我的虚拟机以及浏览器错误信息,但是问题不同还需要找不同的解决方法。
12.. 客户端上配置repo文件
cd /etc/yum.repos.d mkdir bak mv *.rep bak/ //把系统自带的repo挪走 vim my.repo //内容如下[aming] name=myserver baseurl=http://192.168.133.140 gpgcheck=0 enabled=113.. 做一个镜像yum源
比如可以把系统默认的源给镜像到局域网来,思路是用rsync工具把远程的rpm包同步到这台局域网的对应目录下即可。
rsync -av rsync://mirrors.ustc.edu.cn/centos/7/os/x86_64/Packages/ /data/yumdata/14. 当局域网的rpm库有更新时,除了服务端执行“createrepo –update /data/yumdata/”外,客户端上也需要执行
yum clean all //删除缓存