yum 位于linux /usr/bin/yum

yum命令是python脚本进行编写的(python 2.6)

#!/usr/bin/python2.6
import sys
try:
import yum
except ImportError:
print >> sys.stderr, """\
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was: %s Please install a package which provides this module, or
verify that the module is installed correctly. It's possible that the above module doesn't match the
current version of Python, which is:
%s If you cannot solve this problem yourself, please go to
the yum faq at:
http://yum.baseurl.org/wiki/Faq """ % (sys.exc_value, sys.version)
sys.exit(1) sys.path.insert(0, '/usr/share/yum-cli')
try:
import yummain
yummain.user_main(sys.argv[1:], exit_code=True)
except KeyboardInterrupt, e:
print >> sys.stderr, "\n\nExiting on user cancel."
sys.exit(1)

yum脚本会先import一些基础的包

sys,sys是python的基础库,非第三方,自带库,支持基本系统相关

yum,为实际调用库,yum脚本会先try的时候import,如果导入不成功会让你下载moudle

我们可以打印看一下这个yum库都有那些东西:

[root@sevck_linux ~]# /usr/bin/python2.6
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import yum
>>> print dir(yum)
['ArchStorage', 'BOOLEAN_STATES', 'ConfigParser', 'ConfigPreProcessor', 'DBVERSION', 'Errors', 'LETTERFLAGS', 'ListPackageSack', 'PATTERNS_INDEXED_MAX', 'PATTERNS_MAX', 'PLUG_OPT_BOOL', 'PLUG_OPT_FLOAT', 'PLUG_OPT_INT', 'PLUG_OPT_STRING', 'PLUG_OPT_WHERE_ALL', 'PLUG_OPT_WHERE_MAIN', 'PLUG_OPT_WHERE_REPO', 'PO_CONFIG', 'PO_DIR', 'PO_DOC', 'PO_FILE', 'PO_GHOST', 'PO_INSTALLEDPKG', 'PO_LOCALPKG', 'PO_REMOTEPKG', 'P_', 'ParsingError', 'REPO_PROBLEM_COMPS', 'REPO_PROBLEM_METADATA', 'REPO_PROBLEM_OTHER', 'REPO_PROBLEM_PACKAGE', 'REPO_PROBLEM_REPOMD', 'RPMTransaction', 'RPM_CHECKSUM_TYPES', 'RPM_TO_SQLITE', 'RepoStorage', 'SYMBOLFLAGS', 'SimpleCliCallBack', 'StringIO', 'TR_DEPENDS', 'TR_DEPENDSON', 'TR_OBSOLETEDBY', 'TR_OBSOLETES', 'TR_UPDATEDBY', 'TR_UPDATES', 'TS_AVAILABLE', 'TS_ERASE', 'TS_FAILED', 'TS_INSTALL', 'TS_INSTALL_STATES', 'TS_OBSOLETED', 'TS_OBSOLETING', 'TS_REMOVE_STATES', 'TS_TRUEINSTALL', 'TS_UPDATE', 'TS_UPDATED', 'TX_BLACK', 'TX_GREY', 'TX_WHITE', 'URLGrabError', 'URLGrabber', 'YUM_PID_FILE', 'YumAvailablePackage', 'YumBase', 'YumInstalledPackage', 'YumLocalPackage', 'YumUrlPackage', '_', '_YumCostExclude', '_YumPreBaseConf', '_YumPreRepoConf', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '__version__', '__version_info__', '_rpm_ver_atleast', 'archDifference', 'callbacks', 'canCoinstall', 'compareEVR', 'comparePoEVR', 'comps', 'config', 'constants', 'default_grabber', 'depsolve', 'errno', 'exception2msg', 'fnmatch', 'format_number', 'glob', 'history', 'i18n', 'isMultiLibArch', 'logging', 'logginglevels', 'metalink', 'misc', 'num', 'operator', 'os', 'packageSack', 'packages', 'packagesNewestByName', 'packagesNewestByNameArch', 'parsePackages', 'parser', 'pgpmsg', 'pkgtag_db', 'plugins', 're', 'repoMDObject', 'repos', 'rpm', 'rpmUtils', 'rpmsack', 'rpmtrans', 'sqlitesack', 'sqlutils', 'string', 'tempfile', 'time', 'to_str', 'to_unicode', 'transactioninfo', 'types', 'urlgrabber', 'varReplace', 'warnings', 'weakref', 'yum', 'yumRepo']
>>> exit()

然后就是执行,

(sys.exc_value, sys.version)

然后就是导入yummain

我用2.6尝试手工import,但是结果失败,不知道其他人有没有和我一样。同样希望解答

[root@sevck_linux ~]# /usr/bin/python2.6
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import yummain
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named yummain
>>>

linux yum 脚本实现的更多相关文章

  1. Linux 用脚本编写搭建yum本地仓库

    Linux 用脚本编写搭建yum本地仓库 源码如下: #!/bin/bash #该脚本用于自动化搭建本地yum仓库 #挂载光盘 #作者:雨中落叶 #博客:https://www.cnblogs.com ...

  2. 【转发】linux yum命令详解

    linux yum命令详解 yum(全 称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理, ...

  3. linux yum 命令 详解

    linux yum命令详解 yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能 ...

  4. linux ——shell 脚本

                                                      linux—shell 脚本  精简基础                 2018/10/30 13 ...

  5. 学习Linux shell脚本中连接字符串的方法

    这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"= ...

  6. LINUX SHELL脚本攻略笔记[速查]

    Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgrep shell数学运算 命令状态 文件描述 ...

  7. Linux yum的配置 , python环境管理, nginx搭建简单学习

    Linux yum的配置 , python环境管理, nginx搭建简单学习 一丶配置yum的数据仓库 ### yum 工具, 方便,自行解决软件之间的依赖关系. # 配置yum源仓库 (可以使用,清 ...

  8. linux开发脚本自动部署及监控

    linux开发脚本自动部署及监控 开发脚本自动部署及监控一.编写脚本自动部署反向代理.web.nfs:要求:1.部署nginx反向代理三个web服务,调度算法使用加权轮询: #!/bin/sh ngx ...

  9. Linux shell脚本编程(三)

    Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...

随机推荐

  1. java基础(3)-多线程(1)

    java多线程 进程与线程 进程:指一个正在执行的应用程序.每个进程执行都有一个执行顺序,该顺序称为一个执行路径或一个控制单元(进程是资源分配的最小单位).一个进程包含1~n个线程 线程:指进程中某个 ...

  2. UOJ67 新年的毒瘤

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  3. External (and Live) snapshots with libvirt

    list all the block devices associated with the guest $ virsh domblklist testvm --details Type Device ...

  4. IOS开发--解析复杂json数据

    json的自我介绍:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅 ...

  5. Maven基础配置

    重要网址 Maven主页:http://maven.apache.org/ Maven central repository:http://search.maven.org/ Maven aliyun ...

  6. redis.h

    [对象] typedef struct redisObject {     unsigned type:4;[REDIS_STRING,REDIS_LIST, HASH, SET, ZSET]     ...

  7. SSIS之序列容器

    序列容器是一种十分简单,但使用非常广泛的容器,它可以对控制流的任务流组件进行结构化处理,把一些业务相关的任务组件,放到一个序列容器中,使整个包看起来更加整洁.美观,就如同我们家里的书柜.衣柜似的,把不 ...

  8. MVC3 学习总结

        1.项目文件结构 controllers,views 2.Model特性实现模型的客户端和服务端的验证   1)自带特性   2)扩展特性,或者重写特性   3.实现MVC filter 的类 ...

  9. EF切换到Mysql数据库,更改web.config

    1)引用: MySql.Data.dll,MySql.Data.Entity.dll,MySql.Data.Entity.EF6.dll 2)添加: <system.data> <D ...

  10. MinGW main()

    MinGW没有wmain入口函数,为了获取宽字符的参数,可以用系统API函数GetCommandLineW. main.cpp #include <iostream> #include & ...