Merge branch 'master' into 'master'

# Conflicts:
#   _topic_map.yml
This commit is contained in:
Prerana Sharma 2017-12-15 10:25:00 +05:30
commit 8558c2051e
49 changed files with 3091 additions and 664 deletions

View file

@ -20,8 +20,6 @@ Topics:
File: chromium
- Name: (FIX ME!) Configuring Sudo
File: configure-sudo
- Name: (FIX ME!) How to create and use a Live CD
File: create-and-use-livecd
- Name: (FIX ME!) How to create an RPM package
File: create-an-rpm
- Name: (FIX ME!) Creating GPG Keys
@ -60,14 +58,24 @@ Topics:
File: jdk
- Name: (FIX ME!) Kernel
File: kernel
- Name: (FIX ME!) FedoraLiveCD
File: livecd
- Name: (FIX ME!) How to create and use Live USB
File: live-usb
- Name: Downloading Fedora
File: /modules/proc_downloading-fedora
- Name: How to create and use Live USB
File: /modules/proc_create-and-use-liveusb
- Name: Booting from USB sticks
File: /modules/proc_booting-from-usb-sticks
- Name: Troubleshooting a live USB
File: /modules/proc_troubleshooting-live-usb
- Name: How to create and use a live CD
File: /modules/proc_create-and-use-livecd
- Name: (FIX ME!) Mirroring
File: mirroring
- Name: (FIX ME!) How to enable nested virtualization in KVM
File: nested-virt-in-kvm
- Name: Enabling nested virtualization in KVM
File: /modules/proc_enabling-nested-virtualization-in-kvm
- Name: Configuration nested virtualization in virt-manager
File: /modules/proc_configuration-nested-virtualization-in-virt-manager
- Name: Testing nested virtualization
File: /modules/proc_testing-nested-virtualization
- Name: (FIX ME!) CLI
File: networking-cli
- Name: (FIX ME!) OpenH264

View file

@ -0,0 +1,11 @@
:experimental:
:md: ./modules
[[adding-new-fonts-fedora]]
= Adding new fonts in Fedora
The default installation of the Fedora Linux (Fedora) includes several basic fonts that are probably all you need for the common life. However, if you plan to use your Fedora as a graphic station for typesetting, processing and designing purposes, these fonts will probably not be enough. In that situation, you want to add new fonts to your system.
include::{md}/proc_adding-new-fonts-as-superuser.adoc[leveloffset=+1]
include::{md}/proc_adding-new-fonts-as-user.adoc[leveloffset=+1]

View file

@ -0,0 +1,675 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 1.5.6.1">
<title>Adding new fonts in Fedora.</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
<style>
/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
/* Remove comment around @import statement below when using as a custom stylesheet */
/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
audio,canvas,video{display:inline-block}
audio:not([controls]){display:none;height:0}
[hidden],template{display:none}
script{display:none!important}
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
a{background:transparent}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
abbr[title]{border-bottom:1px dotted}
b,strong{font-weight:bold}
dfn{font-style:italic}
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
img,object,svg{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
.center{margin-left:auto;margin-right:auto}
.spread{width:100%}
p.lead,.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{font-size:1.21875em;line-height:1.6}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:none}
p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
ul.square{list-style-type:square}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
abbr{text-transform:none}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
blockquote cite:before{content:"\2014 \0020"}
blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media only screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}
table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
table thead,table tfoot{background:#f7f8f7;font-weight:bold}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:" ";display:table}
.clearfix:after,.float-group:after{clear:both}
*:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}
*:not(pre)>code.nobreak{word-wrap:normal}
*:not(pre)>code.nowrap{white-space:nowrap}
pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
em em{font-style:normal}
strong strong{font-weight:400}
.keyseq{color:rgba(51,51,51,.8)}
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menuref{color:#000}
.menuseq b:not(.caret),.menuref{font-weight:inherit}
.menuseq{word-spacing:-.02em}
.menuseq b.caret{font-size:1.25em;line-height:.8}
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
b.button:before,b.button:after{position:relative;top:-1px;font-weight:400}
b.button:before{content:"[";padding:0 3px 0 2px}
b.button:after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:" ";display:table}
#header:after,#content:after,#footnotes:after,#footer:after{clear:both}
#content{margin-top:1.25em}
#content:before{content:none}
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8}
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px}
#header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span:before{content:"\00a0\2013\00a0"}
#header .details br+span.author:before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark:before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber:after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #efefed;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc li{line-height:1.3334;margin-top:.3334em}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#7a2518;font-size:1.2em}
@media only screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}}
@media only screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}
#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
.sect1{padding-bottom:.625em}
@media only screen and (min-width:768px){.sect1{padding-bottom:1.25em}}
.sect1+.sect1{border-top:1px solid #efefed}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
table.tableblock>caption.title{white-space:nowrap;overflow:visible;max-width:0}
.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{color:rgba(0,0,0,.85)}
table.tableblock #preamble>.sectionbody>.paragraph:first-of-type p{font-size:inherit}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:initial}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
.exampleblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child{margin-bottom:0}
.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
.sidebarblock>:first-child{margin-top:0}
.sidebarblock>:last-child{margin-bottom:0}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1}
.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em}
.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal}
@media only screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}}
@media only screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}}
.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.listingblock>.content{position:relative}
.listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
.listingblock:hover code[data-lang]:before{display:block}
.listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:#999}
.listingblock.terminal pre .command:not([data-prompt]):before{content:"$"}
table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0;line-height:1.45}
table.pyhltable td.code{padding-left:.75em;padding-right:0}
pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8}
pre.pygments .lineno{display:inline-block;margin-right:.25em}
table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote:before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right}
.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)}
.quoteblock .quoteblock blockquote{padding:0 0 0 .75em}
.quoteblock .quoteblock blockquote:before{display:none}
.verseblock{margin:0 1em 1.25em 1em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
.quoteblock.abstract{margin:0 0 1.25em 0;display:block}
.quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{text-align:left;word-spacing:0}
.quoteblock.abstract blockquote:before,.quoteblock.abstract blockquote p:first-of-type:before{display:none}
table.tableblock{max-width:100%;border-collapse:separate}
table.tableblock td>.paragraph:last-child p>p:last-child,table.tableblock th>p:last-child,table.tableblock td>p:last-child{margin-bottom:0}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px 0}
table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0 0}
table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
table.frame-all{border-width:1px}
table.frame-sides{border-width:0 1px}
table.frame-topbot{border-width:1px 0}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
td>div.verse{white-space:pre}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
ul.unstyled,ol.unstyled{margin-left:0}
ul.checklist{margin-left:.625em}
ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
ul.inline{margin:0 auto .625em auto;margin-left:-1.375em;margin-right:0;padding:0;list-style:none;overflow:hidden}
ul.inline>li{list-style:none;float:left;margin-left:1.375em;display:block}
ul.inline>li>*{display:block}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
td.hdlist1{font-weight:bold;padding-bottom:1.25em}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist>table tr>td:first-of-type{padding:.4em .75em 0 .75em;line-height:1;vertical-align:top}
.colist>table tr>td:first-of-type img{max-width:initial}
.colist>table tr>td:last-of-type{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0}
.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none;display:inline-block}
a.image object{pointer-events:none}
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
sup.footnote a,sup.footnoteref a{text-decoration:none}
sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em 0;border-width:1px 0 0 0}
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;text-indent:-1.05em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
.gist .file-data>table td.line-data{width:99%}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background-color:#00fafa}
.black{color:#000}
.black-background{background-color:#000}
.blue{color:#0000bf}
.blue-background{background-color:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background-color:#fa00fa}
.gray{color:#606060}
.gray-background{background-color:#7d7d7d}
.green{color:#006000}
.green-background{background-color:#007d00}
.lime{color:#00bf00}
.lime-background{background-color:#00fa00}
.maroon{color:#600000}
.maroon-background{background-color:#7d0000}
.navy{color:#000060}
.navy-background{background-color:#00007d}
.olive{color:#606000}
.olive-background{background-color:#7d7d00}
.purple{color:#600060}
.purple-background{background-color:#7d007d}
.red{color:#bf0000}
.red-background{background-color:#fa0000}
.silver{color:#909090}
.silver-background{background-color:#bcbcbc}
.teal{color:#006060}
.teal-background{background-color:#007d7d}
.white{color:#bfbfbf}
.white-background{background-color:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background-color:#fafa00}
span.icon>.fa{cursor:default}
a span.icon>.fa{cursor:inherit}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note:before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip:before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning:before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution:before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important:before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]:after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@media print{@page{margin:1.25cm .75cm}
*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare):after,a[href^="https:"]:not(.bare):after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]:after{content:" (" attr(title) ")"}
pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
thead{display:table-header-group}
svg{max-width:100%}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important}
.sect1{padding-bottom:0!important}
.sect1+.sect1{border:0!important}
#header>h1:first-child{margin-top:1.25rem}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em 0}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span:before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]:before{display:block}
#footer{background:none!important;padding:0 .9375em}
#footer-text{color:rgba(0,0,0,.6)!important;font-size:.9em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
</style>
</head>
<body id="adding-new-fonts-fedora" class="article">
<div id="header">
<h1>Adding new fonts in Fedora.</h1>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>The default installation of the Fedora Linux (Fedora) includes several basic fonts that are probably all you need for the common life. However, if you plan to use your Fedora as a graphic station for typesetting, processing and designing purposes, these fonts will probably not be enough. In that situation, you want to add new fonts to your system.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="adding-new-fonts-as-superuser">Adding new fonts as the superuser</h2>
<div class="sectionbody">
<div class="paragraph">
<p>System fonts are available to all system users. If you need to add system fonts, you have two ways to do it:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>You can use the <code>dnf</code> package manager to install font packages,</p>
</li>
<li>
<p>or you can manually add fonts to the system and update the font cache to make them available to the users.</p>
</li>
</ol>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<div class="title">Warning</div>
</td>
<td class="content">
<div class="paragraph">
<p>By adding systemwide fonts manually, you will not be able to control them with the package manager. If the font is provided as a distribution package, you should always use the package manager to install it.</p>
</div>
</td>
</tr>
</table>
</div>
<div class="sect2">
<h3 id="installing-new-fonts-with-dnf">Installing new fonts with <code>dnf</code></h3>
<div class="paragraph">
<p>Whenever you can add new fonts by installing a font package with the <code>dnf</code> package manager, you should do so. This method gives you enough control over the font package in the future, such as updating the package and removing it from the system.</p>
</div>
<div class="paragraph">
<p>To install a font package with <code>dnf</code>:</p>
</div>
<div class="ulist">
<div class="title">Before you start</div>
<ul>
<li>
<p>Add and enable repositories with font packages.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<div class="title">Note</div>
</td>
<td class="content">
<div class="paragraph">
<p>A lot of fonts are available from the RPMfusion repository. To enable the repository on your system, follow the instructions on <a href="https://rpmfusion.org/Configuration">the RPMfusion webpage</a>.</p>
</div>
</td>
</tr>
</table>
</div>
</li>
</ul>
</div>
<div class="olist arabic">
<div class="title">Procedure</div>
<ol class="arabic">
<li>
<p>List all available font packages from enabled repositories.</p>
<div class="listingblock">
<div class="content">
<pre>$ sudo dnf search fonts</pre>
</div>
</div>
</li>
<li>
<p>Install the package you need.</p>
<div class="listingblock">
<div class="content">
<pre>$ sudo dnf install libreoffice-opensymbol-fonts.noarch</pre>
</div>
</div>
</li>
</ol>
</div>
<div class="ulist">
<div class="title">More information</div>
<ul>
<li>
<p>The <code>dnf search fonts</code> command lists all available font packages, as well as a their descriptions.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="installing-new-fonts-manually">Installing new fonts manually</h3>
<div class="paragraph">
<p>When you need to install fonts that are not available in a repository, you can install them manually by copying the font files into a system font directory and updating the font cache.</p>
</div>
<div class="olist arabic">
<div class="title">Procedure</div>
<ol class="arabic">
<li>
<p>Create a new directory in the system&#8217;s font directory <code>/usr/share/fonts</code>, where you will place the font files.</p>
<div class="listingblock">
<div class="content">
<pre>$ sudo mkdir /usr/share/fonts/robofont</pre>
</div>
</div>
</li>
<li>
<p>Copy the font file to the font&#8217;s directory created in the previous step.</p>
<div class="listingblock">
<div class="content">
<pre>$ sudo cp ~/fonts/robofont.ttf /usr/share/fonts/robofont</pre>
</div>
</div>
</li>
<li>
<p>Update the font cache.</p>
<div class="listingblock">
<div class="content">
<pre>$ sudo fc-cache -v</pre>
</div>
</div>
</li>
</ol>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="adding-new-fonts-as-user">Adding new fonts as a user</h2>
<div class="sectionbody">
<div class="paragraph">
<p>When you do not have superuser access to install fonts on the system level, or you only need to install a font that will be available to your user account only, there are two methods to do it.</p>
</div>
<div class="sect2">
<h3 id="adding-new-local-fonts-with-gfv">Adding new local fonts with the <strong>Gnome Font Viewer</strong></h3>
<div class="paragraph">
<p>The <strong>Gnome Font Viewer</strong> is an application to display the fonts installed on the system. Besides that, it also allows you to locally install fonts. To add a new font file with <strong>Gnome Font Viewer</strong>:</p>
</div>
<div class="ulist">
<div class="title">Before you start</div>
<ul>
<li>
<p>Make sure you have installed the <code>gnome-font-viewer</code> package.</p>
</li>
</ul>
</div>
<div class="olist arabic">
<div class="title">Procedure</div>
<ol class="arabic">
<li>
<p>Open a file manager.</p>
</li>
<li>
<p>Double-click on a font file to open it in the <strong>Gnome Font Viewer</strong>.</p>
</li>
<li>
<p>Click on the blue <b class="button">Install</b> button on the top bar.</p>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<div class="title">Note</div>
</td>
<td class="content">
<div class="paragraph">
<p>Currently, there is a bug in the application. When you click on the <b class="button">Install</b> button, it does not inform you back about the result of the operation, but the font is already installed.</p>
</div>
</td>
</tr>
</table>
</div>
</li>
</ol>
</div>
<div class="ulist">
<div class="title">More information</div>
<ul>
<li>
<p><strong>Gnome Font Viewer</strong> copies the font files to a font directory in the current user&#8217;s directory <code>.local/share/fonts</code> and updates the font cache.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="adding-new-local-fonts-manually">Adding new local fonts manually</h3>
<div class="paragraph">
<p>If you do not want to use any tools to add new fonts, you can do it manually. You have to copy the font files in the <code>.fonts</code> directory placed in the user&#8217;s directory and update the font cache.</p>
</div>
<div class="ulist">
<div class="title">Before you start</div>
<ul>
<li>
<p>If it does not exist, create a <code>.fonts</code> directory in your user&#8217;s home directory.</p>
</li>
</ul>
</div>
<div class="olist arabic">
<div class="title">Procedure</div>
<ol class="arabic">
<li>
<p>In the <code>.local/share/fonts</code> directory, create a new directory to place your fonts files.</p>
<div class="listingblock">
<div class="content">
<pre>$ mkdir ~/.local/share/fonts/robofont</pre>
</div>
</div>
</li>
<li>
<p>Copy the font file in the newly created directory.</p>
<div class="listingblock">
<div class="content">
<pre>$ cp robofont.ttf ~/.local/share/fonts/robofont</pre>
</div>
</div>
</li>
<li>
<p>Update the font cache.</p>
<div class="listingblock">
<div class="content">
<pre>$ fc-cache -v</pre>
</div>
</div>
</li>
</ol>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
Last updated 2017-12-14 14:43:21 CET
</div>
</div>
</body>
</html>

View file

@ -1000,16 +1000,14 @@ insmod lvm</pre>
</div>
</li>
<li>
<p>Study the output for the partition table of the <code>/dev/sda</code> device. It may look similar to the following example on a dos partition table with three partitons.
will look something like this:</p>
<p>Examine the output to understand the partition table of the <code>/dev/sda</code> device. The following example shows a DOS partition table with three partitions:</p>
<div class="listingblock">
<div class="content">
<pre>(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)</pre>
</div>
</div>
<div class="paragraph">
<p>or similar to this output on a gpt partition table of the <code>/dev/sda</code> device with four
partitions.</p>
<p>A GPT partition table of the <code>/dev/sda</code> device with four partitions could look like this:</p>
</div>
<div class="listingblock">
<div class="content">
@ -1025,7 +1023,7 @@ partitions.</p>
</div>
</div>
<div class="paragraph">
<p>The outcome of the previous command will list the files on <code>/dev/sda1</code>. If this partition contains the <code>/boot</code> directory, it will show the full name of <code>vmlinuz</code> and <code>initramfs</code>.</p>
<p>The outcome of the previous command will list the files on <code>/dev/sda1</code>. The partition that contains the <code>/boot</code> directory is the correct one. There you will search for the full names of the <code>vmlinuz</code> and <code>initramfs</code> files.</p>
</div>
</li>
<li>
@ -1035,6 +1033,9 @@ partitions.</p>
<pre>grub&gt; set root=(hd0,3)</pre>
</div>
</div>
<div class="paragraph">
<p>This command tells the bootloader, that the root partition is the third partition on the first drive. This would correspond to the <code>/dev/sda3</code> device.</p>
</div>
</li>
<li>
<p>Set the desired kernel.</p>
@ -1273,7 +1274,7 @@ improved? Edit this document at <a href="https://pagure.io/fedora-docs/quick-doc
</div>
<div id="footer">
<div id="footer-text">
Last updated 2017-12-13 11:39:02 CET
Last updated 2017-12-14 09:44:46 CET
</div>
</div>
</body>

View file

@ -1,75 +1,29 @@
= Configuring Sudo
= Configuring sudo
'''
include::{md}/concept-what-is-sudo.adoc[leveloffset=+1]
[IMPORTANT]
======
= How to use sudo
This page was automatically converted from https://fedoraproject.org/wiki/Configuring_Sudo
include::{md}/concept-using-sudo-assign-admin-privileges.adoc[leveloffset=+1]
It is probably
include::{md}/procedure-using-same-password-for-root-as-user.adoc[leveloffset=+1]
* Badly formatted
* Missing graphics and tables that do not convert well from mediawiki
* Out-of-date
* In need of other love
include::{md}/concept-logging-sudo-commands.adoc[leveloffset=+1]
Please fix it, remove this notice, and then add to `_topic_map.yml`
[[concept-warning-and-caveats]]
= Warnings and caveats
You must use the `user` account you created following the installation process, at first boot, for daily use and the `root` account only for system administration. Avoid using `root` for any non-administration usage, since the account makes it easy to create security or data risks.
Pull requests accepted at https://pagure.io/fedora-docs/quick-docs
There are several potential risks to keep in mind when using the [command]`sudo` command. You can avoid them by editing the [filename]`/etc/sudoers` configuration file using [command]`visudo` command.
Once that is live, go to the original wiki page and add an `{{old}}`
tag, followed by a note like
include::{md}/concept-sudo-timeout.adoc[leveloffset=+1]
....
{{admon/note|This page has a new home!|
This wiki page is no longer maintained. Please find the up-to-date
version at: https://docs.fedoraproject.org/whatever-the-url
}}
....
include::{md}/concept-using-sudo-access-docker.adoc[leveloffset=+1]
======
include::{md}/procedure-run-docker-using-sudo.adoc[leveloffset=+1]
'''
include::{md}/concept-using-sudo-without-password.adoc[leveloffset=+1]
Fedora users should use a regular user account for regular day to day
activities and a root account only for system administration. Use the
personal account you created following the installation process, at
first boot, for daily use. Use the root account only for administration
of your system.
To run as root use the or commands. Avoid using root for any
non-administration usage, since the root account makes it easy to create
security or data risks. If you frequently use a single user desktop, you
may find it convenient to configure so you can use the same password to
access root as you use for your regular account. To do this, select to
be added to the Administration group during installation. To do it
later, or to add a different user, follow this procedure:
1. Become the root user using the command. Enter the password for the
root account when prompted.
+
....
su -
....
2. Run this command, using your user account name in the place of
"sampleusername":
+
....
usermod sampleusername -a -G wheel
....
+
You must now log off and back on in order to have access to the wheel
group. Note that when prompts you for a password, it expects your user
password, not root's.
[[reference]]
Reference
~~~~~~~~~
http://fedorasolved.org/post-install-solutions/sudo
'''
See a typo, something missing or out of date, or anything else which can be
improved? Edit this document at https://pagure.io/fedora-docs/quick-docs.

View file

@ -1,482 +0,0 @@
= GRUB 2
'''
[IMPORTANT]
======
This page was automatically converted from https://fedoraproject.org/wiki/GRUB_2
It is probably
* Badly formatted
* Missing graphics and tables that do not convert well from mediawiki
* Out-of-date
* In need of other love
Please fix it, remove this notice, and then add to `_topic_map.yml`
Pull requests accepted at https://pagure.io/fedora-docs/quick-docs
Once that is live, go to the original wiki page and add an `{{old}}`
tag, followed by a note like
....
{{admon/note|This page has a new home!|
This wiki page is no longer maintained. Please find the up-to-date
version at: https://docs.fedoraproject.org/whatever-the-url
}}
....
======
'''
[[introduction]]
Introduction
------------
GRUB 2 is the latest version of GNU GRUB, the GRand Unified Bootloader.
A bootloader is the first software program that runs when a computer
starts. It is responsible for loading and transferring control to the
operating system kernel, (Linux, in the case of Fedora). The kernel, in
turn, initializes the rest of the operating system.
GRUB 2 has replaced what was formerly known as GRUB (i.e. version 0.9x),
which has, in turn, become GRUB Legacy.
Starting with Fedora 16, GRUB 2 is the default bootloader on x86 BIOS
systems. For upgrades of BIOS systems the default is also to install
GRUB 2, but you can opt to skip bootloader configuration entirely.
[[tasks-common-issues]]
Tasks / Common issues
---------------------
[[updating-grub-2-configuration-on-bios-systems]]
Updating GRUB 2 configuration on BIOS systems
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The grub2 packages contain commands for installing a bootloader and for
creating a bootloader configuration file.
grub2-install will install the bootloader - usually in the MBR, in free
unpartioned space, and as files in /boot. The bootloader is installed
with something like:
....
grub2-install /dev/sda
....
grub2-mkconfig will create a new configuration based on the currently
running system, what is found in /boot, what is set in
/etc/default/grub, and the customizable scripts in /etc/grub.d/ . A new
configuration file is created with:
....
grub2-mkconfig -o /boot/grub2/grub.cfg
....
The configuration format has evolved over time, and a new configuration
file might be slightly incompatible with the old bootloader. It is
therefore a good idea to first run grub2-install whenever you would need
to run grub2-mkconfig.
The Fedora installer, anaconda, will run these grub2 commands and there
is usually no reason to run them manually.
It is generally safe to directly edit /boot/grub2/grub.cfg in Fedora.
Grubby in Fedora patches the configuration when a kernel update is
performed and will try to not make any other changes than what is
necessary. (Other distributions, in particular Debian and Debian-derived
distributions provide a software patch that adds an command which is
neither included nor needed in Fedora.) Manual changes might however be
overwritten with grub2-mkconfig next time the system is upgraded with
anaconda. Some customizations can be placed in /etc/grub.d/40_custom or
/boot/grub2/custom.cfg and will survive running grub2-mkconfig.
[[updating-grub-2-configuration-on-uefi-systems]]
Updating GRUB 2 configuration on UEFI systems
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To install or fix GRUB 2 on a UEFI system on Fedora 18 or newer, you
need to do four things:
[[create-an-esp]]
Create an ESP
^^^^^^^^^^^^^
UEFI firmware, in general, likes to boot from an EFI System Partition on
a disk with a GPT label. In `gdisk`, it looks something like this:
....
Number Start (sector) End (sector) Size Code Name
1 2048 264191 128.0 MiB EF00 EFI System
....
That partition should be formatted as FAT. If in doubt, FAT32 is a good
dialect of FAT to choose.
Fedora expects this partition to be mounted at `/boot/efi`.
[[install-the-bootloader-files]]
Install the bootloader files
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you don't already have the relevant packages installed, do for Fedora
22 and later versions with link:dnf[DNF] or with YUM for older Fedora
releases:
....
dnf install grub2-efi grub2-efi-modules shim
yum install grub2-efi grub2-efi-modules shim
....
If you do, then try:
....
dnf reinstall grub2-efi grub2-efi-modules shim
yum reinstall grub2-efi grub2-efi-modules shim
....
instead.
Make sure that /boot/efi is mounted when you do this.
This installs the signed shim and the GRUB 2 binary.
[[create-a-grub-2-configuration]]
Create a GRUB 2 configuration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Under EFI, GRUB 2 looks for its configuration in
`/boot/efi/EFI/fedora/grub.cfg`. For newly installed kernels to work,
`grubby` expects `/etc/grub2-efi.cfg` to be a symlink to the real
grub.cfg (i.e. `/boot/efi/EFI/fedora/grub.cfg`).
If you already have a grub 2 EFI config file, you should be okay. If
not, grub2-mkconfig can help, but your mileage may vary.
`   grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg`
[[create-a-boot-menu-entry]]
Create a boot menu entry
^^^^^^^^^^^^^^^^^^^^^^^^
TL;DR: This should happen automatically. If it doesn't, read on.
When you power on your system, your firmware will look for EFI variables
that tell it how to boot. If you're already booted in EFI mode and EFI
runtime services are working correctly, you can configure your boot menu
with `efibootmgr`. If not, you'll have to bootstrap the process.
Fortunately, `shim` can help you bootstrap. The EFI program
`/boot/efi/EFI/BOOT/fallback.efi` will look for files called `BOOT.CSV`
in your ESP and will add boot entries corresponding to them, *if such
entries do not already appear to exist*. `shim` provides a `BOOT.CSV`
file that will add an entry for `grub2-efi` for you. So just using the
EFI Shell to invoke `fallback.efi` should do the trick. You can do this
with commands like:
....
> fs0:
> cd EFI\BOOT
> fallback.efi
....
If you have no boot entries at all, then just booting off your disk in
UEFI mode should automatically invoke `/boot/efi/EFI/BOOT/BOOTX64.EFI`,
which will, in turn, invoke `fallback.efi`.
If you already have incorrect boot entries, you'll either need to delete
them or to modify `BOOT.CSV` to create new entries with different names.
[[adding-other-operating-systems-to-the-grub-2-menu]]
Adding Other operating systems to the GRUB 2 menu
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
grub2-mkconfig will add entries for other operating systems it can find.
That will be done based on the output of the os-prober tool.
That might however not work so well, especially not for booting other
Linux operating systems, and especially not on UEFI systems. See
http://www.gnu.org/software/grub/manual/grub.html#Multi_002dboot-manual-config
.
[[setting-default-entry]]
Setting default entry
~~~~~~~~~~~~~~~~~~~~~
Due to `grub2-mkconfig` (and os-prober) we cannot predict the order of
the entries in `/boot/grub2/grub.cfg`, so we set the default by
name/title instead.
Open `/etc/default/grub` and ensure this line exists:
....
GRUB_DEFAULT=saved
....
and ensure this line not exists:
....
GRUB_SAVEDEFAULT=true
....
or ensure this line exists:
....
GRUB_SAVEDEFAULT=false
....
Apply the change to `grub.cfg` by running:
....
grub2-mkconfig -o /boot/grub2/grub.cfg
....
Now list all possible menu entries
....
grep -P "submenu|^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2
....
Now set the desired default menu entry
....
grub2-set-default "<submenu title><menu entry title>"
....
Verify the default menu entry
....
grub2-editenv list
....
If you understand the risks involved and still want to directly modify
/boot/grub2/grub.cfg, here's how you can do it:
Edit /boot/grub2/grub.cfg, and change the line
....
set default="0"
....
to
....
set default="5"
....
[[encountering-the-dreaded-grub-2-boot-prompt]]
Encountering the dreaded GRUB 2 boot prompt
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If improperly configured, GRUB 2 may fail to load and subsequently drop
to a boot prompt. To address this issue, proceed as follows:
\0. Load the XFS and LVM modules
....
insmod xfs
insmod lvm
....
\1. List the drives which GRUB 2 sees:
....
grub2> ls
....
\2. The output for a dos partition table /dev/sda with three partitons
will look something like this:
....
(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)
....
\3. While the output for a gpt partition table /dev/sda with four
partitions will look something like this:
....
(hd0) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1)
....
\4. With this information you can now probe each partition of the drive
and locate your vmlinuz and initramfs files:
....
ls (hd0,1)/
....
Will list the files on /dev/sda1. If this partition contains /boot, the
output will show the full name of vmlinuz and initramfs.
\5. Armed with the location and full name of vmlinuz and initramfs you
can now boot your system.
5a. Declare your root partition:
....
grub> set root=(hd0,3)
....
5b. Declare the kernel you wish to use:
....
grub> linux (hd0,1)/vmlinuz-3.0.0-1.fc16.i686 root=/dev/sda3 rhgb quiet selinux=0
# NOTE : add other kernel args if you have need of them
# NOTE : change the numbers to match your system
....
5c. Declare the initrd to use:
....
grub> initrd (hd0,1)/initramfs-3.0.0-1.fc16.i686.img
# NOTE : change the numbers to match your system
....
5d. Instruct GRUB 2 to boot the chosen files:
....
grub> boot
....
\6. After boot, open a terminal.
\7. Issue the grub2-mkconfig command to re-create the grub.cfg file
grub2 needed to boot your system:
....
grub2-mkconfig -o /boot/grub2/grub.cfg
....
\8. Issue the grub2-install command to install grub2 to your hard drive
and make use of your config:
....
grub2-install --boot-directory=/boot /dev/sda
# Note: your drive may have another device name. Check for it with mount command output.
....
[[additional-scenario]]
Additional Scenario
~~~~~~~~~~~~~~~~~~~
It's also possible to boot into a _configfile_ that's located on another
partition. If the user is faced with such a scenario, as is often the
case with multi-boot systems containing Ubuntu and Fedora, the following
steps in the grub rescue shell might become useful to know:
....
insmod part_msdos
insmod xfs
insmod lvm
set root='hd0,msdos1'
configfile /grub2/grub.cfg
....
Where, *hd0,msdos1* is the pertinent _boot_ partition, which holds the
grub.cfg file.
[[other-grub-2-issues]]
Other GRUB 2 issues
~~~~~~~~~~~~~~~~~~~
''' Absent Floppy Disk ''': It has been reported by some users that GRUB
2 may fail to install on a partition's boot sector if the computer
floppy controller is activated in BIOS without an actual floppy disk
drive being present. A possible workaround is to run (post OS install)
from rescue mode:
....
grub2-install <target device> --no-floppy
....
[[setting-a-password-for-interactive-edit-mode]]
Setting a password for interactive edit mode
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you wish to password-protect GRUB2's interactive edit mode *but* you
do not want to require users to enter a password to do a plain, simple,
ordinary boot, create /etc/grub.d/01_users with the following lines:
....
cat << EOF
set superusers="root"
export superusers
password root secret
EOF
....
To apply your changes run:
....
grub2-mkconfig -o /boot/grub2/grub.cfg
....
You can encrypt the password by using pbkdf2. Use grub2-mkpasswd-pbkdf2
to encrypt the password, then replace the password line with:
....
password_pbkdf2 root grub.pbkdf2.sha512.10000.1B4BD9B60DE889A4C50AA9458C4044CBE129C9607B6231783F7E4E7191D8254C0732F4255178E2677BBE27D03186E44815EEFBAD82737D81C87F5D24313DDDE7.E9AEB53A46A16F30735E2558100D8340049A719474AEEE7E3F44C9C5201E2CA82221DCF2A12C39112A701292BF4AA071EB13E5EC8C8C84CC4B1A83304EA10F74
....
More details can be found at
https://help.ubuntu.com/community/Grub2/Passwords[Ubuntu Help: GRUB2
Passwords].
Starting from atleast Fedora 21, the `--md5pass` kickstart option must
be set using output from grub2-mkpasswd-pbkdf2.
[[using-old-graphics-modes-in-bootloader]]
Using old graphics modes in bootloader
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Terminal device is chosen with GRUB_TERMINAL; additional quote from
http://www.gnu.org/software/grub/manual/grub.html#Simple-configuration
Valid terminal output names depend on the platform, but may include
console (PC BIOS and EFI consoles), serial (serial terminal),
gfxterm (graphics-mode output), ofconsole (Open Firmware console),
or vga_text (VGA text output, mainly useful with Coreboot).
The default is to use the platform's native terminal output.
The default in Fedora is gfxterm and to get the legacy graphics modes
you need to set GRUB_TERMINAL to right variable from the description
above in /etc/default/grub
[[enable-serial-console-in-grub]]
Enable Serial Console in Grub
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To enable Serial console in grub add the following entry's to
/etc/default/grub
( Adjust baudrate/parity/bits/flow control to fit your environment and
cables)
....
GRUB_CMDLINE_LINUX='console=tty0 console=ttyS0,115200n8'
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
....
And re-generate grub
`grub2-mkconfig -o /boot/grub2/grub.cfg`
[[further-reading]]
Further Reading
---------------
* http://www.gnu.org/software/grub/manual/grub.html
* Features/Grub2
* Anaconda/Features/Grub2Migration
'''
See a typo, something missing or out of date, or anything else which can be
improved? Edit this document at https://pagure.io/fedora-docs/quick-docs.

View file

@ -0,0 +1,33 @@
:md: ./modules
= Installing Software from Source
[[installing-software-from-source]]
The following section contains guidelines and best practices for installing software form source on Fedora.
The instructions below are not prescriptive, but following them minimizes the risk of errors occurring during installation.
// include package management concept
include::{md}/concept_fedora-package-management.adoc[leveloffset=2]
//proc: setting up a development and compilation environment
// - this includes installing missing dev packages using DNF
include::{md}/proc_setting-up-your-local-dev-and-compilation-environment.adoc[leveloffset=2]
// proc: downloading the application source code
include::{md}/proc_downloading-source-code.adoc[leveloffset=2]
include::{md}/proc_compiling_your_application_from_source.adoc[leveloffset=2]
// proc: installing the software using make
////
Fedora defaualt install is to /usr/local/
When make complains about missing devel packages, it is preferable to use dnf to install those packages as opposed to (the way make recommends) compiling those packages.
for troubleshooting red the debug output
Development Tools dnf group
////

View file

View file

@ -0,0 +1,20 @@
[id="concept-logging-sudo-commands"]
= Logging sudo commands
Each successful authentication using the [command]`sudo` command is logged to the [filename]`/var/log/messages` file. For each authentication, the [filename]`/var/log/secure` file lists the user name and command run.
For additional logging, use the `pam_tty_audit` module to enable TTY auditing for specific users. TTY auditing prints the file name of the terminal connected to the standard I/O. To enable TTY auditing, add the following line to your [filename]`/etc/pam.d/system-auth` file:
----
session required pam_tty_audit.so disable=pattern enable=PATTERN
----
Replace _PATTERN_ with a comma-separated list of users (and globs, if needed).
For example, the following command enables TTY auditing for the root user and disables it for all other users:
----
session required pam_tty_audit.so disable=* enable=root
----
Using the `pam_tty_audit` PAM module for auditing only records TTY input. As a result, when the audited user logs in, `pam_tty_audit` records the users exact keystrokes and saves them in [filename]`/var/log/audit/audit.log`. For more information, see the *pam_tty_audit(8)* manual page.

View file

@ -0,0 +1,13 @@
[[concept-sudo-timeout]]
= sudo timeout
By default, [command]`sudo` stores the password for a five minute timeout period. Any subsequent uses of the command during this period will not prompt you for a password. This could be exploited by an attacker if you leave your workstation unattended and unlocked while still being logged in. You can change this behavior by adding the following line to the `/etc/sudoers` configuration file:
------------
Defaults timestamp_timeout=VALUE
------------
Here, _VALUE_ is the desired timeout length in minutes. Setting the value to 0 causes [command]`sudo` to require a password every time.
If an account is compromised, an attacker can use [command]`sudo` to open a new shell with administrative privileges.
Opening a new shell as a root user in this way allows an attacker administrative access for a theoretically unlimited period of time and bypasses the timeout period specified in the `/etc/sudoers` file. Using this method, the attacker *does not* need to provide a password for [command]`sudo` again until the session ends.

View file

@ -0,0 +1,8 @@
[id="concept-using-sudo-access-docker"]
= Using sudo to access Docker
Docker has the ability to change the group ownership of the Docker socket to allow users added to the Docker group to be able to run Docker containers without having to execute the [command]`sudo` or [command]`su` command to become root.
Enabling access to the Docker daemon from non-root users is a problem from a security perspective. It is a security issue for Fedora, because if a user can talk to the Docker socket they can execute a command which gives them full root access to the host system. Docker has no auditing or logging built in, while [command]`sudo` does.
It is recommended that sudo rules are implemented to permit access to the Docker daemon. This allows [command]`sudo` to provide logging and audit functionality.

View file

@ -0,0 +1,24 @@
[id="concept-using-sudo-assign-admin-privileges"]
= Using sudo to assign administrator privileges
Add users to the [directory]`/etc/sudoers` configuration file to allow them to use the [command]`sudo` command. For these users, the [command]`sudo` command is run in the users shell instead of in a root shell. As a result, the root shell can be disabled for increased security.
The administrator can also allow different users access to specific commands using the sudo configuration. Administrators must use the [command]`visudo` command to edit the [directory]`/etc/sudoers` configuration file.
To assign full administrative privileges to a user, type [command]`visudo` and add the following line to the user privilege section after replacing _USERNAME_ with the target user name:
----
USERNAME ALL=(ALL) ALL
----
This line allows the specified user to use [command]`sudo` from any host and execute any command.
To allow a user access to specific commands, use the following example after replacing USERS with a target system group:
----
%USERS localhost=/usr/sbin/shutdown -h now
----
This command allows all members of the _USERS_ system group to issue the [command]`/sbin/shutdown -h` as long as the command is issued from the console.
The man page for [command]`sudoers` has a detailed listing of options for this file.

View file

@ -0,0 +1,12 @@
[[concept-using-sudo-without-password]]
= Using sudo without a password
You can enable `root` access without a password specified, allowing any process on your system to become `root`. Add the following line to your `/etc/sudoers` file:
------------
_user_ ALL=(ALL) NOPASSWD: /usr/bin/docker
------------
This will allow _user_ to access docker without a password.
IMPORTANT: For security reasons, it is recommended that you always use *sudo* with a password.

View file

@ -0,0 +1,11 @@
[id=”concept-what-is-sudo”]
= What is `sudo`
The [command]`sudo` command allows users to gain administrative or root access. When trusted users precede an administrative command with [command]`sudo`, they are prompted for their own password. Then, when they have been authenticated and assuming that the command is permitted, the administrative command is executed as if they were the root user.
Only users listed in the [filename]`/etc/sudoers` configuration file are allowed to use the [command]`sudo` command. The command is executed in the user's shell, not a root shell.
The syntax for the sudo command is as follows:
----
sudo COMMAND
----
Replace _COMMAND_ with the command to run as the root user.

View file

@ -0,0 +1,25 @@
[id='chromium-web-browser']
= Chromium Web Browser
Chromium is the upstream project for Google Chrome.
As of August 2016, Chromium is now included in the Fedora Repositories.
If you were using the old Chromium
http://copr.fedoraproject.org/coprs/spot/chromium/[Copr] repository, upgrade your chromium.
Fedora's Chromium package does not support h264, mp3, or aac, because of legal concerns.
It is built to support the *widevine* plugin (but does not include it).
[id='google-chrome']
== Google Chrome
Chromium is upstream for Google Chrome.
Fedora does not include Google Chrome because it is
a proprietary product and bundles other proprietary software such as
Adobe Flash plugin. However, Google does maintain a dnf or yum repository
for Fedora at https://www.google.com/chrome/
The given link also includes downloadable RPMs that you can use to
install Chrome.

View file

@ -0,0 +1,12 @@
[[package-management-system]]
= Package management system
Fedora is a distribution that uses a package management system. This
system is based on the http://rpm.org[RPM Package Manager], with
several higher-level tools built on top of it, most notably
https://www.freedesktop.org/software/PackageKit/[PackageKit] (the default
GUI package management tool) and the link:Yum[yum] (command line tool).
As of Fedora 22, yum has
been replaced by link:Dnf[ dnf].
The Gnome Package Manager is another
GUI package manager.

View file

@ -0,0 +1,14 @@
[id='third-party-repositories']
= Third party repositories
There are a number of third-party software repositories for Fedora. They have more liberal licensing policies and provide software packages that Fedora excludes for various reasons. These software repositories are not officially affiliated or endorsed by the Fedora Project. Use them at your own discretion. For complete list, see https://rpmfusion.org/FedoraThirdPartyRepos[FedoraThirdPartyRepos]
The following repositories are commonly used by end users and do not conflict with each other:
* http://rpmfusion.org
* http://rpm.livna.org (Complementary to RPM Fusion)
== Mixing third party software repositories
Mixing a lot of third party repositories is not recommended since they might conflict with each other causing instability and hard to debug issues. If you are not a technical user, one way is to not enable the third-party repo by default and instead use the *--enablerepo* switch for yum or dnf, or a similar method configurable in the graphical package manager.

View file

@ -0,0 +1,466 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 1.5.6.1">
<title>Third party repositories</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
<style>
/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
/* Remove comment around @import statement below when using as a custom stylesheet */
/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
audio,canvas,video{display:inline-block}
audio:not([controls]){display:none;height:0}
[hidden],template{display:none}
script{display:none!important}
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
a{background:transparent}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
abbr[title]{border-bottom:1px dotted}
b,strong{font-weight:bold}
dfn{font-style:italic}
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
img,object,svg{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
.center{margin-left:auto;margin-right:auto}
.spread{width:100%}
p.lead,.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{font-size:1.21875em;line-height:1.6}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:none}
p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
ul.square{list-style-type:square}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
abbr{text-transform:none}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
blockquote cite:before{content:"\2014 \0020"}
blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media only screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}
table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
table thead,table tfoot{background:#f7f8f7;font-weight:bold}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:" ";display:table}
.clearfix:after,.float-group:after{clear:both}
*:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}
*:not(pre)>code.nobreak{word-wrap:normal}
*:not(pre)>code.nowrap{white-space:nowrap}
pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
em em{font-style:normal}
strong strong{font-weight:400}
.keyseq{color:rgba(51,51,51,.8)}
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menuref{color:#000}
.menuseq b:not(.caret),.menuref{font-weight:inherit}
.menuseq{word-spacing:-.02em}
.menuseq b.caret{font-size:1.25em;line-height:.8}
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
b.button:before,b.button:after{position:relative;top:-1px;font-weight:400}
b.button:before{content:"[";padding:0 3px 0 2px}
b.button:after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:" ";display:table}
#header:after,#content:after,#footnotes:after,#footer:after{clear:both}
#content{margin-top:1.25em}
#content:before{content:none}
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8}
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px}
#header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span:before{content:"\00a0\2013\00a0"}
#header .details br+span.author:before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark:before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber:after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #efefed;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc li{line-height:1.3334;margin-top:.3334em}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#7a2518;font-size:1.2em}
@media only screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}}
@media only screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}
#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
.sect1{padding-bottom:.625em}
@media only screen and (min-width:768px){.sect1{padding-bottom:1.25em}}
.sect1+.sect1{border-top:1px solid #efefed}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
table.tableblock>caption.title{white-space:nowrap;overflow:visible;max-width:0}
.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{color:rgba(0,0,0,.85)}
table.tableblock #preamble>.sectionbody>.paragraph:first-of-type p{font-size:inherit}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:initial}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
.exampleblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child{margin-bottom:0}
.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
.sidebarblock>:first-child{margin-top:0}
.sidebarblock>:last-child{margin-bottom:0}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1}
.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em}
.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal}
@media only screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}}
@media only screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}}
.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.listingblock>.content{position:relative}
.listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
.listingblock:hover code[data-lang]:before{display:block}
.listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:#999}
.listingblock.terminal pre .command:not([data-prompt]):before{content:"$"}
table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0;line-height:1.45}
table.pyhltable td.code{padding-left:.75em;padding-right:0}
pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8}
pre.pygments .lineno{display:inline-block;margin-right:.25em}
table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote:before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right}
.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)}
.quoteblock .quoteblock blockquote{padding:0 0 0 .75em}
.quoteblock .quoteblock blockquote:before{display:none}
.verseblock{margin:0 1em 1.25em 1em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
.quoteblock.abstract{margin:0 0 1.25em 0;display:block}
.quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{text-align:left;word-spacing:0}
.quoteblock.abstract blockquote:before,.quoteblock.abstract blockquote p:first-of-type:before{display:none}
table.tableblock{max-width:100%;border-collapse:separate}
table.tableblock td>.paragraph:last-child p>p:last-child,table.tableblock th>p:last-child,table.tableblock td>p:last-child{margin-bottom:0}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px 0}
table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0 0}
table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
table.frame-all{border-width:1px}
table.frame-sides{border-width:0 1px}
table.frame-topbot{border-width:1px 0}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
td>div.verse{white-space:pre}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
ul.unstyled,ol.unstyled{margin-left:0}
ul.checklist{margin-left:.625em}
ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
ul.inline{margin:0 auto .625em auto;margin-left:-1.375em;margin-right:0;padding:0;list-style:none;overflow:hidden}
ul.inline>li{list-style:none;float:left;margin-left:1.375em;display:block}
ul.inline>li>*{display:block}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
td.hdlist1{font-weight:bold;padding-bottom:1.25em}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist>table tr>td:first-of-type{padding:.4em .75em 0 .75em;line-height:1;vertical-align:top}
.colist>table tr>td:first-of-type img{max-width:initial}
.colist>table tr>td:last-of-type{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0}
.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none;display:inline-block}
a.image object{pointer-events:none}
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
sup.footnote a,sup.footnoteref a{text-decoration:none}
sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em 0;border-width:1px 0 0 0}
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;text-indent:-1.05em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
.gist .file-data>table td.line-data{width:99%}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background-color:#00fafa}
.black{color:#000}
.black-background{background-color:#000}
.blue{color:#0000bf}
.blue-background{background-color:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background-color:#fa00fa}
.gray{color:#606060}
.gray-background{background-color:#7d7d7d}
.green{color:#006000}
.green-background{background-color:#007d00}
.lime{color:#00bf00}
.lime-background{background-color:#00fa00}
.maroon{color:#600000}
.maroon-background{background-color:#7d0000}
.navy{color:#000060}
.navy-background{background-color:#00007d}
.olive{color:#606000}
.olive-background{background-color:#7d7d00}
.purple{color:#600060}
.purple-background{background-color:#7d007d}
.red{color:#bf0000}
.red-background{background-color:#fa0000}
.silver{color:#909090}
.silver-background{background-color:#bcbcbc}
.teal{color:#006060}
.teal-background{background-color:#007d7d}
.white{color:#bfbfbf}
.white-background{background-color:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background-color:#fafa00}
span.icon>.fa{cursor:default}
a span.icon>.fa{cursor:inherit}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note:before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip:before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning:before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution:before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important:before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]:after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@media print{@page{margin:1.25cm .75cm}
*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare):after,a[href^="https:"]:not(.bare):after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]:after{content:" (" attr(title) ")"}
pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
thead{display:table-header-group}
svg{max-width:100%}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important}
.sect1{padding-bottom:0!important}
.sect1+.sect1{border:0!important}
#header>h1:first-child{margin-top:1.25rem}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em 0}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span:before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]:before{display:block}
#footer{background:none!important;padding:0 .9375em}
#footer-text{color:rgba(0,0,0,.6)!important;font-size:.9em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
</style>
</head>
<body id="third-party-repositories" class="article">
<div id="header">
<h1>Third party repositories</h1>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>There are a number of third-party software repositories for Fedora. They have more liberal licensing policies and provide software packages that Fedora excludes for various reasons. These software repositories are not officially affiliated or endorsed by the Fedora Project. Use them at your own discretion. For complete list, see <a href="https://rpmfusion.org/FedoraThirdPartyRepos">FedoraThirdPartyRepos</a>
The following repositories are commonly used by end users and do not conflict with each other:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="http://rpmfusion.org" class="bare">http://rpmfusion.org</a></p>
</li>
<li>
<p><a href="http://rpm.livna.org" class="bare">http://rpm.livna.org</a> (Complementary to RPM Fusion)</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_mixing_third_party_software_repositories">Mixing third party software repositories</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Mixing a lot of third party repositories is not recommended since they might conflict with each other causing instability and hard to debug issues. If you are not a technical user, one way is to not enable the third-party repo by default and instead use the <strong>--enablerepo</strong> switch for yum or dnf, or a similar method configurable in the graphical package manager.</p>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
Last updated 2017-12-14 18:16:39 IST
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,14 @@
[[using-the-system-wide-trust-store]]
= Using the System-wide Trust Store
In Fedora, the consolidated system-wide trust store is located in the `/etc/pki/ca-trust/` and `/usr/share/pki/ca-trust-source/` directories. The trust settings in `/usr/share/pki/ca-trust-source/` are processed with lower priority than settings in `/etc/pki/ca-trust/`.
Certificate files are treated depending on the subdirectory they are installed to:
* `/usr/share/pki/ca-trust-source/anchors/` or `/etc/pki/ca-trust/source/anchors/` - for trust anchors.
* `/usr/share/pki/ca-trust-source/blacklist/` or `/etc/pki/ca-trust/source/blacklist/` - for distrusted certificates.
* `/usr/share/pki/ca-trust-source/` or `/etc/pki/ca-trust/source/` - for certificates in the extended BEGIN TRUSTED file format.
NOTE: In a hierarchical cryptographic system, a trust anchor is an authoritative entity which is assumed to be trustworthy. For example, in X.509 architecture, a root certificate is a trust anchor from which a chain of trust is derived. The trust anchor must be put in the possession of the trusting party beforehand to make path validation possible.

View file

@ -0,0 +1,28 @@
[[sec-Adding-New-Certificates]]
= Adding New Certificates
.Before you start
.Procedure
To add a certificate in the simple PEM or DER file formats to the list of CAs trusted on the system, copy the certificate file to the `/usr/share/pki/ca-trust-source/anchors/` or `/etc/pki/ca-trust/source/anchors/` directory, for example:
[subs="macros"]
----
# cp pass:quotes[_~/certificate-trust-examples/Cert-trust-test-ca.pem_] pass:quotes[_/usr/share/pki/ca-trust-source/anchors/_]
----
To update system-wide trust store configuration, use the [command]`update-ca-trust` command:
----
# update-ca-trust
----
[NOTE]
====
While the Firefox browser is able to use an added certificate without executing [command]`update-ca-trust`, it is recommended to run [command]`update-ca-trust` after a CA change. Also note that browsers, such as Firefox, Epiphany, or Chromium, cache files, and you might need to clear browser's cache or restart your browser to load current system certificates configuration.
====
.More information

View file

@ -0,0 +1,73 @@
[[adding-new-fonts-as-superuser]]
= Adding new fonts as the superuser
System fonts are available to all system users. If you need to add system fonts, you have two ways to do it:
. You can use the `dnf` package manager to install font packages,
. or you can manually add fonts to the system and update the font cache to make them available to the users.
[WARNING]
====
By adding systemwide fonts manually, you will not be able to control them with the package manager. If the font is provided as a distribution package, you should always use the package manager to install it.
====
[[installing-new-fonts-with-dnf]]
== Installing new fonts with `dnf`
Whenever you can add new fonts by installing a font package with the `dnf` package manager, you should do so. This method gives you enough control over the font package in the future, such as updating the package and removing it from the system.
To install a font package with `dnf`:
.Before you start
* Add and enable repositories with font packages.
+
[NOTE]
====
A lot of fonts are available from the RPMfusion repository. To enable the repository on your system, follow the instructions on link:https://rpmfusion.org/Configuration[the RPMfusion webpage].
====
.Procedure
. List all available font packages from enabled repositories.
+
----
$ sudo dnf search fonts
----
. Install the package you need.
+
----
$ sudo dnf install libreoffice-opensymbol-fonts.noarch
----
.More information
* The `dnf search fonts` command lists all available font packages, as well as a their descriptions.
[[installing-new-fonts-manually]]
== Installing new fonts manually
When you need to install fonts that are not available in a repository, you can install them manually by copying the font files into a system font directory and updating the font cache.
.Procedure
. Create a new directory in the system's font directory `/usr/share/fonts`, where you will place the font files.
+
----
$ sudo mkdir /usr/share/fonts/robofont
----
. Copy the font file to the font's directory created in the previous step.
+
----
$ sudo cp ~/fonts/robofont.ttf /usr/share/fonts/robofont
----
. Update the font cache.
+
----
$ sudo fc-cache -v
----

View file

@ -0,0 +1,60 @@
[[adding-new-fonts-as-user]]
= Adding new fonts as a user
When you do not have superuser access to install fonts on the system level, or you only need to install a font that will be available to your user account only, there are two methods to do it.
[[adding-new-local-fonts-with-gfv]]
== Adding new local fonts with the *Gnome Font Viewer*
The *Gnome Font Viewer* is an application to display the fonts installed on the system. Besides that, it also allows you to locally install fonts. To add a new font file with *Gnome Font Viewer*:
.Before you start
* Make sure you have installed the `gnome-font-viewer` package.
.Procedure
. Open a file manager.
. Double-click on a font file to open it in the *Gnome Font Viewer*.
. Click on the blue btn:[Install] button on the top bar.
+
[NOTE]
====
Currently, there is a bug in the application. When you click on the btn:[Install] button, it does not inform you back about the result of the operation, but the font is already installed.
====
.More information
* *Gnome Font Viewer* copies the font files to a font directory in the current user's directory `.local/share/fonts` and updates the font cache.
[[adding-new-local-fonts-manually]]
== Adding new local fonts manually
If you do not want to use any tools to add new fonts, you can do it manually. You have to copy the font files in the `.fonts` directory placed in the user's directory and update the font cache.
.Before you start
* If it does not exist, create a `.fonts` directory in your user's home directory.
.Procedure
. In the `.local/share/fonts` directory, create a new directory to place your fonts files.
+
----
$ mkdir ~/.local/share/fonts/robofont
----
. Copy the font file in the newly created directory.
+
----
$ cp robofont.ttf ~/.local/share/fonts/robofont
----
. Update the font cache.
+
----
$ fc-cache -v
----

View file

@ -0,0 +1,43 @@
[id='booting_from_USB_sticks']
== Booting from USB sticks
Almost all modern PCs can boot from USB sticks. However, how you tell the system to boot from a USB stick varies substantially from system to system. Initially, you can try this:
. Power off the computer.
. Plug the USB drive into a USB port.
. Remove all other portable media, such as CDs, DVDs, floppy disks or other USB sticks.
. Power on the computer.
. If the computer is configured to automatically boot from the USB drive, you will see a screen that says "Automatic boot in 10 seconds..." with a countdown.
+
If you do a native UEFI boot, where you will see a rather more minimal boot menu.
If the computer starts to boot off the hard drive as normal, you'll need to manually configure it to boot off the USB drive. Usually, that should work like this:
. Wait for a safe point to reboot.
. As the machine starts to reboot, watch carefully for instructions on which key to press. Usually a function key, `Escape`, `Tab` or `Delete` is to be pressed to enter the boot device selection menu, `BIOS setup`, `firmware`, or `UEFI`. Press and hold that key. If you miss the window of opportunity, often only a few seconds, then reboot and try again.
. Use the firmware, `BIOS`, interface or the boot device menu to put your USB drive first in the boot sequence. It might be listed as a hard drive rather than a removable drive. Each hardware manufacturer has a slightly different method for doing so.
+
IMPORTANT: Your computer could become unbootable or lose functionality if you change any other settings. Though these settings can be reverted, you'll need to remember what you changed in order to do so.
. Save the changes, exit, and the computer should boot from the USB drive.
If your system has a UEFI firmware, it will usually allow you to boot the stick in UEFI native mode or BIOS compatibility mode. If you boot in UEFI native mode and perform a Fedora installation, you will get a UEFI native Fedora installation. If you boot in BIOS compatibility mode and perform a Fedora installation, you will get a BIOS compatibility mode Fedora installation.
For more information on all this, see the http://fedoraproject.org/wiki/Unified_Extensible_Firmware_Interface[UEFI page]. USB sticks written from `x86_64` images with link:using-fedora-media-writer[Fedora Media Writer], `GNOME Disk Utility`, dd, other dd-style utilities, and link:how-to-create-and-use-a-live-CD[livecd-iso-to-disk] with --efi should be UEFI native bootable. Sticks written with other utilities may not be UEFI native bootable, and sticks written from i686 images will never be UEFI bootable.
[id='identifying_stick']
== Identifying a stick on Linux
Most of the writing methods will require you to know the `/dev` name for your USB stick, e.g. `/dev/sdc`, when using them on Linux. You do not need to know this in order to use `Fedora Media Writer`. To find this out:
. Insert the USB stick into a USB port.
. Open a terminal and run dmesg.
. Near the end of the output, you will see something like:
+
[options="nowrap"]
----
[32656.573467] sd 8:0:0:0: [sdX] Attached SCSI removable disk
----
+
`sdX` will be `sdb`, `sdc`, `sdd`, etc.
[NOTE]
====
This is the name of the disk you will use. We'll call it `sdX` from now on. If you have connected more than one USB stick to the system, be careful that you identify the correct one, often you will see a manufacturer name or capacity in the output which you can use to make sure you identified the correct stick.

View file

@ -0,0 +1,18 @@
[[compiling-your-application-from-source]]
= Compiling Your Application
// Note: It is preferable to use DNF to using source install. DNF can track what packages you have installed on your system. It facilitates updates and makes it easier to completely remove your files from your system
. Navigate to the directory containing your source:
+
[bash,subs="attributes+"]
----
cd <your_source_dir>
----
+
. Run the following command to compile and install your application:
+
[bash,subs="attributes+"]
----
./configure && make && make install
----

View file

@ -0,0 +1,15 @@
= Configuration nested virtualization in virt-manager
[[configuration-nested-virtualization-in-virt-manager]]
Configure your VM to use nested virtualization:
. Open *virt-manager*, double-click the VM, and click the *Show virtual hardware details* icon.
. Click *CPUs* in the side menu. In the *Configuration* section, there are two options - either type
`host-passthrough` in the *Model:* field or select *Copy host CPU
configuration* check box (that fills the `host-model` value in the Model
field).
+
[NOTE]
Using host-passthrough is not recommended for general usage and just for nested virtualization purposes.
. Click Apply.

View file

@ -0,0 +1,168 @@
[id='how-to-create-and-use-a-live-CD']
= How to create and use a live CD
[[getting-started]]
== Getting started
To create a live image, the `livecd-creator` tool is used. For this, super user
privileges are needed.
The `livecd-creator` tool is part of the `livecd-tools` package. If it
is not installed on your system, add it with link:dnf[DNF] or
link:yum[YUM]:
If you are using `yum`:
[options="nowrap"]
----
su -c 'yum install livecd-tools spin-kickstarts' #Versions prior to Fedora 22
----
If you are using `dnf`:
[options="nowrap"]
----
su -c 'dnf install livecd-tools spin-kickstarts' #Fedora 22 and beyond
----
If you are interested in localized (i.e. translated into other
languages) live CD files, install also *l10n-kickstarts*.
[id='configuring-the-image']
== Configuring the image
The configuration of the live image is defined by a file called
_kickstart_. It can include some basic system configuration items, the
package manifest and a script to be run at the end of the build process.
For the Fedora project, the most important live image configurations
files are:
* *https://git.fedorahosted.org/cgit/spin-kickstarts.git/tree/fedora-live-base.ks[fedora-live-base.ks]*
: The base live image system, included in the `livecd-tools` package.
* For _Fedora 20 and earlier_:
*https://git.fedorahosted.org/cgit/spin-kickstarts.git/tree/fedora-livecd-desktop.ks[fedora-livecd-desktop.ks]*
: Complete desktop with applications and input/output support for all
supported locales in Fedora. This one is part of the `spin-kickstarts`
package. Despite the name, this is the kickstart that generates the
~1GB-sized images for recent releases.
* For _Fedora 21 and later_:
*https://git.fedorahosted.org/cgit/spin-kickstarts.git/tree/fedora-live-workstation.ks[fedora-live-workstation.ks]*. This is the Workstation product configuration.
_kickstart_ files for other spins, e.g. Fedora Electronics Lab, can be
found in `/usr/share/spin-kickstarts/` after installing the `spin-kickstarts` package. These pre-made
configuration files can be a great place to start, as they already have
some useful pre and post-installation scripts.
image:system-config-kickstart.png[system-config-kickstart,title="fig:system-config-kickstart"]
You can create a customized _kickstart_ file by running `system-config-kickstart`.
[NOTE]
====
You might have to install the package first with `su -c "dnf install system-config-kickstart"` in Fedora 22 and beyond or `su -c "yum install system-config-kickstart"` in earlier versions of Fedora. This tool is mainly intended for generating kickstart files for automated installs, not live images, so the output will probably not be usable without editing, but it may help you to generate particular kickstart directives. Remember to add the line `%include /usr/share/spin-kickstarts/fedora-live-base.ks` at the beginning of your _kickstart_ file to include the base live configuration.
====
[id='making-the-image']
== Making the image
To make the image, simply issue the following command:
[options="nowrap"]
----
livecd-creator --verbose \
--config=/path/to/kickstart/file.ks \
--fslabel=Image-Label \
--cache =/var/cache/live
----
The name given by _--fs-label_ is used:
* As a file system label on the ext3 and iso9660 file systems. As such,
it's visible on the desktop as the CD name.
* In the _isolinux_ boot loader.
If you have the repositories available locally and don't want to wait
for the download of packages, just substitute the URLs listed in the
configuration file to point to your local repositories.
[NOTE]
====
If you have an x86_64 machine you're building on but you want a 32-bit happy iso image, add the following before your livecd-creator command:
[options="nowrap"]
----
setarch i686 livecd-creator [...]
----
====
[id='examples']
== Examples
[id='spinning-the-fedora-desktop']
=== Spinning the fedora desktop
The following command:
[options="nowrap"]
----
livecd-creator --verbose \
--config=/usr/share/spin-kickstarts/fedora-live-workstation.ks \
--fslabel=Fedora-LiveCD \
--cache=/var/cache/live
----
This will create a live CD called `Fedora-LiveCD` using the
*fedora-live-workstation.ks* configuration file.
[id='a-barebones-live-cd']
=== A Barebones live CD
The following command:
[options="nowrap"]
----
livecd-creator --verbose \
--config=/usr/share/doc/livecd-tools-`rpm -q livecd-tools --qf "%{VERSION}"`/livecd-fedora-minimal.ks \
--cache=/var/cache/live
----
This will create a live CD that will boot to a login prompt.
[id='testing-your-live-cd-using-kvm-or-qemu']
== Testing your live CD using KVM or qemu
image:Screenshot_qemu_gtk3.png[QEMU running Fedora
17,title="QEMU running Fedora 17"]
As root:
[options="nowrap"]
----
qemu-kvm -m 2048 -vga qxl -cdrom filename.iso
----
[NOTE]
====
If you do not have https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine[KVM] support, you have to use qemu instead.
[options="nowrap"]
----
qemu-system-x86_64 -m 2048 -vga qxl -cdrom filename.iso
----
====
Replace _filename.iso_ with the name of your created Live CD image and
_qemu-system-x86_64_ with an appropriate qemu binary for the target
system, e.g *qemu-system-i386*.
[id='using-your-new-live-image']
== Using your new live image
You can http://docs.fedoraproject.org/readme-burning-isos/[burn your
image directly to a CD or a DVD] if it fits, or you can
link:how_to_create_and_use_live_USB[write it to a USB stick].
[id='live-image-media-verification']
== Live image media verification
The live image can incorporate functionality to verify itself. To do so,
you need to have *isomd5sum* installed both on the system used for
creating the image and installed into the image. This is so that the
*implantisomd5* and *checkisomd5* utilities can be used. These utilities
take advantage of embedding an `md5sum` into the application area of the
`iso9660` image. This then gets verified before mounting the real root
filesystem.

View file

@ -0,0 +1,174 @@
[id='how_to_create_live_USB']
= How to create Live USB
You can write all Fedora ISO images to a USB stick, making this a convenient way on any USB-bootable computer to either install Fedora or try a *live* Fedora environment without writing to the computer's hard disk. You will need a USB stick at least as large as the image you wish to write.
[id='using-fedora-media-writer']
== Using Fedora Media Writer
The best tool to create a Fedora USB stick is the https://github.com/MartinBriza/MediaWriter[Fedora Media Writer] utility, which was formerly known as *LiveUSB Creator*. It is available on Fedora. For other Linux distributions, Windows and macOS, this can be done using https://flatpak.org/[Flatpak].
[IMPORTANT]
====
This method will destroy all data on the USB stick. If you need a non-destructive write method (to preserve existing data on your USB stick) and/or support for 'data persistence', you can use the xref:[livecd-iso-to-disk] utility on Fedora.
====
Fedora Media Writer is graphical and easy to use. It can download recent Fedora images for you as well as writing them to the USB stick.
On Fedora, you can use a Fedora graphical software installation tool to install the https://apps.fedoraproject.org/packages/mediawriter[mediawriter package], or use the command line:
[options="nowrap"]
----
su -c 'dnf install mediawriter'
----
On Windows and macOS, you can download the installer from the https://github.com/MartinBriza/MediaWriter/releases[releases page]. On other Linux distributions, if they support the https://flatpak.org/[Flatpak] application distribution system, you can download a flatpak from the https://github.com/MartinBriza/MediaWriter/releases[releases page].
To run the tool, look for `Fedora Media Writer` in the system menus. When you start `Fedora Media Writer`, the three dots at the bottom will be flashing while the tool checks for a new Fedora release.
To write the stick:
* Choose which Fedora flavor you want to install or try.
+
On the title screen, you can choose Workstation, Server or your own .iso file. Other choices (including KDE, Cinnamon, Xfce and so on) are under the "..." button at the bottom of the list.
* Ensure your USB stick is plugged into the system.
* Click Create Live USB.
* Ensure the right stick is selected.
* Click Write to disk and wait for the write to complete.
* Once the stick has been written, shut the system down and boot it from the USB stick.
After writing, your USB stick will have a changed partition layout and some systems may report it to be about 10MB large. To return your USB stick to its factory configuration, insert the drive again while `Fedora Media Writer` is running. The application provides you with an option to restore to the factory layout. This layout includes a single `VFAT` partition.
[id='gnome-disk-utility']
== Using GNOME Disk Utility
IMPORTANT: This method will destroy all data on the USB stick. If you need a non-destructive write method (to preserve existing data on your USB stick) and/or support for 'data persistence', you can use the `livecd-iso-to-disk` utility on Fedora.
This method is for people running Linux, or another unix with GNOME, Nautilus and the GNOME Disk Utility installed. Particularly, if you are using a distribution other than Fedora which does not support Flatpak, this may be the easiest available method. A standard installation of Fedora, or a standard GNOME installation of many other distributions, should be able to use this method. On Fedora, ensure the packages `Package-x-generic-16.pngnautilus` and `Package-x-generic-16.pnggnome-disk-utility` are installed. Similar graphical `direct-write tools` may be available for other desktops, or you may use the command line `direct write` method.
. Download a Fedora image, choose a USB stick that does not contain any data you need, and connect it.
. Run Nautilus (Files) for instance, open the *Overview* by pressing the *Start/Super* key, and type Files, then hit enter.
. Find the downloaded image, right-click on it, go to *Open With*, and click *Disk Image Writer*.
. Select your USB stick as the *Destination*, and click *Start Restoring*.
[id='command-line-method']
== Command line methods
=== Using the livecd-iso-to-disk tool
IMPORTANT: This method will destroy all data on the USB stick _if the *--format* parameter is passed_.
The `livecd-iso-to-disk` method is slightly less reliable than Fedora Media Writer and can be used reliably only from within Fedora: it does not work in Windows or OS X, and is not supported (and will usually fail) in non-Fedora distributions. However, it supports three advanced features which FMW does not include:
. You may use a _non-destructive_ method to create the stick, meaning existing files on the stick will not be destroyed. This is less reliable than the _destructive_ write methods, and should be used only if you have no stick you can afford to wipe.
. On live images, you can include a feature called a _persistent overlay_, which allows changes made to persist across reboots. You can perform updates just like a regular installation to your hard disk, except that kernel updates require manual intervention and overlay space may be insufficient. Without a _persistent overlay_, the stick will return to a fresh state each time it is booted.
. On live images, you can also have a separate area to store user account information and data such as documents and downloaded files, with optional encryption for security and peace of mind.
By combining these features, you can carry your computer with you in your pocket, booting it on nearly any system you find yourself using.
It is not a good idea to try and write a new Fedora release using the version of `livecd-iso-to-disk` in a much older Fedora release: it is best to only use a release a maximum of two versions older than the release you are trying to write.
Ensure the https://apps.fedoraproject.org/packages/livecd-tools[livecd-tools] package is installed: `su -c 'dnf install livecd-tools'`.
[NOTE]
====
Remember to identify your USB stick's device name first. In all cases, you can add the parameter `--efi` to render the stick bootable in native UEFI mode. Detailed usage information is available by running: `livecd-iso-to-disk --help` or `man livecd-iso-to-disk`.
To make an existing USB stick bootable as a Fedora image, without deleting any of the data on it, make sure that the USB drive is not mounted before executing the following, and give the root password when prompted:
[option="nowrap"]
----
su -c "livecd-iso-to-disk Fedora-Workstation-Live-x86_64-28-1.1.iso /dev/sdX"
----
In case it is not possible to boot from a disk created with the method shown above, before re-partitioning and re-formatting, often resetting the master boot record will enable booting:
[option="nowrap"]
----
su -c "livecd-iso-to-disk --reset-mbr Fedora-Workstation-Live-x86_64-28-1.1.iso /dev/sdX"
----
====
IMPORTANT: Using the `--format` option in the following command will erase all data on the USB drive.
If necessary, you can have livecd-iso-to-disk re-partition and re-format the target stick:
[option="nowrap"]
----
su -c "livecd-iso-to-disk --format --reset-mbr Fedora-Workstation-Live-x86_64-28-1.1.iso /dev/sdX"
----
To include a persistent filesystem for `/home`, use the `--home-size-mb` parameter. For example:
[option="nowrap"]
----
su -c "livecd-iso-to-disk --home-size-mb 2048 Fedora-Workstation-Live-x86_64-28-1.1.iso /dev/sdX"
----
This will create a 2 GiB filesystem that will be mounted as `/home` each time the stick is booted, allowing you to preserve data in `/home` across boots.
To enable 'data persistence' support - so changes you make to the entire live environment will persist across boots - add the `--overlay-size-mb` parameter to add a persistent data storage area to the target stick. For example:
[option="nowrap"]
----
su -c "livecd-iso-to-disk --overlay-size-mb 2048 Fedora-Workstation-Live-x86_64-28-1.1.iso /dev/sdX"
----
Here, _2048_ is the desired size (in megabytes) of the overlay. The `livecd-iso-to-disk` tool will not accept an overlay size value greater than _4095_ for VFAT, but for ext[234] filesystems it is only limited by the available space.
[NOTE]
====
Due to the way it's currently implemented, every single change to this form of overlay, writes AND deletes, subtracts from its free space so it will eventually be "used up" and your USB stick will no longer boot. You can use `dmsetup` status `live-rw` to see how much space remains in the overlay.
The output will contain something like snapshot `42296/204800`, indicating that 4229` of 204800 512-byte sectors are allocated. Because of these limitations, it is advisable to use the `system-level` persistence sparingly, for configuration changes and important security updates only. Or, if you have sufficient disk space available, changes to the `LiveOS` root filesystem snapshot can be merged into a new copy of the root filesystem.
====
You can combine `--home-size-mb` and `--overlay-size-mb`, in which case data written to `/home` will not exhaust the persistent overlay.
=== Using direct write method
[IMPORTANT]
====
This method will destroy all data on the USB stick. If you need a non-destructive write method, to preserve existing data on your USB stick, and/or support for `data persistence`, you can use the `livecd-iso-to-disk` utility on Fedora.
====
This method directly writes the image to the USB stick much like link:using-fedora-media-writer[Fedora Media Writer] or GNOME Disk Utility, but uses a command line utility named `dd`. Like the other _direct write_ methods, it will destroy all data on the stick and does not support any of the advanced features like data persistence, but it is a very reliable method. The `dd` tool is available on most Unix-like operating systems, including Linux distributions and OS X, and a Windows port is available. This may be your best method if you cannot use link:using-fedora-media-writer[Fedora Media Writer] or GNOME Disk Utility, or just if you prefer command line utilities and want a simple, quick way to write a stick.
. Identify the name of the USB drive partition. If using this method on Windows, with the port linked above, the `dd --list` command should provide you with the correct name.
. *Unmount all mounted partition from that device*. This is very important, otherwise the written image might get corrupted. You can umount all mounted partitions from the device with `umount /dev/sdX*`, where _X_ is the appropriate letter, e.g. `umount /dev/sdc*`.
. Write the ISO file to the device:
+
[options="nowrap"]
----
su -c 'dd if=/path/to/image.iso of=/dev/sdX bs=8M status=progress oflag=direct'
----
. Wait until the command completes.
+
NOTE: If you see `dd: invalid status flag: 'progress'`, your dd version doesn't support the `status=progress` option and you'll need to remove it. In this case, you won't see writing progress.
[id='unetbootin']
== Using UNetbootin for Windows, OS X and Linux
[NOTE]
====
UNetbootin may work in some cases but not others - for instance, it will likely create a stick that is bootable in BIOS mode, but not UEFI mode. Fedora cannot guarantee support for UNetbootin-written images.
While your results may vary, it is usually the case that the Fedora Media Writer, livecd-iso-to-disk, GNOME and dd methods give better results than UNetbootin. If you encounter problems with UNetbootin, please contact the UNetbootin developers, not the Fedora developers.
====
http://unetbootin.github.io/[UNetbootin] is a graphical, bootable USB image creator. Using it will allow you to preserve any data you have in the USB drive. If you have trouble booting, however, you may wish to try with a blank, cleanly FAT32-formatted drive.
NOTE: If you are running a 64-bit Linux distribution, UNetbootin may fail to run until you install the 32-bit versions of quite a lot of system libraries.
. Download the latest UNetbootin version from the http://unetbootin.github.io/[official site] and install it. On Linux, the download is an executable file: save it somewhere, change it to be executable using `chmod ugo+x` filename or a file manager, and then run it.
. Launch UNetbootin. On Linux, you might have to type the root password.
. Click on `Diskimage` and search for the ISO file you downloaded.
. Select Type: USB drive and choose the correct device for your stick.
. Click OK.
NOTE: If you do not see _sdX_ listed, you might have to reformat the drive. You can do this from most file manager or disk utility tools, e.g. the GNOME disk utility ("Disks") on Fedora. The FAT32 format is most likely to result in a bootable stick. This will cause you to lose all data on the drive.
[id='creating_usb_stick_from_a_running_live_environment']
== Creating a USB stick from a running live environment
If you are already running a live CD, DVD, or USB and want to convert that into a bootable USB stick, run the following command:
[option="nowrap"]
----
su -c "livecd-iso-to-disk /run/initramfs/livedev /dev/sdX"
----

View file

@ -0,0 +1,53 @@
[[creating-a-fedora-guest]]
== Creating a Fedora guest
The installation of Fedora guests using Anaconda is supported. The
installation can be started on the command-line using the `virt-install`
program or in the user interface program `virt-manager`.
[[creating-a-guest-with-virt-install]]
Creating a guest with virt-install
`virt-install` is a command-line based tool for creating virtualized
guests. Refer to
http://virt-tools.org/learning/install-with-command-line/ for
understanding how to use this tool. Execute `virt-install --help` for
command line help.
`virt-install` can use kickstart files, for example
`virt-install -x ks=kickstart-file-name.ks`.
If graphics were enabled, a VNC window will open and present the
graphical installer. If graphics were not enabled, a text installer will
appear. Proceed with the Fedora installation.
[[creating-a-guest-with-virt-manager]]
=== Creating a guest with virt-manager
. Start Virtual Machine Manager by navigating to
menu:Applications[System Tools], or by running the following command:
+
----
$ su -c "virt-manager"
----
+
[NOTE]
====
If you encounter an error message when starting Virtual Machine Manager, run the above command as a non-root user, without the `su -c`.
The user interface will prompt for the root password.
====
+
. Open a connection to a hypervisor by navigating to menu:File[Add
connection].
. Choose *qemu* for KVM, or *Xen* for Xen.
. Choose *local* or select a method to connect to a remote hypervisor.
. After a connection is opened, click the new icon next to the
hypervisor, or right-click on the active hypervisor and select *New*.
. Configure the virtual machine following the steps in the *New VM* wizard.
. Click *Finish* at the end of the wizard to provision the guest operating system. After a few moments a VNC
window will appear. Proceed with the Fedora installation.

View file

@ -0,0 +1,13 @@
[id='downloading-fedora']
= Downloading Fedora
You can download Fedora from https://getfedora.org/.
There are multiple desktops available for use with Fedora. Each has a slightly different look and feel and offers varying levels of customization. Visit http://fedoraproject.org/en/get-fedora-options#desktops[Fedora Desktops] to know more.
Fedora spins are alternate versions of Fedora, tailored for various types of users, using hand-picked application sets and other customizations. Visit http://fedoraproject.org/en/get-fedora-options#spins[Fedora Spins] to know more.
[NOTE]
====
Please refer to https://docs.fedoraproject.org/f27/install-guide/index.html[Fedora Installation Guide] for getting help on the process of installing Fedora.
====

View file

@ -0,0 +1,24 @@
= Downloading the Source Code
. Navigate to the directory where you want to save the source:
+
[bash,subs="attributes+"]
----
cd <directory_name>
----
+
. Download the TAR file containing the source code you want to install from:
+
[bash,subs="attributes+"]
----
wget <source_location_URL>
----
+
. Extract the tarball file contents to the current working directory:
+
[bash,subs="attributes+"]
----
tar -xf <source_tar_filename>
----
You can perform the same actions using the GUI.

View file

@ -0,0 +1,31 @@
[id='enabling-chromium-packages']
= Enabling Chromium Packages
== To enable *widevine* plugin:
Fedora's Chromium package is built to support the *widevine* plugin (but does not include it).
. Copy *libwidevinecdm.so* and *libwidevinecdmadapter.so* from the Google Chrome package into */usr/lib64/chromium-plugins*
. Restart chromium. You can see *Widevine Content Decryption Module* in *chrome://flags*.
== Using the *Pepper Plugin Application Programming Interface (PPAPI)* flash plugin:
. Click the following link to download the flash plugin: https://get.adobe.com/flashplayer/otherversions/ .
. Select *Linux 64-bit* from *https://get.adobe.com/flashplayer/otherversions/[Step 1]*, and select *FP 22.0* (or later) for *Linux 64-bit(.tar.gz)-PPAPI* from *https://get.adobe.com/flashplayer/otherversions/[Step 2]*. You will then have flash_player_ppapi_linux.x86_64.tar.gz.
. Unpack the tar into */usr/lib64/chromium-browser/PepperFlash/*.
. Restart chromium. You can see *Adobe Flash Player* in *chrome://plugins*.
[NOTE]
====
To enable speech synthesis support, pass the `--enable-speech-dispatcher` flag to chromium-browser.
====
== Additional Resources
* https://get.adobe.com/flashplayer/otherversions/
* https://fedoraproject.org/wiki/Chromium

View file

@ -0,0 +1,56 @@
= Enabling nested virtualization in KVM
[[enabling-nested-virtualization-in-kvm]]
Nested virtualization allows you to run a virtual machine (VM) inside
another VM while still using hardware acceleration from the host.
== Checking if nested virtualization is supported
For Intel processors, check the `/sys/module/kvm_intel/parameters/nested` file. +
For AMD processors, check the `/sys/module/kvm_amd/parameters/nested` file. +
If you see `1` or `Y`,nested virtualization is supported; if you see `0` or `N`, nested virtualization is not supported.
For example:
....
$ cat /sys/module/kvm_intel/parameters/nested
Y
....
== Enabling nested virtualization
To enable nested virtualization for Intel processors:
. Shut down all running VMs and unload the `kvm_probe` module:
+
----
# modprobe -r kvm_intel
----
. Activate the nesting feature:
+
----
# modprobe kvm_intel nested=1
----
. Nested virtualization is enabled until the host is rebooted. To enable it permanently, add the following line to the `/etc/modprobe.d/kvm.conf` file:
+
----
options kvm_intel nested=1
----
To enable nested virtualization for AMD processors:
. Shut down all running VMs and unload the `kvm_amd` module:
+
----
# modprobe -r kvm_amd
----
. Activate the nesting feature:
+
----
# modprobe kvm_amd nested=1
----
. Nested virtualization is enabled until the host is rebooted. To enable it permanently, add the following line to the `/etc/modprobe.d/kvm.conf` file:
+
----
options kvm_amd nested=1
----

View file

@ -0,0 +1,15 @@
[id='enabling-third-party-repository']
= Enabling Third party repositories
Once you have downloaded the rpm, you can enable the repository.
== To enable repo:
. Login as root:
`#su`
. Create a file in */etc/yum.repos.d/* directory to enable third party repository. This file must end with *.repo* . The repository file contains the URL of the the repository, a name, enabled, gpgcheck.
. To enable repo, use the following command:
`#dnf --enablerepo=<reponame>`

View file

@ -0,0 +1,32 @@
[[installing-and-configuring-fedora-for-virtualized-guests]]
== Installing and configuring Fedora for virtualized guests
This section covers setting up `libvirt` on your system. After setting up `libvirt`, you can create
virtualized guest operating systems, also known as virtual machines.
[[system-requirements]]
=== System requirements
To run virtualization on Fedora, you need:
* At least 600MB of hard disk storage per guest. A minimal command-line
Fedora system requires 600MB of storage. Standard Fedora desktop guests
require at least 3GB of space.
* At least 256MB of RAM per guest, plus 256MB for the base operating system. At least
756MB is recommended for each guest of a modern operating system. A good way to estimate this is to think about how much memory is required for the
operating system normally, and allocate that amount to the virtualized
guest.
KVM requires a CPU with virtualization extensions, found on most
consumer CPUs. These extensions are called Intel VT or AMD-V.
To check whether you have CPU support, run the following
command:
----
$ egrep '^flags.*(vmx|svm)' /proc/cpuinfo
----
If this command results in nothing printed, your system does not support the relevant virtualization
extensions. You can still use QEMU/KVM, but the emulator will fall
back to software virtualization, which is much slower.

View file

@ -0,0 +1,75 @@
[id='installing-chromium-web-browser']
= Installing Chromium Web Browser
*Chromium Web Browser* package was only available through a https://copr.fedorainfracloud.org/[COPR repository]. However, now the package is freely available in Fedora through the official repositories. Chromium can be installed using GUI and terminal.
== Installing Chromium using GUI:
. Click on Software tool in Fedora.
. Search Chromium Web Browser.
. Click on Install.
== Installing Chromium using terminal:
. Login as root:
`# su`
. To install Chromium Web Browser, use the command:
`# dnf install chromium`
. To upgrade Chromium, use the command: `# dnf upgrade chromium`
== Installing Chrome
*Google Chrome* can be installed by downloading rpm and by creating repository.
== Installing Google Chrome using rpm:
. Click the following link: https://www.google.com/chrome/browser/desktop/index.html .
. Click on *Download Chrome* and select *Fedora 64* or *32 bits* download and install the repo.
. Login as root and use the command to install Google Chrome:
`#dnf install google-chrome`
== Installing Chrome by creating repository:
. Login as root:
`#su`
. Enable Google Chrome yum repository by using the command:
`#cat << EOF > /etc/yum.repos.d/google-chrome.repo`
+
----
[google-chrome]
name=google-chrome - \$basearch
baseurl=http://dl.google.com/linux/chrome/rpm/stable/\$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
EOF
----
. Install stable Google Chrome version using the command:
`#dnf install google-chrome-stable`
[NOTE]
====
If you want to install unstable Google Chrome version, use the following command:
`#dnf install google-chrome-unstable`
If you want to install stable Google Chrome version using the following command:
`#dnf install google-chrome-beta`
====
== Additional Resources
* https://copr.fedorainfracloud.org/[COPR repository]
* https://www.google.com/chrome/browser/desktop/index.html[Google Chrome rpm]

View file

@ -0,0 +1,47 @@
= Installing fonts
[[installing-fonts]]
.Before you start
Review the fonts on your system. Fedora includes many fonts by default, to see which fonts are installed on your system, use *GNOME Font Viewer*, which is installed by default. Alternatively use the *Fontmatrix* application which is availabe from *GNOME Software* and provides more features, such as searching for a font based on a raster image:
. Start *GNOME Software* by choosing *Software* from the Start menu.
. Search for 'Fontmatrix'.
. Choose 'Fontmatrix' from the results and click 'Install'.
.Procedure
. To install fonts from the Fedora repository:
.. Run the following command to list available fonts:
+
----
$ dnf search font
----
.. Copy the name of the font you want to install.
.. Run the following command to install the font:
+
----
$ dnf install <font name>
----
+
For example:
+
----
$ dnf install google-noto-mono-fonts.noarch
----
. To install fonts from the filesystem:
.. Locate the font file using the *Nautilus* file manager.
.. Double-click the font file to open the font in *GNOME Font Viewer*. A preview of the font is displayed.
.. Click *Install* to install the font.
[NOTE]
====
If you use *GNOME Font Viewer* to install fonts, those fonts are only available to the current user.
====
.Additional resources
* The help included with *Fontmatrix* provides an introduction to the Fedora font system.
* link:https://docs-old.fedoraproject.org/en-US/Fedora/12/html/Deployment_Guide/s1-x-fonts.html[Fedora documentation] regarding fonts.

View file

@ -0,0 +1,83 @@
[[installing-the-virtualization-packages]]
== Installing the virtualization packages
When installing Fedora, you can install the virtualization packages by
selecting *Virtualization* in the *Base Group* in the installer. See https://docs.fedoraproject.org/f27/install-guide/install/Installing_Using_Anaconda.html[Installing Using Anaconda].
For existing Fedora installations, you can install the virtualization tools via the command line using the Virtualization Package Group. To view the packages, run:
+
----
$ dnf groupinfo virtualization
Group: Virtualization
Group-Id: virtualization
Description: These packages provide a virtualization environment.
Mandatory Packages:
=virt-install
Default Packages:
=libvirt-daemon-config-network
=libvirt-daemon-kvm
=qemu-kvm
=virt-manager
=virt-viewer
Optional Packages:
guestfs-browser
libguestfs-tools
python-libguestfs
virt-top
----
+
. Run the following command to install the mandatory and default packages in the virtualization group:
+
----
$ su -c "dnf install @virtualization"
----
+
Alternatively, to install the mandatory, default, and optional packages, run:
+
----
$ su -c "dnf group install with-optional virtualization"
----
+
. After the packages install, start the `libvirtd` service:
+
----
$ su -c systemctl start libvirtd
----
+
To start the service on boot, run:
+
----
$ su -c systemctl enable libvirtd
----
+
. To verify that the KVM kernel modules are properly loaded:
+
----
$ lsmod | grep kvm
kvm_amd 55563 0
kvm 419458 1 kvm_amd
----
+
If this command lists `kvm_intel` or `kvm_amd`, KVM is properly
configured. See How_to_debug_Virtualization_problems#Ensuring_system_is_KVM_capable[
Ensuring system is KVM capable] for troubleshooting tips. (NEEDS EDITING)
[[networking-support]]
=== Networking Support
By default, libvirt will create a private network for your guests on the
host machine. This private network will use a 192.168.x.x subnet and not
be reachable directly from the network the host machine is on. However,
virtual guests can use the host machine as a gateway and can connect out
via it. If you need to provide services on your guests that are
reachable via other machines on your host network you can use iptables
DNAT rules to forward in specific ports, or you can set up a bridged environment.
See the http://wiki.libvirt.org/page/Networking[libvirt networking setup
page] for more information on how to setup a bridged network.

View file

@ -0,0 +1,86 @@
[[sec-Managing-Trusted-System-Certificates]]
= Managing Trusted System Certificates
.Before you start
.Procedure
To list, extract, add, remove, or change trust anchors, use the [command]`trust` command. To see the built-in help for this command, enter it without any argument or with the [option]`--help` directive:
[subs="quotes, macros"]
----
$ [command]`trust`
usage: trust command &lt;args&gt;...
Common trust commands are:
list List trust or certificates
extract Extract certificates and trust
extract-compat Extract trust compatibility bundles
anchor Add, remove, change trust anchors
dump Dump trust objects in internal format
See 'trust &lt;command&gt; --help' for more information
----
To list all system trust anchors and certificates, use the [command]`trust list` command:
[subs="quotes, macros"]
----
$ [command]`trust list`
pkcs11:id=%d2%87%b4%e3%df%37%27%93%55%f6%56%ea%81%e5%36%cc%8c%1e%3f%bd;type=cert
type: certificate
label: ACCVRAIZ1
trust: anchor
category: authority
pkcs11:id=%a6%b3%e1%2b%2b%49%b6%d7%73%a1%aa%94%f5%01%e7%73%65%4c%ac%50;type=cert
type: certificate
label: ACEDICOM Root
trust: anchor
category: authority
...
[output has been truncated]
----
To store a trust anchor into the system-wide trust store, use the [command]`trust anchor` sub-command and specify a _path.to_ a certificate, for example:
[subs="macros"]
----
# trust anchor pass:quotes[_path.to/certificate.crt_]
----
To remove a certificate, use either a _path.to_ a certificate or an ID of a certificate:
[subs="macros"]
----
# trust anchor --remove pass:quotes[_path.to/certificate.crt_]
# trust anchor --remove pass:quotes[_"pkcs11:id=%AA%BB%CC%DD%EE;type=cert"_]
----
.More information
All sub-commands of the [command]`trust` commands offer a detailed built-in help, for example:
----
$ trust list --help
usage: trust list --filter=<what>
--filter=<what> filter of what to export
ca-anchors certificate anchors
blacklist blacklisted certificates
trust-policy anchors and blacklist (default)
certificates all certificates
pkcs11:object=xx a PKCS#11 URI
--purpose=<usage> limit to certificates usable for the purpose
server-auth for authenticating servers
client-auth for authenticating clients
email for email protection
code-signing for authenticating signed code
1.2.3.4.5... an arbitrary object id
-v, --verbose show verbose debug output
-q, --quiet suppress command output
----

View file

@ -0,0 +1,125 @@
[[managing-virtual-machines]]
== Managing Virtual Machines
When the installation of the guest operating system is complete, it can
be managed using the `virt-manager` program or via command line
using `virsh`.
[[managing-guests-with-virt-manager]]
=== Managing guests with virt-manager
. Start the Virtual Machine Manager by navigating to
menu:[Applications]System Tools, or run:
+
----
$ su -c "virt-manager"
----
+
If you are not root, you will be prompted to enter the root
password. Choose `Run unprivileged` to operate in read-only non-root
mode.
+
. Choose the host you wish to manage and click *Connect* in the "Open
Connection" dialog window.
. The list of virtual machines is displayed in the main window. Guests
that are running will display a ">" icon. Guests that are not running
will be greyed out.
. To manage a particular guest, double click on it, or right click and
select "Open".
. A new window for the guest will open that will allow you to use its
console, see information about its virtual hardware and start, stop, and pause
it.
For further information about `virt-manager`, see
http://virt-manager.et.redhat.com/.
Bugs in the `virt-manager` tool should be reported in
http://bugzilla.redhat.com[Bugzilla] against the `virt-manager`
component.
[[managing-guests-with-virsh]]
=== Managing guests with virsh
The `virsh` command line utility allows you to manage virtual
machines on the command line. The `virsh` utility is built around the libvirt management API:
* `virsh` has a stable set of commands whose syntax and semantics are
preserved across updates to the underlying virtualization platform.
* `virsh` can be used as an unprivileged user for read-only operations
(e.g. listing domains, listing domain statistics).
* `virsh` can manage domains running under Xen, QEMU/KVM, ESX or other
back-ends with no perceptible difference to the user.
To start a virtual machine:
+
----
$ su -c "virsh create <name of virtual machine>"
----
To list the virtual machines currently running:
+
----
$ su -c "virsh list"
----
To list all virtual machines, running or not:
+
----
$ su -c "virsh list --all"
----
To gracefully power off a guest:
+
----
$ su -c "virsh shutdown <virtual machine (name | id | uuid)>"
----
To non gracefully power off a guest:
+
----
$ su -c "virsh destroy <virtual machine (name | id | uuid)>"
----
To save a snapshot of the machine to a file:
+
----
$ su -c "virsh save <virtual machine (name | id | uuid)> <filename>"
----
To restore a previously saved snapshot:
+
----
$ su -c "virsh restore <filename>"
----
To export the configuration file of a virtual machine:
+
----
$ su -c "virsh dumpxml <virtual machine (name | id | uuid)"
----
For a complete list of commands available for use with `virsh`:
+
----
$ su -c "virsh help"
----
Or consult the manual page: `man virsh`
Bugs in the `virsh` tool should be reported in
http://bugzilla.redhat.com[Bugzilla] against the `libvirt` component.
[[remote-management]]
=== Remote management
The following remote management options are available:
* If using non-root users via SSH, see the setup instructions in http://wiki.libvirt.org/page/SSHSetup
* If using root for access via SSH, then create SSH keys for root, and
use `ssh-agent` and `ssh-add` before launching `virt-manager`.
* To use TLS, set up a local certificate authority and issue x509 certs
to all servers and clients. For information on configuring this option,
see http://wiki.libvirt.org/page/TLSSetup.

View file

@ -0,0 +1,8 @@
= Setting up a Development and Compiling Environment
Install packages form the _C Development Tools and Libraries_ group:
+
[bash,subs="attributes+"]
----
sudo dnf group install @c-development
----

View file

@ -0,0 +1,17 @@
= Testing nested virtualization
[[testing-nested-virtualization]]
. Start the virtual machine.
. On the virtual machine, run `sudo dnf group install virtualization`.
. Verify that the virtual machine has virtualization correctly set up:
----
$ sudo virt-host-validate
QEMU: Checking for hardware virtualization : PASS
QEMU: Checking for device /dev/kvm : PASS
QEMU: Checking for device /dev/vhost-net : PASS
QEMU: Checking for device /dev/net/tun : PASS
LXC: Checking for Linux >= 2.6.26 : PASS
----

View file

@ -0,0 +1,61 @@
[id='troubleshooting_live_USB']
= Troubleshooting a live USB
== livecd-iso-to-disk problems
Partition isn't marked bootable::
If you get the message `Partition isn't marked bootable!`, you need to mark the partition bootable. To do this, run `su -c 'parted /dev/sdX'`, and use the `toggle N` boot command, where X is the appropriate letter and N is the partition number. For example:
+
[option="nowrap"]
----
$ parted /dev/sdb
GNU Parted 1.8.6
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: Imation Flash Drive (scsi)
Disk /dev/sdX: 1062MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32.3kB 1062MB 1062MB primary fat16
(parted) toggle 1 boot
(parted) print
Model: Imation Flash Drive (scsi)
Disk /dev/sdX: 1062MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32.3kB 1062MB 1062MB primary fat16 boot
(parted) quit
Information: Don't forget to update /etc/fstab, if necessary.
----
Partitions need a filesystem label::
If you get the message `Need to have a filesystem label` or `UUID` for your USB device, you need to label the partition: `su -c "dosfslabel /dev/sdX LIVE"`.
Partition has different physical/logical endings::
If you get this message from fdisk, you may need to reformat the flash drive when writing the image, by passing `--format` when writing the stick.
MBR appears to be blank::
If your test boot reports a corrupted boot sector, or you get the message `MBR appears to be blank.`, you need to install or reset the master boot record (MBR), by passing `--reset-mbr` when writing the stick.
livecd-iso-to-disk on other Linux distributions::
`livecd-iso-to-disk` is not meant to be run from a non-Fedora system. Even if it happens to run and write a stick apparently successfully from some other distribution, the stick may well fail to boot. Use of `livecd-iso-to-disk` on any distribution other than Fedora is unsupported and not expected to work: please use an alternative method, such as xref:using-fedora-media-writer[Fedora Media Writer].
== Testing a USB stick using qemu
You can test your stick using QEMU.
[options="nowrap"]
----
su -c 'umount /dev/sdX1'
qemu -hda /dev/sdX -m 1024 -vga std
----
== Mounting a Live USB filesystem
You can use the https://github.com/livecd-tools/livecd-tools/blob/master/tools/liveimage-mount[liveimage-mount] script in the https://apps.fedoraproject.org/packages/livecd-tools[livecd-tools] package to mount an attached Live USB device or other LiveOS image, such as an ISO or Live CD. This is convenient when you want to copy in or out some file from the LiveOS filesystem on a Live USB, or just examine the files in a Live ISO or Live CD.

View file

@ -0,0 +1,9 @@
[[procedure-run-docker-using-sudo]]
= Run Docker using [command]`sudo`
. Set up [command]`sudo` as shown in *Using sudo to give/limit admin privileges*
. Create an alias for running the docker command:
----
alias docker="sudo /usr/bin/docker"
----
When the user executes the docker command as non-root, sudo will be used to manage access and provide logging.

View file

@ -0,0 +1,24 @@
[id=”procedure-using-same-password-for-root-as-user”]
= Using the same password for root as the user account
If you use a single user desktop, you might find it convenient to configure [command]`sudo` so you can use the same password to access `root` as you use for your regular account. To do this, select to be added to the Administration group during installation. To do it at later stage, or to add a different user, use the following procedure:
. Become the `root` user:
+
----
$ su -
----
+
. Enter the password for the root account when prompted.
. To use your regular password for the root access, run:
+
----
# usermod USERNAME -a -G groupname
----
+
Replace _USERNAME_ with your account name
. Log off and back on in order to have access to the group.
NOTE: When [command]`sudo` prompts you for a password, it expects your user password, not the `root` password.

View file

@ -0,0 +1,47 @@
[[other-virtualization-options]]
== Other virtualization options
[[qemukvm-without-libvirt]]
=== QEMU/KVM without libvirt
QEMU/KVM can be invoked directly without libvirt, however you cannot to use tools such as `virt-manager`, `virt-install`, or `virsh`. Plain
QEMU (without KVM) can also virtualize other processor architectures
like ARM or PowerPC.
[[xen]]
=== Xen
Fedora can run as a Xen guest operating system and also be used as a Xen host (with the latter being true from Fedora 16; for using an earlier version of
Fedora as a Xen host, check out the experimental repo available at
http://myoung.fedorapeople.org/dom0). For a guide on how to install and
setup a Fedora Xen host, see http://wiki.xen.org/wiki/Fedora_Host_Installation[Fedora Host Installation] page on the Xen Project wiki.
[[openstack]]
=== OpenStack
OpenStack consists of a number of services for running infrastructure as a service (IaaS) clouds. They are the Object Store (Swift), Compute (Nova) and Image (Glance) services.
[[opennebula]]
=== OpenNebula
OpenNebula is an open source toolkit for data center virtualization.
[[ovirt]]
=== oVirt
The https://www.ovirt.org/[oVirt project] is an open virtualization
project providing a end-to-end, server virtualization
management system with advanced capabilities for hosts and guests,
including high availability, live migration, storage management, system
scheduler, and more.
[[troubleshooting-and-known-issues]]
== Troubleshooting and known issues
For a list of known unresolved issues, as well as troubleshooting tips,
see link:How_to_debug_Virtualization_problems[How to debug
virtualization problems]
See a typo, something missing or out of date, or anything else which can be
improved? Edit this document at https://pagure.io/fedora-docs/quick-docs.

View file

@ -0,0 +1,218 @@
[id='the-most-useful-dnf-commands']
= The most useful DNF commands
This sections lists the most useful commands provided by the *dnf* utility. For a complete list of commands, options, and their syntax, see the *dnf*(8) man page.
*dnf help _command_*:: Displays detailed information about a command.
+
[literal,subs="+quotes,attributes"]
----
$ *dnf help _upgrade_*
upgrade [PACKAGE...]
upgrade a package or packages on your system
alias: update
----
*dnf upgrade*:: Upgrades all packages on the system to the latest version available.
+
[literal,subs="+quotes,attributes"]
----
# *dnf upgrade*
Last metadata expiration check: 1:09:32 ago on Thu Dec 14 09:20:48 2017.
Dependencies resolved.
Nothing to do.
Complete!
----
*dnf upgrade _package_name_*:: Upgrades a package to the latest version available.
+
[literal,subs="+quotes,attributes"]
----
# *dnf upgrade _dia_*
Last metadata expiration check: 1:11:26 ago on Thu Dec 14 09:20:48 2017.
Dependencies resolved.
Nothing to do.
Complete!
----
*dnf install _package_name_*:: Installs a package.
[literal,subs="+quotes,attributes"]
----
# *dnf install _dia_*
Last metadata expiration check: 1:07:19 ago on Thu Dec 14 09:20:48 2017.
Dependencies resolved.
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
dia x86_64 1:0.97.3-5.fc24 fedora 4.2 M
libart_lgpl x86_64 2.3.21-15.fc25 fedora 71 k
Transaction Summary
=============================================================================
Install 2 Packages
Total download size: 4.2 M
Installed size: 18 M
Is this ok [y/N]: *y*
[... output truncated ...]
Installed:
dia.x86_64 1:0.97.3-5.fc24 libart_lgpl.x86_64 2.3.21-15.fc25
Complete!
----
*dnf remove _package_name_*:: Uninstalls a package.
+
[literal,subs="+quotes,attributes"]
----
# *dnf remove _dia_*
Dependencies resolved.
=============================================================================
Package Arch Version Repository Size
=============================================================================
Removing:
dia x86_64 1:0.97.3-5.fc24 @fedora 18 M
libart_lgpl x86_64 2.3.21-15.fc25 @fedora 126 k
Transaction Summary
=============================================================================
Remove 2 Packages
Installed size: 18 M
Is this ok [y/N]: *y*
[... output truncated ...]
Removed:
dia.x86_64 1:0.97.3-5.fc24 libart_lgpl.x86_64 2.3.21-15.fc25
Complete!
----
*dnf check-update*:: Checks if any updates are available for all packages in the enabled repositories.
+
[literal,subs="+quotes,attributes"]
----
389-ds-base.x86_64 1.3.7.5-11.el7 @updates
389-ds-base-libs.x86_64 1.3.7.5-11.el7 @updates
NetworkManager.x86_64 1:1.10.2-3.el7 @updates
NetworkManager-config-server.noarch 1:1.10.2-3.el7 @updates
[... output truncated ...]
----
*dnf search _keyword_*:: Search package metadata in the enabled repositories for the specified keyword. By default, the commands searches only in package names and summaries.
+
[literal,subs="+quotes,attributes"]
----
# *dnf search _freeipa_*
Last metadata expiration check: 1:12:31 ago on Thu Dec 14 09:20:48 2017.
========================================================================
freeipa-client.x86_64 : IPA authentication for use on clients
freeipa-common.noarch : Common files used by IPA
freeipa-server.x86_64 : The IPA authentication server
freeipa-server-dns.noarch : IPA integrated DNS server with support for automatic DNSSEC signing
freeipa-client-common.noarch : Common files used by IPA client
freeipa-python-compat.noarch : Compatiblity package for Python libraries used by IPA
freeipa-server-common.noarch : Common files used by IPA server
freeipa-server-trust-ad.x86_64 : Virtual package to install packages required for Active Directory trusts
libsss_idmap.x86_64 : FreeIPA Idmap library
[... output truncated ...]
----
*dnf info _package_name_*:: Shows details for a package.
+
[literal,subs="+quotes,attributes"]
----
[root@localhost ~]# *dnf info _freeipa-server_*
Last metadata expiration check: 1:13:14 ago on Thu Dec 14 09:20:48 2017.
Available Packages
Name : freeipa-server
Arch : x86_64
Epoch : 0
Version : 4.4.4
Release : 1.fc25
Size : 380 k
Repo : updates
Summary : The IPA authentication server
URL : https://www.freeipa.org/
License : GPLv3+
Description : IPA is an integrated solution to provide centrally managed Identity (users,
: hosts, services), Authentication (SSO, 2FA), and Authorization
: (host access control, SELinux user roles, services). The solution provides
: features for further integration with Linux based clients (SUDO, automount)
: and integration with Active Directory based infrastructures (Trusts).
: If you are installing an IPA server, you need to install this package.
----
*dnf provides _command_or_file_*:: Shows which package provides the specified command or file.
+
To specify a command:
+
[literal,subs="+quotes,attributes"]
----
# *dnf provides */_ipa-server-install_*
Last metadata expiration check: 1:14:12 ago on Thu Dec 14 09:20:48 2017.
freeipa-server-4.4.1-1.fc25.x86_64 : The IPA authentication server
Repo : fedora
freeipa-server-4.4.4-1.fc25.x86_64 : The IPA authentication server
Repo : updates
----
+
To specify a file:
+
[literal,subs="+quotes,attributes"]
----
# *dnf provides _/etc/sssd/sssd.conf_*
Last metadata expiration check: 1:14:58 ago on Thu Dec 14 09:20:48 2017.
sssd-common-1.16.0-4.fc25.x86_64 : Common files for the SSSD
Repo : @System
sssd-common-1.16.0-4.fc25.x86_64 : Common files for the SSSD
Repo : updates
sssd-common-1.14.2-1.fc25.i686 : Common files for the SSSD
Repo : fedora
sssd-common-1.14.2-1.fc25.x86_64 : Common files for the SSSD
Repo : fedora
----
*dnf history*:: Displays a report of the past *yum* transactions.
+
[literal,subs="+quotes,attributes"]
----
# *dnf history*
ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
9 | update -y | 2017-10-17 12:35 | I, U | 17 EE
8 | install midori | 2017-10-13 10:44 | Install | 3 >
7 | update -y | 2017-10-12 15:59 | Update | 7
6 | install keepass | 2017-10-11 13:40 | Install | 13 <
5 | install thunderbird | 2017-10-10 16:33 | Install | 1 >
4 | install sssd krb5-workst | 2017-10-10 15:30 | Install | 3 >
3 | install xchat | 2017-10-10 15:19 | Install | 4
2 | update | 2017-10-10 13:44 | I, O, U | 752 EE
1 | | 2017-10-10 13:34 | Install | 1373 EE
----
*dnf list installed*:: Lists all packages installed on the system.
+
[literal,subs="+quotes,attributes"]
----
# *dnf list installed*
Last metadata expiration check: 1:17:33 ago on Thu Dec 14 09:20:48 2017.
Installed Packages
GConf2.x86_64 3.2.6-16.fc24 @anaconda
GeoIP.x86_64 1.6.11-1.fc25 @updates
GeoIP-GeoLite-data.noarch 2017.10-1.fc25 @updates
ImageMagick.x86_64 6.9.9.19-1.fc25 @updates
ImageMagick-libs.x86_64 6.9.9.19-1.fc25 @updates
LibRaw.x86_64 0.17.2-2.fc25 @updates
ModemManager.x86_64 1.6.4-1.fc25 @updates
ModemManager-glib.x86_64 1.6.4-1.fc25 @updates
NetworkManager.x86_64 1:1.4.6-1.fc25 @updates
[... output truncated ...]
----

View file

@ -0,0 +1,91 @@
== Installing Spotify on Fedora
link:https://www.spotify.com/[Spotify] is a cross-platform proprietary music streaming service. Spotify is a freemium service, with advertisements which can be removed by purchasing a subscription.
Although Spotify is not officially supported on Fedora it can be installed on Fedora by:
* Using unofficial repositories such as xref:install-spotify-using-negativo17[Negativo17] and xref:install-spotify-using-rpmfusion[RPMFusion].
* Using xref:install-spotify-using-flatpak[flatpak].
=== Installing Spotify using third-party repositories
[id='install-spotify-using-negativo17']
==== Using the Negativo17.org repository
The Negativo17.org repository provides a link:https://negativo17.org/spotify-client/[Spotify client] which contains the following packages features:
* Libraries for enabling local files playback
* File upload to personal playlists
* Firewalld rules for enabling local service discovery
* Spotify Connect (control other devices & output location)
To install Spotify using the Negativo17.org repository:
. Add the Negativo17.org repository:
+
[source,bash]
----
$ sudo dnf config-manager --add-repo=http://negativo17.org/repos/fedora-spotify.repo
----
. Install Spotify:
+
[source,bash]
----
$ sudo dnf install spotify
----
[id='install-spotify-using-rpmfusion']
==== Using the RPMFusion repository
RPMFusion provides software that the Fedora Project do not ship. That software is provided as precompiled RPMs for all current Fedora versions.
To install Spotify using the RPMFusion repository:
. Add the RPMFusion repository
+
[source,bash]
----
$ sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
----
. Install Spotify
+
[source,bash]
----
$ sudo dnf install spotify
----
[id='install-spotify-using-flatpak']
=== Installing Spotify using Flatpak
To install Spotify using link:https://flatpak.org/index.html[Flatpak]:
. Install Flatpak using dnf:
+
[source,bash]
----
$ sudo dnf install -y flatpak
----
. Install Spotify using Flatpak:
+
[source,bash]
----
$ sudo flatpak install -y --from https://flathub.org/repo/appstream/com.spotify.Client.flatpakref
----
. To run Spotify:
+
[source,bash]
----
$ flatpak run com.spotify.Client
----
. (Optional) Add a menu shortcut for Spotify:
+
[source,bash]
----
sudo echo "
[Desktop Entry]
Name=Spotify
Exec=flatpak run com.spotify.Client
Icon=/var/lib/flatpak/exports/share/icons/hicolor/256x256/apps/com.spotify.Client.png
Type=Application" > ~/.local/share/applications/Spotify.desktop
----

View file

@ -1,107 +0,0 @@
= Spotify
'''
[IMPORTANT]
======
This page was automatically converted from https://fedoraproject.org/wiki/Spotify
It is probably
* Badly formatted
* Missing graphics and tables that do not convert well from mediawiki
* Out-of-date
* In need of other love
Please fix it, remove this notice, and then add to `_topic_map.yml`
Pull requests accepted at https://pagure.io/fedora-docs/quick-docs
Once that is live, go to the original wiki page and add an `{{old}}`
tag, followed by a note like
....
{{admon/note|This page has a new home!|
This wiki page is no longer maintained. Please find the up-to-date
version at: https://docs.fedoraproject.org/whatever-the-url
}}
....
======
'''
https://www.spotify.com/[*Spotify*] is a cross-platform (available for
Ubuntu, macOS and Windows) proprietary music streaming service. It is a
freemium product, that is, a free version of it is available, but it is
riddled with advertisements. To use it without advertisements one needs
to pay for Spotify premium.
[[installation]]
Installation
~~~~~~~~~~~~
While it is not officially supported on Fedora or any other RPM-based
distributions it is possible to get it to work on Fedora. There are two
main ways of installing it:
* Using unofficial repositories like the
http://negativo17.org/spotify-client/[negativo17 repository].
* Using link:Flatpak[Flatpaks]
[[flatpak]]
Flatpak
^^^^^^^
To install it using Flatpak one needs to get the source files required
to build it, then build it and add it to one's Flatpak remote and
install it. This can be done using the following set of commands:
....
sudo dnf install flatpak flatpak-builder git make ostree -y
flatpak remote-add --from gnome https://sdk.gnome.org/gnome.flatpakrepo
flatpak install gnome org.gnome.Platform 3.24
flatpak install gnome org.gnome.Sdk 3.24
git clone https://github.com/alexlarsson/spotify-app
cd spotify-app
make
flatpak --user remote-add --no-gpg-verify local-spotify repo
flatpak --user install local-spotify com.spotify.Client
....
Please consult https://github.com/alexlarsson/spotify-app[the upstream
instructions] in case the commands above don't work.
[[negativo17.org-repository]]
Negativo17.org repository
^^^^^^^^^^^^^^^^^^^^^^^^^
This repository also contains the following packages features:
* Required libraries for enabling local files playback and file upload
to personal playlists
* Firewalld rules for enabling local service discovery and Spotify
Connect (control other devices & output location)
Installation for Fedora:
....
dnf config-manager --add-repo=http://negativo17.org/repos/fedora-spotify.repo
dnf install spotify
....
Installation for CentOS/RHEL 7+:
....
yum-config-manager --add-repo=http://negativo17.org/repos/epel-spotify.repo
yum install spotify
....
Category:Audio Category:Proprietary_software[Category:Proprietary
software]
'''
See a typo, something missing or out of date, or anything else which can be
improved? Edit this document at https://pagure.io/fedora-docs/quick-docs.

View file

@ -0,0 +1,21 @@
:md: ./modules
[[using-shared-system-certificates]]
= Using Shared System Certificates
The Shared System Certificates storage enables NSS, GnuTLS, OpenSSL, and Java to share a default source for retrieving system certificate anchors and black list information. By default, the trust store contains the Mozilla CA list, including positive and negative trust. The system allows updating of the core Mozilla CA list or choosing another certificate list.
include::{md}/concept_using-the-system-wide-trust-store.adoc[leveloffset=+1]
include::{md}/proc_adding-new-certificates.adoc[leveloffset=+1]
include::{md}/proc_managing-trusted-system-certificates.adoc[leveloffset=+1]
[[shared-system-certificates-additional-resources]]
== Additional Resources
For more information, see the following man pages:
* `update-ca-trust(8)`
* `trust(1)`