2018-05-28 课后笔记

课后预习

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%]

各个含义如下:

  1. -i:表示安装
  2. -v:表示可视化
  3. -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

安装源码包通常需要三个步骤:

  1. ./configure 这一步可以定制功能,加上相应的选项即可,具体有什么选项可以通过命令.configure --help 查看,这一步会自动检测你的linux系统与相关的套件是否有编译该源码包时所需要的库,因为一旦缺少某个库就不能完成编译。只有检测通过后,才会生成makefile文件
  2. make 使用这个命令,会根据makefile文件中预设的参数进行编译,这一步其实就是gcc工作了,
  3. 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=2

chchedir是放置下载的包的地方,可以修改为自己想放置的位置。
keepcache为1时表示保存已经下载的rpm包。

RPM 包制作

链接:http://https://jin-yang.github.io/post/linux-create-rpm-package.html 

  搭建局域网yum源

1. 先创建一个目录,作为存在rpm包的目录

mkdir /data/yumdata

2. 拷贝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=1

13..  做一个镜像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   //删除缓存

转载于:https://my.oschina.net/u/3851487/blog/1820199

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值