Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-updates > by-pkgid > 68c0c2ff89d8bf9051ff1b9773ed48e4 > files > 8171

libzypp-doc-17.9.0-1.1.mga7.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libzypp: Solver - Vendor protection</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">libzypp
   &#160;<span id="projectnumber">17.9.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('pg_zypp-solv-vendorchange.html','');});
/* @license-end */
</script>
<div id="doc-content">
<div class="PageDoc"><div class="header">
  <div class="headertitle">
<div class="title">Solver - Vendor protection </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Michael Andres <a href="#" onclick="location.href='mai'+'lto:'+'ma@'+'su'+'se.'+'de'; return false;">ma@su<span style="display: none;">.nosp@m.</span>se.d<span style="display: none;">.nosp@m.</span>e</a></dd></dl>
<h1><a class="anchor" id="zypp-solv-vendorchange"></a>
Vendor protection rule</h1>
<p>Tracing a packages origin <code>libzypp</code> uses the packages <code>vendor</code> string. The <code>vendor</code> string is part of the rpm header and thus defined at the time the package was built. It stays the same, no matter which repository was used to ship the package. Using <code>rpm</code> is one way to retrieve a packages <code>vendor</code> string:</p>
<div class="fragment"><div class="line">$ rpm -q --qf <span class="stringliteral">&#39;%{name} \tvendor: %{vendor}\n&#39;</span> libzypp nautilus libdvdread3</div><div class="line">libzypp         vendor: openSUSE</div><div class="line">nautilus        vendor: obs:<span class="comment">//build.opensuse.org/GNOME</span></div><div class="line">libdvdread3     vendor: http:<span class="comment">//packman.links2linux.de</span></div></div><!-- fragment --><p>Also several <code>zypper</code> commands will display a packages <code>vendor:</code> </p>
<div class="fragment"><div class="line">$ zypper info libzypp</div><div class="line"></div><div class="line">Information <span class="keywordflow">for</span> <span class="keyword">package </span>libzypp:</div><div class="line"></div><div class="line">Repository: openSUSE-11.4-Update</div><div class="line">Name: libzypp</div><div class="line">Version: 8.12.6-0.2.1</div><div class="line">Arch: x86_64</div><div class="line">Vendor: openSUSE                &lt;===</div><div class="line">Installed: Yes</div><div class="line">Status: up-to-date</div><div class="line">Installed Size: 7.0 MiB</div><div class="line">Summary: Package, Patch, Pattern, and Product Management</div><div class="line">Description:</div><div class="line">Package, Patch, Pattern, and Product Management</div></div><!-- fragment --><h2><a class="anchor" id="zypp-solv-vendorchange-rule"></a>
The vendor protection rule is quite simple:</h2>
<dl class="section note"><dt>Note</dt><dd>When looking for an installed packages <em>update</em> <em>candidate</em>, we are looking for a package originated by the <em>same</em> <em>vendor</em> (not repository!) as the <em>installed</em> one.</dd></dl>
<h1><a class="anchor" id="zypp-solv-vendorchange-tune"></a>
Vendor protection tuning</h1>
<p>The <em>brute</em> <em>force</em> method is to turn off all vendor protection in <code>/etc/zypp/zypp</code>.conf:</p>
<div class="fragment"><div class="line"><span class="preprocessor">##</span></div><div class="line"><span class="preprocessor">## EXPERTS ONLY: Per default the solver will not replace packages of</span></div><div class="line"><span class="preprocessor">## different vendors, unless you explicitly ask to do so. Setting this</span></div><div class="line"><span class="preprocessor">## option to TRUE will disable this vendor check (unless the application</span></div><div class="line"><span class="preprocessor">## explicitly re-enables it). Packages will then be considered based on</span></div><div class="line"><span class="preprocessor">## repository priority and version only. This may easily damage your system.</span></div><div class="line"><span class="preprocessor">##</span></div><div class="line"><span class="preprocessor">## CHANGING THE DEFAULT IS NOT RECOMMENDED.</span></div><div class="line"><span class="preprocessor">##</span></div><div class="line"><span class="preprocessor">## Valid values:  boolean</span></div><div class="line"><span class="preprocessor">## Default value: false</span></div><div class="line"><span class="preprocessor">##</span></div><div class="line"><span class="preprocessor">solver.allowVendorChange = true</span></div></div><!-- fragment --><h2><a class="anchor" id="zypp-solv-vendorchange-equiv"></a>
Groups of equivalent vendor strings</h2>
<p>A built in example for this is the <code>vendor</code> string <code>SuSE</code>. All vendor strings starting (case insensitive) with <code>"suse"</code>, are considered to be the <em>same</em> <em>vendor</em> and their packages may replace each other without asking.</p>
<p>You may define your own classes of equivalent <code>vendor</code> strings by creating an entry in the <code>/etc/zypp/vendors</code>.d directory. For each group of <code>vendor</code> strings create a file, name it as you like, with the following content:</p>
<div class="fragment"><div class="line">[main]</div><div class="line"><span class="preprocessor">## A comma separated list of equivalent vendor string (prefixes!)</span></div><div class="line"><span class="preprocessor">## Example:</span></div><div class="line"><span class="preprocessor">## vendors = suse,opensuse</span></div><div class="line"><span class="preprocessor">vendors = &lt;PUT YOUR LIST HERE&gt;</span></div></div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>A built in rule unifying <code>"suse"</code> and <code>"opensuse"</code> was disabled in libzypp-16.7.1. The above example would recreate it.</dd></dl>
<h1><a class="anchor" id="zypp-solv-vendorchange-Impl"></a>
Related classes</h1>
<ul>
<li><a class="el" href="classzypp_1_1VendorAttr.html">zypp::VendorAttr</a> (vendor string equivalence and <code>vendors.d</code> parser) </li>
</ul>
</div></div><!-- PageDoc -->
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
  </ul>
</div>
</body>
</html>