脚本宝典收集整理的这篇文章主要介绍了Linux学习02---软件包管理,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
win的*.exe文件是不能在Linux里面直接使用的,所以win里面大量的病毒和木马到Linux里面就无效了,不可识别,对Linux来说win的软件包对他来说就是一堆文件而已。
脚本安装包,一般是源码包经过二次开发的,类似于win里面软件安装包内的setup.exe,事先写好了安装引导程序,一步步的跟着点击按钮选择安装选项就ok了,在Linux里面就叫install.sh,其实其就是源码包。
脚本安装使用的命令为:
首先,有些脚本没有执行权限,需要添加权限chmod +x agentInstall.sh,再执行脚本程序==./agentInstall.sh install==,这里的./,一般含义中,. 表示当前文件夹,./edge/表示当前文件夹下的edge文件夹,但是 ./ 还有别的功能,就是执行脚本程序,格式为./脚本.sh,安装脚本程序就像上述一样操作即可。
二进制包和源代码包的区别在于,源代码包是C语言的直接写的,原汁原味,直接用源代码包安装有时会报错,二进制包则是经过编译之后的机器语言包(0101)为RPM格式,win里面的*.exe安装包也是二进制包,不过其和RPM的格式不一样,所以Linux系统无法安装*.exe,源码包与二进制包还有区别在于,二进制包无法看见源代码,而且,如果用源代码包安装系统要先编译源码包再安装,编译过程会耗费一段时间,所以一般都用二进制包,简单快捷,网上下载的安装包都是厂商编译完后的二进制包。
优点:
缺点:
二进制包的优点
缺点
httpd-2.2.15-15.el6.centos.1.i686.rpm
注意:区分包名(httpd)和包全名(httpd-2.2.15-15.el6.centos.1.i686.rpm)是有区别的,在有些命令里两个是不一样的概念。
首先创建挂载点,一般选择/mnt/目录下创建挂载点
记住别犯傻,今天我看视频去找cd光盘的设备文件cdrom,居然去/etc/里面去找,简直是脑子抹了屎,没找到还去网上搜为什么,搞了好一会儿,是说怎么没看见设备文件啊,太蠢了,记住/etc/文件夹是存放系统的配置文件的文件夹,设备文件是存放在/dev/里面的。
[root@XYLJ dev]# ll
...
brw-rw----+ 1 root cdrom 11, 0 11月 5 20:48 sr0
lrwxrwxrwx. 1 root root 3 11月 5 20:48 cdrom -> sr0
...
cdrom是指向sr0的软链接
创建挂载点:
[root@XYLJ dev]# mkdir /mnt/cdrom <--创建挂载目录
[root@XYLJ dev]# mount /dev/sr0 /mnt/cdrom/ <--将目标挂载到前面创建的挂载目录
[root@XYLJ dev]# ls -hld /mnt/cdrom/
drwxr-xr-x. 8 root root 2.0K 9月 5 2017 /mnt/cdrom/
[root@XYLJ dev]# cd /mnt/cdrom/
[root@XYLJ cdrom]# ll
总用量 664
-rw-rw-r--. 3 root root 14 9月 5 2017 CentOS_BuildTag
drwxr-xr-x. 3 root root 2048 9月 5 2017 EFI
-rw-rw-r--. 3 root root 227 8月 30 2017 EULA
-rw-rw-r--. 3 root root 18009 12月 10 2015 GPL
drwxr-xr-x. 3 root root 2048 9月 5 2017 images
drwxr-xr-x. 2 root root 2048 9月 5 2017 isolinux
drwxr-xr-x. 2 root root 2048 9月 5 2017 LiveOS
drwxrwxr-x. 2 root root 641024 9月 5 2017 Packages
drwxr-xr-x. 2 root root 4096 9月 5 2017 repodata
-rw-rw-r--. 3 root root 1690 12月 10 2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r--. 3 root root 1690 12月 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root 2883 9月 6 2017 TRANS.TBL
[root@XYLJ cdrom]# ls -dlh Packages/
drwxrwxr-x. 2 root root 626K 9月 5 2017 Packages/
[root@XYLJ cdrom]# ll -hla Packages/
...
-rw-rw-r--. 2 root root 168K 11月 21 2016 poppler-utils-0.26.5-16.el7.x86_64.rpm
-rw-rw-r--. 3 root root 42K 7月 4 2014 popt-1.13-16.el7.x86_64.rpm
-rw-rw-r--. 2 root root 337K 8月 11 2017 pykickstart-1.99.66.12-1.el7.noarch.rpm
-rw-rw-r--. 2 root root 44K 8月 11 2017 pyldb-1.1.29-1.el7.x86_64.rpm
-rw-rw-r--. 3 root root 47K 7月 4 2014 pyliblzma-0.5.3-11.el7.x86_64.rpm
-rw-rw-r--. 2 root root 134K 7月 4 2014 pyOpenSSL-0.13.1-3.el7.x86_64.rpm
-rw-rw-r--. 2 root root 51K 7月 4 2014 pyorbit-2.24.0-15.el7.x86_64.rpm
-rw-rw-r--. 2 root root 26K 7月 4 2014 PyPAM-0.5.0-19.el7.x86_64.rpm
...
可以看见,挂载文件夹的大小非常小而打开里面的文件却是比较多比较大的这点有待讨究。
[root@XYLJ Packages]# rpm -ivh mysql-connector-odbc-5.2.5-6.el7.x86_64.rpm
错误:依赖检测失败:
libodbc.so.2()(64bit) 被 mysql-connector-odbc-5.2.5-6.el7.x86_64 需要
libodbcinst.so.2()(64bit) 被 mysql-connector-odbc-5.2.5-6.el7.x86_64 需要
[root@XYLJ Packages]#
上面安装出现错误,显示安装的包有依赖,其中有一个依赖的包为libodbc.so.2()(64bit)这种以.so.2结尾的包都是库依赖,是不会在 Packages内的,这种库依赖包不是单独独立的包,它是某一个软件包中的软件,也就是说我只要把这个软件所在的包装上,那么这个软件就会装上,就解决了依赖性。
包全名:操作的包是没安装的软件包时,使用包全名。而且要注意路径,因为没有装过,系统没有记录软件包和其路径位置,安装后,包名会被记录在资料数据库内
包名:操作已经安装的软件包时,使用包名。这个时候包已经装过了,系统就会直接去搜索包名,是搜索/var/lib/rpm/中的数据库。(这个库中的文件都是二进制文件,不能用vim直接打开,只能用相应的指令打开,在数据库中搜索,所有不需要绝对路径,直接用命令搜索包即可)
rpm -ivh [包全名]
一般都是-ivh 固定使用
查看挂载信息
[root@XYLJ mnt]# mount <-- 查看挂载信息,/dev/sr0 on /mnt/cdrom 这里说明光盘sr0挂入了/mnt/crom里
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=915956k,nr_inodes=228989,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,pids)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,perf_event)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuacct,cpu)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,net_prio,net_cls)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuset)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,freezer)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,hugetlb)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,devices)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,blkio)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/sda2 on / type ext4 (rw,relatime,seclabel,data=ordered)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=36,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=12657)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
/dev/sda1 on /boot type ext4 (rw,relatime,seclabel,data=ordered)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
vmhgfs-fuse on /mnt/hgfs type fuse.vmhgfs-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=186304k,mode=700)
gvfsd-fuse on /run/user/0/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
/dev/sr0 on /run/media/root/CentOS 7 x86_64 type iso9660 (ro,nosuid,nodev,relatime,uid=0,gid=0,iocharset=utf8,dmode=0500,mode=0400,uhelper=udisks2)
/dev/sr0 on /mnt/cdrom type iso9660 (ro,relatime,uid=0,gid=0,iocharset=utf8,dmode=0500,mode=0400)
[root@XYLJ mnt]#
[root@XYLJ Packages]# rpm -ivh httpd-tools-2.4.6-95.el7.centos.x86_64.rpm
警告:httpd-tools-2.4.6-95.el7.centos.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:httpd-tools-2.4.6-95.el7.centos ################################# [100%]
rpm -Uvh [包全名]
你需要升级某个软件,则你必须在电脑里面有比当前安装的软件更加高级的包,包全名就是这个更高级的包的路径以及包全名。其过程与安装过程完全一样。
rpm -e [包名]
因为卸载时,软件包已经被安装,包名已经被记录在了资料数据库内,所以不需要包全名只需要包名即可,而且也不需要绝对路径,在任何路径下,直接卸载包名即可卸载软件。
比如指令rpm-qa查询所有已经安装的RPM包 ,这里也不需要注意绝对路径,不管在哪都可以查询
[root@XYLJ Packages]# rpm -q P
PackageKit PackageKit-gstreamer-plugin PyYAML
PackageKit-command-not-found PackageKit-gtk3-module
PackageKit-glib PackageKit-yum
[root@XYLJ Packages]# rpm -q PackageKit-g
PackageKit-glib PackageKit-gstreamer-plugin PackageKit-gtk3-module
[root@XYLJ Packages]# rpm -q PackageKit-gtk3-module
PackageKit-gtk3-module-1.1.10-2.el7.centos.x86_64
[root@XYLJ Packages]# rpm -q sdsdf
未安装软件包 sdsdf
rpm -qa | grep [包名]
加上管道符联合grep指令,可以查询所有含包名的软件包。
[root@XYLJ Packages]# rpm -ql http
httpd-tools http-parser
[root@XYLJ Packages]# rpm -ql httpd
未安装软件包 httpd
[root@XYLJ Packages]# rpm -ql httpd-tools
/usr/bin/ab
/usr/bin/htdbm
/usr/bin/htdigest
/usr/bin/htpasswd
/usr/bin/httxt2dbm
/usr/bin/logresolve
/usr/share/doc/httpd-tools-2.4.6
/usr/share/doc/httpd-tools-2.4.6/LICENSE
/usr/share/doc/httpd-tools-2.4.6/NOTICE
/usr/share/man/man1/ab.1.gz
/usr/share/man/man1/htdbm.1.gz
/usr/share/man/man1/htdigest.1.gz
/usr/share/man/man1/htpasswd.1.gz
/usr/share/man/man1/httxt2dbm.1.gz
/usr/share/man/man1/logresolve.1.gz
[root@XYLJ Packages]# rpm -qf /usr/share/man/man1/htpasswd.1.gz
httpd-tools-2.4.6-95.el7.centos.x86_64
[root@XYLJ Packages]#
rpm -qR [包名]
rpm -V [包名]
如果软件未被修改,那么就不会有输出,说明软件还是原来安装的样子,没有改变
如果输出了内容,说明软件内部文件被修改过
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TDoRc3Nc-1636293958686)(C:Users17180AppDataRoamingTyporatypora-user-imagesimage-20211106145600268.png)]
前面八个字符表示验证内容:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LZ9VUJoA-1636293958688)(C:Users17180AppDataRoamingTyporatypora-user-imagesimage-20211106145424359.png)]
后面的字母表示后面发现不同的路径文件的类型,后面的路径表示验证不不同的文件路径。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D04uoune-1636293958689)(C:Users17180AppDataRoamingTyporatypora-user-imagesimage-20211106145500133.png)]
rpm2cpio [包全名包含路径] | cpio -idv .文件绝对路径
rpm2cpio的意思是把rpm格式转化为(2->to的意思)cpio格式,cpio是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
cpio [选项] <[文件或设备]
上边的目录将<号换为 . 号,这里 ‘ . ’号表示当前文件夹的意思
这句话的意思是将包(包全名那里)先转化为cpio,接着用cpio目录从包中提取出指定文件,即后面的文件要有绝对路径来写(在包里面的绝对路径),然后复制到当前目录下,整个的意思就是说,如果你误操作把系统的一个软件比如ls命令删除了,无法使用ls命令了,那么如何修复呢,就是首先要知道ls是属于哪个软件包的,然后从这个包当中提取ls这条命令的文件,然后再把这条命令复制到它原本应该存在的文件路径下。
[root@XYLJ Packages]# cp /bin/ls
ls lsblk lscpu lsinitrd lslocks lsmcli lsmem lsscsi lsusb
lsattr lscgroup lsdiff lsipc lslogins lsmd lsns lssubsys lsusb.py
[root@XYLJ Packages]# cp /bin/ls /tmp/study/ls
[root@XYLJ Packages]# cd /tmp/study/
[root@XYLJ study]# ll
总用量 25392
drwxrwxrwx. 3 root root 4096 11月 2 18:40 a
drwxr-xr-x. 4 root root 4096 11月 2 15:14 jiaojian
-rwxr-xr-x. 1 root root 117672 11月 6 15:23 ls
-rw-r--r--. 1 root root 711892 11月 5 16:20 services.test
-rw-r--r--. 1 root root 0 11月 3 16:27 text002.txt
-rwxrw-r--. 2 root root 12571502 11月 2 15:36 xiaoshuo.hard
drwxr-xr-x. 3 root root 4096 11月 4 12:16 ysb001
-rwxrw-r--. 2 root root 12571502 11月 2 15:36 林动成长记.txt
drwxr-xr-x. 2 root root 4096 11月 2 15:34 小说
drwxr-xr-x. 2 root root 4096 11月 2 13:32 兄弟连
[root@XYLJ study]# ls -hl /bin/ls
-rwxr-xr-x. 1 root root 115K 4月 11 2018 /bin/ls
[root@XYLJ study]# mv /bin/ls /tmp/bin/ls
mv: 无法将"/bin/ls" 移动至"/tmp/bin/ls": 没有那个文件或目录
[root@XYLJ study]# mv /bin/ls /tmp/
[root@XYLJ study]# ls
-bash: /usr/bin/ls: 没有那个文件或目录
[root@XYLJ study]# cd /tmp/
[root@XYLJ tmp]# ll
-bash: /usr/bin/ls: 没有那个文件或目录
[root@XYLJ tmp]# cd study/
[root@XYLJ study]# rpm -qf ls
文件 /tmp/study/ls 不属于任何软件包
[root@XYLJ study]# cp ls /bin/
[root@XYLJ study]# ls
a jiaojian ls services.test text002.txt xiaoshuo.hard ysb001 林动成长记.txt 小说 兄弟连
[root@XYLJ study]# rpm -qf /bin/ls
coreutils-8.22-21.el7.x86_64
[root@XYLJ study]# rm /bin/ls
rm:是否删除普通文件 "/bin/ls"?y
[root@XYLJ study]# ls
-bash: /usr/bin/ls: 没有那个文件或目录
[root@XYLJ study]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-18.el7.x86_64.rpm | cpio
cpio: 你必须指定 -oipt 选项中的一个。
尝试 `cpio --help' 或者 `cpio --usage' 来寻找更多信息。
[root@XYLJ study]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-18.el7.x86_64.rpm |
bash: : 未找到命令...
[root@XYLJ study]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-18.el7.x86_64.rpm | cpio -ivd . /bin/ls
28595 块
[root@XYLJ study]# ls
-bash: /usr/bin/ls: 没有那个文件或目录
[root@XYLJ study]# dir
a jiaojian ls services.test text002.txt xiaoshuo.hard ysb001 林动成长记.txt 小说 兄弟连
[root@XYLJ study]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-18.el7.x86_64.rpm | cpio -ivd ./bin/ls
28595 块
[root@XYLJ study]# dir
a jiaojian ls services.test text002.txt xiaoshuo.hard ysb001 林动成长记.txt 小说 兄弟连
[root@XYLJ study]# cd bin
-bash: cd: bin: 没有那个文件或目录
[root@XYLJ study]# rpm -qpl /mnt/cdrom/Packages/coreutils-8.22-18.el7.x86_64.rpm
...
/usr/bin/fold
/usr/bin/groups
/usr/bin/head
/usr/bin/hostid
/usr/bin/id
/usr/bin/install
/usr/bin/join
/usr/bin/link
/usr/bin/ln
/usr/bin/logname
/usr/bin/ls
...
[root@XYLJ study]# cp ls /bin/ls
[root@XYLJ study]# ls
a jiaojian ls services.test text002.txt xiaoshuo.hard ysb001 林动成长记.txt 小说 兄弟连
[root@XYLJ study]# ls -a
. .. a jiaojian ls services.test text002.txt xiaoshuo.hard ysb001 林动成长记.txt 小说 兄弟连
[root@XYLJ study]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-18.el7.x86_64.rpm | cpio -ivd ./bin/ls
28595 块
[root@XYLJ study]# ls
a jiaojian ls services.test text002.txt xiaoshuo.hard ysb001 林动成长记.txt 小说 兄弟连
[root@XYLJ study]# rm ls
rm:是否删除普通文件 "ls"?y
[root@XYLJ study]# ls
a jiaojian services.test text002.txt xiaoshuo.hard ysb001 林动成长记.txt 小说 兄弟连
[root@XYLJ study]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-18.el7.x86_64.rpm | cpio -ivd ./bin/ls
28595 块
[root@XYLJ study]# ls
a jiaojian services.test text002.txt xiaoshuo.hard ysb001 林动成长记.txt 小说 兄弟连
[root@XYLJ study]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-18.el7.x86_64.rpm | cpio -idv ./bin/ls
28595 块
[root@XYLJ study]# ls
a jiaojian services.test text002.txt xiaoshuo.hard ysb001 林动成长记.txt 小说 兄弟连
[root@XYLJ study]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-18.el7.x86_64.rpm | cpio -idv ./usr/bin/ls
./usr/bin/ls
28595 块
[root@XYLJ study]# ls
a jiaojian services.test text002.txt usr xiaoshuo.hard ysb001 林动成长记.txt 小说 兄弟连
[root@XYLJ study]# cd usr/
[root@XYLJ usr]# ll
总用量 4
drwxr-xr-x. 2 root root 4096 11月 6 15:38 bin
[root@XYLJ usr]# cd bin/
[root@XYLJ bin]# ll
总用量 116
-rwxr-xr-x. 1 root root 117656 11月 6 15:38 ls
[root@XYLJ bin]#
这里先查询ls命令文件所在的安装包,接着查询包安装的文件路径是怎么样的,再从包中提取指定文件到文件夹里。
yum安装也是安装RPM包,其与前面的区别为,前面是手动安装的rmp命令安装,这yum是一个在线工具命令,是在线安装,解决了手动安装的依赖性的问题,不需要考虑这个问题,yum也不一定非要联网,而是可以用光盘作为yum源来安装。
网络yum源一般都是已经配好的。这里是查看yum源配置文件和yum源容器网络地址。==/etc/yum.repos.d/==yum源的配置文件都在这个文件夹下。下面有很多yum源容器,里面写着yum源的地址,yum容器的后缀默认为*.repo,系统也是只认后缀。
[root@XYLJ bin]# cd /etc/yum.repos.d/
[root@XYLJ yum.repos.d]# ll
总用量 36
-rw-r--r--. 1 root root 1664 4月 29 2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 4月 29 2018 CentOS-CR.repo
-rw-r--r--. 1 root root 649 4月 29 2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 4月 29 2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 4月 29 2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 4月 29 2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 4月 29 2018 CentOS-Vault.repo
-rw-r--r--. 1 root root 174 10月 31 15:34 google-chrome.repo
[root@XYLJ yum.repos.d]# vim CentOS-Base.repo
[root@XYLJ yum.repos.d]# vim CentOS-Base.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
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
每个配置文件里面地址有一个关键字,enable=1或者0,1代表可用,0代表不可用,没写默认为1。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P5zCpnGR-1636293958691)(C:Users17180AppDataRoamingTyporatypora-user-imagesimage-20211106160357062.png)]
yum list
查询列出所有可用软件包列表
yum search 关键字
搜索服务器上所有和关键字相关的包
[root@XYLJ yum.repos.d]# yum search httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.cqu.edu.cn
* extras: mirrors.cqu.edu.cn
* updates: mirrors.cqu.edu.cn
========================================================================================================== N/S matched: httpd ==========================================================================================================
keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client
libmicrohttpd-devel.i686 : Development files for libmicrohttpd
libmicrohttpd-devel.x86_64 : Development files for libmicrohttpd
libmicrohttpd-doc.noarch : Documentation for libmicrohttpd
python2-keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client
httpd.x86_64 : Apache HTTP Server
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
httpd-manual.noarch : Documentation for the Apache HTTP server
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
libmicrohttpd.i686 : Lightweight library for embedding a webserver in applications
libmicrohttpd.x86_64 : Lightweight library for embedding a webserver in applications
mod_auth_mellon.x86_64 : A SAML 2.0 authentication module for the Apache Httpd Server
mod_dav_svn.x86_64 : Apache httpd module for Subversion server
名称和简介匹配 only,使用“search all”试试。
[root@XYLJ yum.repos.d]#
yum -y install [包名]
install 为安装。-y为自动回答yes,它每安装一个包都会问用户是否安装,-y就自动回答,不需要输入,直接等待即可。
yum -y update [包名]
注意:yum -y update 不加包名,则为更新整个系统的文件和系统内核,这样会使系统进入升级,很多系统配置文件没经过整理是不能进行内核升级的,会导致宕机,谨慎。
yum -y remove [包名]
尽量不用yum卸载,因为不安全,因为yum卸载是全自动化的操作,它会卸载目标软件,以及目标软件的依赖软件,所有,其依赖软件要有可能也是系统依赖的软件,这样一来,系统就崩溃了,谨慎使用,或者不使用。
yum grouplist
列出所有可用的软件组列表
yum groupinstall 软件组名
安装指定软件组,组名可以由grouplist查询出来
yum groupremove 软件组名
卸载指定软件组
首先,挂载cd关盘到/mnt/cdrom/目录下。
[root@XYLJ ~]# mount /dev/sr0 /mnt/cdrom/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@XYLJ ~]# ll /mnt/cdrom/
总用量 664
-rw-rw-r--. 3 root root 14 9月 5 2017 CentOS_BuildTag
drwxr-xr-x. 3 root root 2048 9月 5 2017 EFI
-rw-rw-r--. 3 root root 227 8月 30 2017 EULA
-rw-rw-r--. 3 root root 18009 12月 10 2015 GPL
drwxr-xr-x. 3 root root 2048 9月 5 2017 images
drwxr-xr-x. 2 root root 2048 9月 5 2017 isolinux
drwxr-xr-x. 2 root root 2048 9月 5 2017 LiveOS
drwxrwxr-x. 2 root root 641024 9月 5 2017 Packages
drwxr-xr-x. 2 root root 4096 9月 5 2017 repodata
-rw-rw-r--. 3 root root 1690 12月 10 2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r--. 3 root root 1690 12月 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root 2883 9月 6 2017 TRANS.TBL
[root@XYLJ ~]#
查看yum源配置文件:
[root@XYLJ ~]# cd /etc/yum.repos.d/
[root@XYLJ yum.repos.d]# ll
总用量 36
-rw-r--r--. 1 root root 1664 4月 29 2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 4月 29 2018 CentOS-CR.repo
-rw-r--r--. 1 root root 649 4月 29 2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 4月 29 2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 4月 29 2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 4月 29 2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 4月 29 2018 CentOS-Vault.repo
-rw-r--r--. 1 root root 174 10月 31 15:34 google-chrome.repo
[root@XYLJ yum.repos.d]#
上述中有8个yum源配置文件,他们的后缀都是*.repo,这是系统识别yum源的标准,所以要使本地yum源生效,那么就要屏蔽其他yum源配置文件,可以通过改后缀的形式来简单屏蔽(后面加.bak后缀)让他们都失效。
[root@XYLJ yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bar
[root@XYLJ yum.repos.d]# mv CentOS-CR.repo CentOS-CR.repo.bak
[root@XYLJ yum.repos.d]# mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
[root@XYLJ yum.repos.d]# mv CentOS-fasttrack.repo CentOS-fasttrack.repo.bak
[root@XYLJ yum.repos.d]# mv CentOS-Sources.repo CentOS-Sources.repo.bak
[root@XYLJ yum.repos.d]# mc CentOS-Vault.repo CentOS-Vault.repo.bak
bash: mc: 未找到命令...
[root@XYLJ yum.repos.d]# mv CentOS-Vault.repo CentOS-Vault.repo.bak
[root@XYLJ yum.repos.d]# mv google-chrome.repo google-chrome.repo.bak
[root@XYLJ yum.repos.d]# mv CentOS-Base.repo.bar CentOS-Base.repo.bak
[root@XYLJ yum.repos.d]# ll
总用量 36
-rw-r--r--. 1 root root 1664 4月 29 2018 CentOS-Base.repo.bak
-rw-r--r--. 1 root root 1309 4月 29 2018 CentOS-CR.repo.bak
-rw-r--r--. 1 root root 649 4月 29 2018 CentOS-Debuginfo.repo.bak
-rw-r--r--. 1 root root 314 4月 29 2018 CentOS-fasttrack.repo.bak
-rw-r--r--. 1 root root 630 4月 29 2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 4月 29 2018 CentOS-Sources.repo.bak
-rw-r--r--. 1 root root 4768 4月 29 2018 CentOS-Vault.repo.bak
-rw-r--r--. 1 root root 174 10月 31 15:34 google-chrome.repo.bak
[root@XYLJ yum.repos.d]#
修改光盘yum源配置文件,注意不要乱改,要保证它的默认格式,不要自己加缩进和空格在每一句的前面和末尾。可能会破坏默认格式,导致报错。修改可以,但是要注意系统配置文件的默认格式,按照它的格式来修改可以,不可自己乱加注释和缩进、空格等。
[root@XYLJ yum.repos.d]# vim CentOS-Media.repo
# CentOS-Media.repo
#
# This repo can be used with mounted DVD media, verify the mount point for
# CentOS-7. You can use this repo and yum to install items directly off the
# DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
# yum --enablerepo=c7-media [command]
#
# or for ONLY the media repo, do this:
#
# yum --disablerepo=* --enablerepo=c7-media [command]
[c7-media] <---这是地址池的名字,也就是前面说的容器的名字,前面是Base
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom <--加入光盘挂载地址,格式要与这里保持一致,注释其他地址
# file:///media/CentOS/
# file:///media/cdrom/
# file:///media/cdrecorder/
gpgcheck=1
enabled=1 <---这里将0改为1 ,让光盘yum源生效,然后保存
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@XYLJ yum.repos.d]# yum list
mythes-sv.noarch 1.3-6.el7 c7-media
mythes-uk.noarch 1.6.5-6.el7 c7-media
nafees-web-naskh-fonts.noarch 1.2-11.el7 c7-media
nasm.x86_64 2.10.07-7.el7 c7-media
navilu-fonts.noarch 1.2-3.el7 c7-media
ncurses-devel.x86_64 5.9-13.20130511.el7 c7-media
ncurses-term.noarch 5.9-13.20130511.el7 c7-media
nepomuk-core.x86_64 4.10.5-5.el7 c7-media
nepomuk-core-devel.x86_64 4.10.5-5.el7 c7-media
这里就以经为光盘yum源了,因为其地址池以经由Base改为了c7-media。
以上是脚本宝典为你收集整理的Linux学习02---软件包管理全部内容,希望文章能够帮你解决Linux学习02---软件包管理所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。