通过python-libvirt管理KVM虚拟机 源码

版本:0.9.13

libvirt库可真是大,先看看该版本里面都有哪些类和方法,验证过的方法我会用O开头,|开头的标示还没亲自验证过。

[python] view plain copy

  1. <span style="font-size:18px;">CLASSES
  2. virConnect
  3. virDomain
  4. virDomainSnapshot
  5. virInterface
  6. virNWFilter
  7. virNetwork
  8. virNodeDevice
  9. virSecret
  10. virStoragePool
  11. virStorageVol
  12. virStream
  13. class virConnect
  14. |  __del__(self)
  15. |  __init__(self, _obj=None)
  16. |  baselineCPU(self, xmlCPUs, flags)
  17. |  changeBegin(self, flags)
  18. |  changeCommit(self, flags)
  19. |  changeRollback(self, flags)
  20. |  close(self)
  21. |  compareCPU(self, xmlDesc, flags)
  22. |  createLinux(self, xmlDesc, flags)
  23. |  createXML(self, xmlDesc, flags)
  24. |  defineXML(self, xml)
  25. |  dispatchDomainEventBlockPullCallback(self, dom, path, type, status, cbData)
  26. |  domainEventDeregister(self, cb)
  27. |  domainEventDeregisterAny(self, callbackID)
  28. |  domainEventRegister(self, cb, opaque)
  29. |  domainEventRegisterAny(self, dom, eventID, cb, opaque)
  30. |  domainXMLFromNative(self, nativeFormat, nativeConfig, flags)
  31. |  domainXMLToNative(self, nativeFormat, domainXml, flags)
  32. |  findStoragePoolSources(self, type, srcSpec, flags)
  33. |  getCPUStats(self, cpuNum, flags)
  34. o  getCapabilities(self)
  35. |  getCellsFreeMemory(self, startCell, maxCells)
  36. o  getFreeMemory(self)    6663041024 bytes
  37. o  getHostname(self)     client
  38. o  getInfo(self)        [‘x86_64‘, 7846, 4, 2394, 1, 1, 4, 1]
  39. o  getLibVersion(self)    9013 ------0.9.13-0ubuntu12.2
  40. |  getMaxVcpus(self, type)   160----type是xml配置文件中domain参数的值
  41. |  getMemoryStats(self, cellNum, flags)
  42. o  getSysinfo(self, flags)
  43. o  getType(self)          QEMU
  44. o  getURI(self)          qemu:///system
  45. o  getVersion(self)      1002000
  46. |  interfaceDefineXML(self, xml, flags)
  47. |  interfaceLookupByMACString(self, macstr)
  48. |  interfaceLookupByName(self, name)
  49. o  isAlive(self)        1
  50. o  isEncrypted(self)     0
  51. o  isSecure(self)        1
  52. o  listAllDomains(self, flags)
  53. o  listDefinedDomains(self)    [‘kvm-t1‘]   列出offline的domains
  54. o  listDefinedInterfaces(self)   []
  55. o  listDefinedNetworks(self)     [‘default‘]
  56. o  listDefinedStoragePools(self)   []
  57. |  listDevices(self, cap, flags)
  58. o  listDomainsID(self)    [2, 3]
  59. o  listInterfaces(self)   [‘br0‘, ‘lo‘]
  60. o  listNWFilters(self)
  61. o  listNetworks(self)
  62. o  listSecrets(self)
  63. o  listStoragePools(self)
  64. o  lookupByID(self, id)
  65. o  lookupByName(self, name)
  66. |  lookupByUUID(self, uuid)
  67. o  lookupByUUIDString(self, uuidstr)
  68. |  migrate(self, domain, flags, dname, uri, bandwidth)
  69. |  migrate2(self, domain, dxml, flags, dname, uri, bandwidth)
  70. |  networkCreateXML(self, xmlDesc)
  71. |  networkDefineXML(self, xml)
  72. |  networkLookupByName(self, name)
  73. |  networkLookupByUUID(self, uuid)
  74. |  networkLookupByUUIDString(self, uuidstr)
  75. |  newStream(self, flags)
  76. |  nodeDeviceCreateXML(self, xmlDesc, flags)
  77. |  nodeDeviceLookupByName(self, name)
  78. |  numOfDefinedDomains(self)
  79. |  numOfDefinedInterfaces(self)
  80. |  numOfDefinedNetworks(self)
  81. |  numOfDefinedStoragePools(self)
  82. |  numOfDevices(self, cap, flags)
  83. |  numOfDomains(self)
  84. |  numOfInterfaces(self)
  85. |  numOfNWFilters(self)
  86. |  numOfNetworks(self)
  87. |  numOfSecrets(self)
  88. |  numOfStoragePools(self)
  89. |  nwfilterDefineXML(self, xmlDesc)
  90. |  nwfilterLookupByName(self, name)
  91. |  nwfilterLookupByUUID(self, uuid)
  92. |  nwfilterLookupByUUIDString(self, uuidstr)
  93. |  restore(self, frm)
  94. |  restoreFlags(self, frm, dxml, flags)
  95. |  saveImageDefineXML(self, file, dxml, flags)
  96. |  saveImageGetXMLDesc(self, file, flags)
  97. |  secretDefineXML(self, xml, flags)
  98. |  secretLookupByUUID(self, uuid)
  99. |  secretLookupByUUIDString(self, uuidstr)
  100. |  secretLookupByUsage(self, usageType, usageID)
  101. |  setKeepAlive(self, interval, count)
  102. |  storagePoolCreateXML(self, xmlDesc, flags)
  103. |  storagePoolDefineXML(self, xml, flags)
  104. |  storagePoolLookupByName(self, name)
  105. |  storagePoolLookupByUUID(self, uuid)
  106. |  storagePoolLookupByUUIDString(self, uuidstr)
  107. |  storageVolLookupByKey(self, key)
  108. |  storageVolLookupByPath(self, path)
  109. |  suspendForDuration(self, target, duration, flags)
  110. |  virConnGetLastError(self)
  111. |  virConnResetLastError(self)
  112. class virDomain
  113. o  ID(self)
  114. 获取domainID
  115. o  OSType(self)
  116. 获取domain的type
  117. o  UUID(self)
  118. 获取domain的UUID
  119. o  UUIDString(self)
  120. 以字符串的形式获取domian的UUID
  121. o  XMLDesc(self, flags)
  122. 提供一个描述domian的xml文件,该文件会在后面用来relanuch domain
  123. |  __del__(self)
  124. |  __init__(self, conn, _obj=None)
  125. |  abortJob(self)
  126. 快速的终止在后台运行的任务,
  127. |  attachDevice(self, xml)
  128. 创建一个虚拟设备,挂载到后端,类似于热插拔技术,只被允许在活跃的domian上面
  129. |  attachDeviceFlags(self, xml, flags)
  130. 挂载一个虚拟设备到domian上面,flags标志控制挂载的方式。
  131. o  autostart(self)
  132. 获取domian的自启动标志
  133. |  blkioParameters(self, flags)
  134. 获取blkio参数
  135. |  blockInfo(self, path, flags)
  136. 获取domian的块设备大小的信息
  137. |  blockIoTune(self, disk, flags)
  138. |  blockJobAbort(self, disk, flags)
  139. 取消一个活跃的块设备....
  140. |  blockJobInfo(self, path, flags)
  141. 针对一个块任务获取process信息
  142. |  blockJobSetSpeed(self, disk, bandwidth, flags)
  143. |  blockPeek(self, disk, offset, size, flags)
  144. 读取domian的disk设备的内容
  145. |  blockPull(self, disk, bandwidth, flags)
  146. |  blockRebase(self, disk, base, bandwidth, flags)
  147. |  blockResize(self, disk, size, flags)
  148. resize一个domian的块设备大小,在domian运行时。
  149. |  blockStats(self, path)
  150. 获取一个domain的块设备的统计信息
  151. |  blockStatsFlags(self, path, flags)
  152. 在domain运行时获取块设备的统计参数
  153. o  controlInfo(self, flags)
  154. 获取一个domain控制接口的详细信息
  155. |  coreDump(self, to, flags)
  156. o  create(self)
  157. 创建一个domian,如果成功,则会把domian移动到运行domian池中。
  158. o  createWithFlags(self, flags)
  159. o  destroy(self)
  160. o  destroyFlags(self, flags)
  161. |  detachDevice(self, xml)
  162. |  detachDeviceFlags(self, xml, flags)
  163. |  diskErrors(self, flags)
  164. 获取disk设备的错误信息
  165. |  getCPUStats(self, total, flags)
  166. 获取运行domian的cpu的统计信息
  167. |  hasCurrentSnapshot(self, flags)
  168. 决定domian是否做一个snapshot
  169. |  hasManagedSaveImage(self, flags)
  170. o  info(self)      [1, 2097152L, 2097152L, 1, 459250000000L]
  171. 获取一个domian的信息
  172. |  injectNMI(self, flags)
  173. |  interfaceParameters(self, device, flags)
  174. 获取接口设备的带宽
  175. o  interfaceStats(self, path)     (119092654L, 1179917L, 0L, 0L, 723682L, 9669L, 0L, 0L)---interfaceStats(‘vnet0‘) vnet0通过XMLDesc获取
  176. 获取一个domian的接口设备的统计信息
  177. o  isActive(self)
  178. 判断一个domian是否在运行
  179. o  isPersistent(self)
  180. 判断一个domian是否和配置文件是强联系的,也就是在shutdown之后他仍旧存在
  181. o  isUpdated(self)
  182. o  jobInfo(self)     [0, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L]
  183. o  listAllSnapshots(self, flags)
  184. 列出所有的快照
  185. |  managedSave(self, flags)
  186. 该函数会suspend一个domian并且保存他在内存中的东西到磁盘上。
  187. |  managedSaveRemove(self, flags)
  188. o  maxMemory(self)
  189. 检索分配给该domian的最大物理内存
  190. o  maxVcpus(self)
  191. 给guest vm提供的最大vcpu数目
  192. o  memoryParameters(self, flags)    {‘swap_hard_limit‘: 9007199254740991L, ‘hard_limit‘: 9007199254740991L, ‘soft_limit‘: 9007199254740991L}
  193. 获取内存参数
  194. |  memoryPeek(self, start, size, flags)
  195. 读取domain的内存中的数据
  196. o  memoryStats(self)     {‘actual‘: 2097152L, ‘rss‘: 375248L}
  197. 获取一个domain的内存统计信息
  198. |  metadata(self, type, uri, flags)
  199. |  migrate(self, dconn, flags, dname, uri, bandwidth)
  200. 迁移一个domian从一台host到另一台host
  201. |  migrate2(self, dconn, dxml, flags, dname, uri, bandwidth)
  202. |  migrateGetMaxSpeed(self, flags)
  203. 获取一个domian当前配置的最大迁移速度
  204. |  migrateSetMaxDowntime(self, downtime, flags)
  205. |  migrateSetMaxSpeed(self, bandwidth, flags)
  206. |  migrateToURI(self, duri, flags, dname, bandwidth)
  207. |  migrateToURI2(self, dconnuri, miguri, dxml, flags, dname, bandwidth)
  208. o  name(self)
  209. 获取一个domian的公共名称
  210. |  numaParameters(self, flags)
  211. 获取NUMA参数
  212. |  openConsole(self, dev_name, st, flags)
  213. |  openGraphics(self, idx, fd, flags)
  214. |  pMSuspendForDuration(self, target, duration, flags)
  215. |  pMWakeup(self, flags)
  216. |  pinVcpu(self, vcpu, cpumap)
  217. |  pinVcpuFlags(self, vcpu, cpumap, flags)
  218. o  reboot(self, flags)
  219. reboot一个domian
  220. o  reset(self, flags)
  221. 立即reset一个domian
  222. o  resume(self)
  223. |  revertToSnapshot(self, snap, flags)
  224. o  save(self, to)
  225. |  saveFlags(self, to, dxml, flags)
  226. o  schedulerParameters(self)    {‘vcpu_quota‘: -1L, ‘vcpu_period‘: 100000L, ‘cpu_shares‘: 1024L}
  227. 获取调度参数
  228. o  schedulerParametersFlags(self, flags)
  229. o  schedulerType(self)
  230. 获取调度类型
  231. |  screenshot(self, stream, screen, flags)
  232. |  sendKey(self, codeset, holdtime, keycodes, nkeycodes, flags)
  233. o  setAutostart(self, autostart)
  234. 配置domian是否在宿主机启动后自启动
  235. |  setBlkioParameters(self, params, flags)
  236. |  setBlockIoTune(self, disk, params, flags)
  237. |  setInterfaceParameters(self, device, params, flags)
  238. |  setMaxMemory(self, memory)
  239. 动态改变一个domian的最大物理内存
  240. o  setMemory(self, memory)
  241. 动态改变分配给一个domian的物理内存
  242. o  setMemoryFlags(self, memory, flags)
  243. |  setMemoryParameters(self, params, flags)
  244. |  setMetadata(self, type, metadata, key, uri, flags)
  245. |  setNumaParameters(self, params, flags)
  246. |  setSchedulerParameters(self, params)
  247. |  setSchedulerParametersFlags(self, params, flags)
  248. |  setVcpus(self, nvcpus)
  249. 动态改变一个domian的vcpus
  250. |  setVcpusFlags(self, nvcpus, flags)
  251. o  shutdown(self)
  252. 关闭一个domian
  253. o  shutdownFlags(self, flags)
  254. |  snapshotCreateXML(self, xmlDesc, flags)
  255. |  snapshotCurrent(self, flags)
  256. |  snapshotListNames(self, flags)
  257. |  snapshotLookupByName(self, name, flags)
  258. |  snapshotNum(self, flags)
  259. o  state(self, flags)
  260. 检查一个domian的状态
  261. o  suspend(self)
  262. suspends一个活跃的domian
  263. o  undefine(self)
  264. undefine一个domian
  265. o  undefineFlags(self, flags)
  266. |  updateDeviceFlags(self, xml, flags)
  267. o  vcpuPinInfo(self, flags)
  268. 获取cpu到vcpu的亲和性
  269. o  vcpus(self)
  270. 获取vcpus的信息
  271. |  vcpusFlags(self, flags)
  272. 查询一个domian使用了多少个vcpus
  273. class virDomainSnapshot
  274. |  __del__(self)
  275. |  __init__(self, dom, _obj=None)
  276. |  delete(self, flags)
  277. 删除一个快照
  278. |  domain(self)
  279. |  getConnect(self)
  280. |  getDomain(self)
  281. |  getName(self)
  282. |  getParent(self, flags)
  283. |  getXMLDesc(self, flags)
  284. 提供一个描述domian snapshot的xml文件
  285. |  hasMetadata(self, flags)
  286. |  isCurrent(self, flags)
  287. |  listAllChildren(self, flags)
  288. |  listChildrenNames(self, flags)
  289. |  numChildren(self, flags)
  290. |  ref(self)
  291. class virInterface
  292. |  MACString(self)
  293. |  XMLDesc(self, flags)
  294. |  __del__(self)
  295. |  __init__(self, conn, _obj=None)
  296. |  connect(self)
  297. |  create(self, flags)
  298. |  destroy(self, flags)
  299. |  isActive(self)
  300. |  name(self)
  301. |  undefine(self)
  302. class virNWFilter
  303. |  UUID(self)
  304. |  UUIDString(self)
  305. |  XMLDesc(self, flags)
  306. |  __del__(self)
  307. |  __init__(self, conn, _obj=None)
  308. |  connect(self)
  309. |  name(self)
  310. |  undefine(self)
  311. class virNetwork
  312. |  UUID(self)
  313. |  UUIDString(self)
  314. |  XMLDesc(self, flags)
  315. |  __del__(self)
  316. |  __init__(self, conn, _obj=None)
  317. |  autostart(self)
  318. |  bridgeName(self)
  319. |  connect(self)
  320. |  create(self)
  321. |  destroy(self)
  322. |  isActive(self)
  323. |  isPersistent(self)
  324. |  name(self)
  325. |  setAutostart(self, autostart)
  326. |  undefine(self)
  327. class virNodeDevice
  328. |  XMLDesc(self, flags)
  329. 获取描述device各个方面信息的xml文件
  330. |  __del__(self)
  331. |  __init__(self, conn, _obj=None)
  332. |  connect(self)
  333. |  destroy(self)
  334. 破坏device对象,虚拟device会在host的系统中被移除
  335. |  dettach(self)
  336. |  listCaps(self)
  337. 列出node设备的能力
  338. |  name(self)
  339. 返回device的名称
  340. |  numOfCaps(self)
  341. |  parent(self)
  342. |  reAttach(self)
  343. |  reset(self)
  344. class virSecret
  345. |  UUID(self)
  346. 获取一个secret的UUID
  347. |  UUIDString(self)
  348. 以字符串的形式获取一个secret的UUID
  349. |  XMLDesc(self, flags)
  350. 获取一个描述secret的xml文件
  351. |  __del__(self)
  352. |  __init__(self, conn, _obj=None)
  353. |  connect(self)
  354. |  setValue(self, value, flags)
  355. 使用secret联合一个值
  356. |  undefine(self)
  357. 删除一个特定的secret
  358. |  usageID(self)
  359. |  usageType(self)
  360. |  value(self, flags)
  361. 使用secret获取联合的值
  362. class virStoragePool
  363. |  UUID(self)
  364. 获取存储池唯一的UUID
  365. |  UUIDString(self)
  366. 以字符串的形式获取存储池的UUID
  367. |  XMLDesc(self, flags)
  368. 获取一个描述存储池各个方面信息的xml文件,
  369. |  __del__(self)
  370. |  __init__(self, conn, _obj=None)
  371. |  autostart(self)
  372. 获取一个存储池的自启动标志
  373. |  build(self, flags)
  374. 目前只有文件系统池可以接受VIR_STORAGE_POOL_BUILD_OVERWRITE和VIR_STORAGE_POOL_BUILD_NO_OVERWRITE.
  375. |  connect(self)
  376. |  create(self, flags)
  377. 创建一个不活跃的存储池
  378. |  createXML(self, xmldesc, flags)
  379. 用xml文件中描述的存储池创建一个存储卷,不是所有的池都支持创建卷
  380. |  createXMLFrom(self, xmldesc, clonevol, flags)
  381. 在父存储池中创建一个存储卷,
  382. |  delete(self, flags)
  383. 删除底层资源,该操作时不可恢复的,
  384. |  destroy(self)
  385. 破坏一个活跃的存储池,他会使host上的池无效,但是会保持配置文件的联系,
  386. |  info(self)
  387. 获取存储池的信息,
  388. |  isActive(self)
  389. 探测一个存储池是否在运行
  390. |  isPersistent(self)
  391. 判断一个存储池是否是配置文件强联系的,就是在shutdown之后仍旧存在。
  392. |  listVolumes(self)
  393. 列出存储卷
  394. |  name(self)
  395. 获取存储池本地唯一的名称
  396. |  numOfVolumes(self)
  397. 获取池中有多少个存储卷
  398. |  refresh(self, flags)
  399. 请求存储池更新它包含的存储卷
  400. |  setAutostart(self, autostart)
  401. 设置自启动标志
  402. |  storageVolLookupByName(self, name)
  403. 在一个存储池中获取一个指向存储卷的指针
  404. |  undefine(self)
  405. 取消一个不活跃的存储池
  406. class virStorageVol
  407. |  XMLDesc(self, flags)
  408. 获取一个描述各个卷存储的xml文件
  409. |  __del__(self)
  410. |  __init__(self, conn, _obj=None)
  411. |  connect(self)
  412. |  delete(self, flags)
  413. 在存储池中删除卷存储。
  414. |  download(self, stream, offset, length, flags)
  415. 以流的形式下载卷中的内容,如果length是0,则在offset后面的内容都会被下载。这个调用是异步的
  416. |  info(self)
  417. 获得关于卷存储的信息,
  418. |  key(self)
  419. 获取卷存储的key,这个值是全局唯一的,所以相同的卷的值相同。
  420. |  name(self)
  421. 获取存储卷的名称,该名称在存储池中是唯一的。
  422. |  path(self)
  423. 获取存储卷的路径,取决于池的配置。既可以固定分配给host也可以动态的分配。
  424. |  resize(self, capacity, flags)
  425. 改变存储卷vol的容量到capacity,如果新的容量需求超过了空闲的池容量,则会失败。
  426. |  storagePoolLookupByVolume(self)
  427. 查找一个指定的卷包含在那个存储池中
  428. |  upload(self, stream, offset, length, flags)
  429. 把一个流的内容上传到卷中。如果offset+length的大小超过了卷的容量,则会失败。
  430. |  wipe(self, flags)
  431. |  wipePattern(self, algorithm, flags)
  432. 和virStorageVolWipe类似, 但是可以选择不同的wiping 算法。
  433. class virStream
  434. |  __del__(self)
  435. |  __init__(self, conn, _obj=None)
  436. |  abort(self)
  437. |  connect(self)
  438. |  download(self, vol, offset, length, flags)
  439. |  eventAddCallback(self, events, cb, opaque)
  440. |  eventRemoveCallback(self)
  441. |  eventUpdateCallback(self, events)
  442. |  finish(self)
  443. |  recv(self, nbytes)
  444. |  recvAll(self, handler, opaque)
  445. |  screenshot(self, domain, screen, flags)
  446. |  send(self, data)
  447. |  sendAll(self, handler, opaque)
  448. |  upload(self, vol, offset, length, flags)
  449. FUNCTIONS
  450. getVersion(name=None)   如果没有name参数,或者name参数的值是None,则会返回libvirt的version,如果name参数的值是libvirt的lib库中的一个连接,则会返回一个元祖(library version,driver version)。如果name参数传入的是一个不存在的驱动,则会返回‘no support for hypervisor‘.
  451. open(name)
  452. 这个函数应该在建立到Hypervisor和xen store的连接时首先被调用。
  453. openAuth(uri, auth, flags)
  454. openReadOnly(name)
  455. 该函数建立一个到lib库函数的受限制的连接,The set of APIs usable are then restricted
  456. on the available methods to control the domains。查看virConnectOpen了解环境变量,他们可以影响opening 驱动。
  457. registerErrorHandler(f, ctx)
  458. 注册一个python函数用来报告error
  459. virEventAddHandle(fd, events, cb, opaque)
  460. 注册一个回调函数,用来监控文件句柄
  461. @fd: file handle to monitor for events
  462. @events: bitset of events to watch from virEventHandleType constants
  463. @cb: callback to invoke when an event occurs
  464. @opaque: user data to pass to callback
  465. virEventAddTimeout(timeout, cb, opaque)
  466. 为时间事件注册一个回调函数
  467. @timeout: time between events in milliseconds
  468. @cb: callback to invoke when an event occurs
  469. @opaque: user data to pass to callback
  470. virEventRegisterDefaultImpl()
  471. virEventRegisterImpl(addHandle, updateHandle, removeHandle, addTimeout, updateTimeout, removeTimeout)
  472. virEventRemoveHandle(watch)
  473. virEventRemoveTimeout(timer)
  474. virEventRunDefaultImpl()
  475. 运行一个迭代的循环事件,
  476. virEventUpdateHandle(watch, events)
  477. virEventUpdateTimeout(timer, timeout)
  478. virGetLastError()
  479. 提供一个获得最近发生在lib库级别的错误信息的指针
  480. virInitialize()
  481. 初始化lib库,调用该函数是强制的,除非你在第一次API调用时,使用的是virconnectopen*
  482. virResetLastError()
  483. 重置最后一次在lib库级别获得的错误日志,该错误对象保存在本地的线程中</span>

原文地址:https://www.cnblogs.com/zknublx/p/9200577.html

时间: 2024-11-25 19:16:38

通过python-libvirt管理KVM虚拟机 源码的相关文章

53 kvm及libvirt、使用virsh管理kvm虚拟机、网络虚拟化技术基础、网络名称空间netns用法详解

01 kvm及libvirt [[email protected] ~]# yum install libvirt libvirt-client python-virtinst virt-manager virt-install -y [[email protected] ~]# yum -y install qemu-kvm [[email protected] ~]# systemctl start libvirtd.service #创建桥 [[email protected] ~]# v

Android的软件包管理服务PackageManagerService源码分析

Android系统下的apk程序都是通过名为PackageManagerService的包管理服务来管理的.PacketManagerService是安卓系统的一个重要服务,由SystemServer启动,主要实现apk程序包的解析,安装,更新,移动,卸载等服务.不管是系统apk(/system/app),还是我们手工安装上去的,系统所有的apk都是由其管理的. 以android 4.0.4的源码为例,android4.0.4/frameworks/base/services/java/com/

51 kvm技术基础、使用qemu-kvm管理kvm虚拟机

01 kvm技术基础 配置环境: node1 192.168.1.121 CentOS release 6.7 1.KVM安装 #确保CPU支持HVM [[email protected] ~]# grep -E --color=auto "(vmx|svm)" /proc/cpuinfo #装载模块 [[email protected] ~]# modprobe kvm [[email protected] ~]# modprobe kvm-intel [[email protect

80个Python经典资料(教程+源码+工具)汇总——下载目录 ...

原文转自:http://bbs.51cto.com/thread-935214-1.html 大家好,51CTO下载中心根据资料的热度和好评度收集了80个Python资料,分享给Python开发的同学.内容包括1个Python专题.66个学习资料.7套Python源码和6个相关软件.附件较多,无法一一分享,在此大家整理一个下载目录了,可以保存以备后用,需要时可选择性下载. 附件下载地址:http://down.51cto.com/data/432858 附件内容部分预览: [专题推荐]Pytho

CentOS 8.1通过Web控制台Cockpit新建及管理KVM虚拟机

CentOS 8.1最小化安装后,并没有安装Cockpit,这时你如果要想通过Web控制台Cockpit来管理KVM虚拟机,你就需要安装它,如何安装?你可以使用以下命令进行安装:#yum install cockpit安装好 cockpit,Web控制台默认情况下未启动,你使用以下命令启用它:#systemctl enable --now cockpit.socket安装好后Web的界面如下图所示: Cockpit控制台的作用Cockpit是一个Web控制台,它具有易于使用的基于Web的界面,使

yum方式软件管理及进阶源码编译安装

1. yum简介2. yum组成结构3. yum配置使用4. yum命令详解5. yum源变量6. yum仓库创建7.进阶源码编译安装 1. yum简介YUM: Yellowdog Updater Modifed, 是由Duke University团队修改Yellow Dog Linux的Yellow Dog Updater开发而来的,是一个基于RPM包管理器的字符前端软件管理器(依赖于RPM包).能够从指定的服务器自动下载RPM包并且安装,可以处理RPM包的依赖关系,并且一次安装所有依赖的软

PHP基于MVC模式下的高校公选课管理信息系统、源码分享

大家好,我是全微毕设团队的创始人,本团队擅长JAVA(SSM,SSH,SPRINGBOOT).PYTHON.PHP.C#.安卓等多项技术. 今天将为大家分析一个高校公选课管理信息系统,本系统的设计是基于php技术+mysql数据库+apache服务器的方式设计,以zendstudio为开发工具,并运用Photoshop CS6技术美化网页,辅之以CSS技术,系统是基于面向对象编程的web应用程序. 随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨.针对学生选课这一环节,本系统从学生网上

rpm管理软件包,以及源码安装详解

一.RPM包的管理    www.2cto.com rpm软件包的一个例子: sudo-1.7.4p5-11.el6.i686.rpm 其中包括软件名(sudo),版本号(1.7.4p5),发行号(11.el6)和硬件平台(i686) 1.卸载 [[email protected] ~]# rpm -e sudo 如果其它软件包有依赖关系,卸载时会产生提示信息,可以使用--nodeps强行卸载 [[email protected] ~]# rpm -e --nodeps samba 2.安装 光

Linux软件包管理{rpm|yum|源码包}2015082901

CentOS软件包管理 Linux程序安装有三种方式: 1.  二进制包安装 a.RPM b.YUM 2.  源码包安装 (1)二进制包管理: RPM CentOS上的二进制包为rpm格式,并且rpm软件包管理程序也叫做rpm(RPM is Package Manager) RPM包管理方式的优点是:安装简单方便,因为软件已经编译完成打包完毕,安装只是个验证环境和解压的过程.此外通过RPM方式安装的软件,RPM工具都会记录软件的安装信息至数据库中(/var/lib/rpm),这样方便了软件日后的