# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the live-manual package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: live-manual 5.0~a2-1\n" "POT-Creation-Date: 2015-08-23 11:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. type: Plain text #: en/about_manual.ssi:92 en/about_manual.ssi:100 en/about_manual.ssi:108 #: en/about_manual.ssi:116 en/about_manual.ssi:124 en/about_manual.ssi:132 #: en/appendix_style-guide.ssi:124 en/appendix_style-guide.ssi:134 #: en/appendix_style-guide.ssi:144 en/appendix_style-guide.ssi:154 #: en/appendix_style-guide.ssi:164 en/appendix_style-guide.ssi:177 #: en/examples.ssi:14 en/examples.ssi:30 en/examples.ssi:40 en/examples.ssi:54 #: en/examples.ssi:67 en/examples.ssi:83 en/examples.ssi:93 #: en/examples.ssi:106 en/examples.ssi:114 en/examples.ssi:124 #: en/examples.ssi:134 en/examples.ssi:149 en/examples.ssi:157 #: en/examples.ssi:165 en/examples.ssi:173 en/examples.ssi:189 #: en/examples.ssi:203 en/examples.ssi:211 en/examples.ssi:219 #: en/examples.ssi:235 en/examples.ssi:249 en/examples.ssi:257 #: en/examples.ssi:265 en/examples.ssi:285 en/examples.ssi:293 #: en/examples.ssi:302 en/examples.ssi:312 en/project_bugs.ssi:62 #: en/project_coding-style.ssi:30 en/project_coding-style.ssi:40 #: en/project_coding-style.ssi:53 en/project_coding-style.ssi:63 #: en/project_coding-style.ssi:94 en/project_coding-style.ssi:102 #: en/project_coding-style.ssi:112 en/project_coding-style.ssi:123 #: en/project_contributing.ssi:34 en/project_contributing.ssi:45 #: en/project_contributing.ssi:59 en/project_contributing.ssi:68 #: en/project_contributing.ssi:79 en/project_contributing.ssi:87 #: en/project_git.ssi:8 en/project_git.ssi:16 en/project_git.ssi:24 #: en/project_git.ssi:34 en/project_git.ssi:44 en/project_git.ssi:56 #: en/project_procedures.ssi:39 en/project_procedures.ssi:51 #: en/user_basics.ssi:50 en/user_basics.ssi:58 en/user_basics.ssi:68 #: en/user_basics.ssi:86 en/user_basics.ssi:100 en/user_basics.ssi:113 #: en/user_basics.ssi:121 en/user_basics.ssi:159 en/user_basics.ssi:167 #: en/user_basics.ssi:179 en/user_basics.ssi:190 en/user_basics.ssi:198 #: en/user_basics.ssi:210 en/user_basics.ssi:218 en/user_basics.ssi:226 #: en/user_basics.ssi:238 en/user_basics.ssi:250 en/user_basics.ssi:260 #: en/user_basics.ssi:270 en/user_basics.ssi:288 en/user_basics.ssi:319 #: en/user_basics.ssi:335 en/user_basics.ssi:343 en/user_basics.ssi:363 #: en/user_basics.ssi:390 en/user_basics.ssi:406 #: en/user_customization-binary.ssi:18 en/user_customization-contents.ssi:24 #: en/user_customization-contents.ssi:33 en/user_customization-contents.ssi:51 #: en/user_customization-installer.ssi:32 #: en/user_customization-installer.ssi:44 #: en/user_customization-packages.ssi:14 en/user_customization-packages.ssi:22 #: en/user_customization-packages.ssi:40 en/user_customization-packages.ssi:53 #: en/user_customization-packages.ssi:67 en/user_customization-packages.ssi:95 #: en/user_customization-packages.ssi:106 #: en/user_customization-packages.ssi:114 #: en/user_customization-packages.ssi:138 #: en/user_customization-packages.ssi:151 #: en/user_customization-packages.ssi:161 #: en/user_customization-packages.ssi:171 #: en/user_customization-packages.ssi:195 #: en/user_customization-packages.ssi:211 #: en/user_customization-packages.ssi:290 #: en/user_customization-packages.ssi:302 #: en/user_customization-packages.ssi:312 #: en/user_customization-packages.ssi:326 #: en/user_customization-packages.ssi:342 #: en/user_customization-packages.ssi:359 en/user_customization-runtime.ssi:14 #: en/user_customization-runtime.ssi:26 en/user_customization-runtime.ssi:44 #: en/user_customization-runtime.ssi:56 en/user_customization-runtime.ssi:75 #: en/user_customization-runtime.ssi:83 en/user_customization-runtime.ssi:92 #: en/user_customization-runtime.ssi:121 en/user_customization-runtime.ssi:131 #: en/user_customization-runtime.ssi:139 en/user_customization-runtime.ssi:148 #: en/user_customization-runtime.ssi:157 en/user_customization-runtime.ssi:172 #: en/user_customization-runtime.ssi:202 en/user_customization-runtime.ssi:210 #: en/user_customization-runtime.ssi:219 en/user_customization-runtime.ssi:229 #: en/user_customization-runtime.ssi:237 en/user_customization-runtime.ssi:245 #: en/user_customization-runtime.ssi:253 en/user_customization-runtime.ssi:261 #: en/user_customization-runtime.ssi:269 en/user_customization-runtime.ssi:277 #: en/user_customization-runtime.ssi:285 en/user_installation.ssi:38 #: en/user_installation.ssi:48 en/user_installation.ssi:56 #: en/user_installation.ssi:66 en/user_installation.ssi:74 #: en/user_installation.ssi:82 en/user_installation.ssi:106 #: en/user_installation.ssi:121 en/user_installation.ssi:134 #: en/user_managing_a_configuration.ssi:22 #: en/user_managing_a_configuration.ssi:32 #: en/user_managing_a_configuration.ssi:55 #: en/user_managing_a_configuration.ssi:67 #: en/user_managing_a_configuration.ssi:76 en/user_overview.ssi:34 #: en/user_overview.ssi:47 en/user_overview.ssi:55 msgid "code{" msgstr "" #. type: Plain text #: en/about_manual.ssi:96 en/about_manual.ssi:104 en/about_manual.ssi:112 #: en/about_manual.ssi:120 en/about_manual.ssi:128 en/about_manual.ssi:136 #: en/appendix_style-guide.ssi:128 en/appendix_style-guide.ssi:138 #: en/appendix_style-guide.ssi:148 en/appendix_style-guide.ssi:158 #: en/appendix_style-guide.ssi:173 en/appendix_style-guide.ssi:182 #: en/examples.ssi:20 en/examples.ssi:34 en/examples.ssi:44 en/examples.ssi:61 #: en/examples.ssi:71 en/examples.ssi:89 en/examples.ssi:102 #: en/examples.ssi:110 en/examples.ssi:118 en/examples.ssi:128 #: en/examples.ssi:141 en/examples.ssi:153 en/examples.ssi:161 #: en/examples.ssi:169 en/examples.ssi:177 en/examples.ssi:197 #: en/examples.ssi:207 en/examples.ssi:215 en/examples.ssi:231 #: en/examples.ssi:239 en/examples.ssi:253 en/examples.ssi:261 #: en/examples.ssi:269 en/examples.ssi:289 en/examples.ssi:298 #: en/examples.ssi:308 en/examples.ssi:324 en/project_bugs.ssi:66 #: en/project_coding-style.ssi:36 en/project_coding-style.ssi:47 #: en/project_coding-style.ssi:59 en/project_coding-style.ssi:70 #: en/project_coding-style.ssi:98 en/project_coding-style.ssi:106 #: en/project_coding-style.ssi:119 en/project_coding-style.ssi:130 #: en/project_contributing.ssi:41 en/project_contributing.ssi:55 #: en/project_contributing.ssi:64 en/project_contributing.ssi:73 #: en/project_contributing.ssi:83 en/project_contributing.ssi:90 #: en/project_git.ssi:12 en/project_git.ssi:20 en/project_git.ssi:28 #: en/project_git.ssi:38 en/project_git.ssi:48 en/project_git.ssi:60 #: en/project_procedures.ssi:47 en/project_procedures.ssi:92 #: en/user_basics.ssi:54 en/user_basics.ssi:62 en/user_basics.ssi:72 #: en/user_basics.ssi:91 en/user_basics.ssi:105 en/user_basics.ssi:117 #: en/user_basics.ssi:125 en/user_basics.ssi:163 en/user_basics.ssi:171 #: en/user_basics.ssi:184 en/user_basics.ssi:194 en/user_basics.ssi:202 #: en/user_basics.ssi:214 en/user_basics.ssi:222 en/user_basics.ssi:230 #: en/user_basics.ssi:242 en/user_basics.ssi:254 en/user_basics.ssi:264 #: en/user_basics.ssi:274 en/user_basics.ssi:311 en/user_basics.ssi:323 #: en/user_basics.ssi:339 en/user_basics.ssi:347 en/user_basics.ssi:374 #: en/user_basics.ssi:394 en/user_basics.ssi:410 #: en/user_customization-binary.ssi:25 en/user_customization-contents.ssi:29 #: en/user_customization-contents.ssi:43 en/user_customization-contents.ssi:55 #: en/user_customization-installer.ssi:38 #: en/user_customization-installer.ssi:49 #: en/user_customization-packages.ssi:18 en/user_customization-packages.ssi:26 #: en/user_customization-packages.ssi:45 en/user_customization-packages.ssi:59 #: en/user_customization-packages.ssi:71 #: en/user_customization-packages.ssi:100 #: en/user_customization-packages.ssi:110 #: en/user_customization-packages.ssi:118 #: en/user_customization-packages.ssi:143 #: en/user_customization-packages.ssi:157 #: en/user_customization-packages.ssi:167 #: en/user_customization-packages.ssi:177 #: en/user_customization-packages.ssi:201 #: en/user_customization-packages.ssi:216 #: en/user_customization-packages.ssi:294 #: en/user_customization-packages.ssi:306 #: en/user_customization-packages.ssi:316 #: en/user_customization-packages.ssi:330 #: en/user_customization-packages.ssi:355 #: en/user_customization-packages.ssi:364 en/user_customization-runtime.ssi:18 #: en/user_customization-runtime.ssi:30 en/user_customization-runtime.ssi:48 #: en/user_customization-runtime.ssi:69 en/user_customization-runtime.ssi:79 #: en/user_customization-runtime.ssi:88 en/user_customization-runtime.ssi:97 #: en/user_customization-runtime.ssi:125 en/user_customization-runtime.ssi:135 #: en/user_customization-runtime.ssi:144 en/user_customization-runtime.ssi:153 #: en/user_customization-runtime.ssi:162 en/user_customization-runtime.ssi:180 #: en/user_customization-runtime.ssi:206 en/user_customization-runtime.ssi:215 #: en/user_customization-runtime.ssi:223 en/user_customization-runtime.ssi:233 #: en/user_customization-runtime.ssi:241 en/user_customization-runtime.ssi:249 #: en/user_customization-runtime.ssi:257 en/user_customization-runtime.ssi:265 #: en/user_customization-runtime.ssi:273 en/user_customization-runtime.ssi:281 #: en/user_customization-runtime.ssi:289 en/user_installation.ssi:42 #: en/user_installation.ssi:52 en/user_installation.ssi:62 #: en/user_installation.ssi:70 en/user_installation.ssi:78 #: en/user_installation.ssi:86 en/user_installation.ssi:111 #: en/user_installation.ssi:128 en/user_installation.ssi:139 #: en/user_managing_a_configuration.ssi:28 #: en/user_managing_a_configuration.ssi:43 #: en/user_managing_a_configuration.ssi:61 #: en/user_managing_a_configuration.ssi:72 #: en/user_managing_a_configuration.ssi:80 en/user_overview.ssi:41 #: en/user_overview.ssi:51 en/user_overview.ssi:59 msgid "}code" msgstr "" #. type: Plain text #: en/project_bugs.ssi:20 en/user_customization-packages.ssi:181 msgid "% FIXME:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:2 msgid ":B~ Customizing package installation" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:4 msgid "1~customizing-package-installation Customizing package installation" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:6 msgid "" "Perhaps the most basic customization of a live system is the selection of " "packages to be included in the image. This chapter guides you through the " "various build-time options to customize live-build's installation of " "packages. The broadest choices influencing which packages are available to " "install in the image are the distribution and archive areas. To ensure " "decent download speeds, you should choose a nearby distribution mirror. You " "can also add your own repositories for backports, experimental or custom " "packages, or include packages directly as files. You can define lists of " "packages, including metapackages which will install many related packages at " "once, such as packages for a particular desktop or language. Finally, a " "number of options give some control over /{apt}/, or if you prefer, /" "{aptitude}/, at build time when packages are installed. You may find these " "handy if you use a proxy, want to disable installation of recommended " "packages to save space, or need to control which versions of packages are " "installed via APT pinning, to name a few possibilities." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:8 msgid "2~ Package sources" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:10 msgid "3~ Distribution, archive areas and mode" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:12 msgid "" "The distribution you choose has the broadest impact on which packages are " "available to include in your live image. Specify the codename, which " "defaults to ${testing} for the ${testing} version of live-build. Any current " "distribution carried in the archive may be specified by its codename here. " "(See {Terms}#terms for more details.) The #{--distribution}# option not only " "influences the source of packages within the archive, but also instructs " "live-build to behave as needed to build each supported distribution. For " "example, to build against the *{unstable}* release, sid, specify:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:16 #, no-wrap msgid " $ lb config --distribution sid\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:20 msgid "" "Within the distribution archive, archive areas are major divisions of the " "archive. In Debian, these are #{main}#, #{contrib}# and #{non-free}#. Only " "#{main}# contains software that is part of the Debian distribution, hence " "that is the default. One or more values may be specified, e.g." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:24 #, no-wrap msgid " $ lb config --archive-areas \"main contrib non-free\"\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:28 msgid "" "Experimental support is available for some Debian derivatives through a #{--" "mode}# option. By default, this option is set to #{debian}# only if you are " "building on a Debian or on an unknown system. If #{lb config}# is invoked on " "any of the supported derivatives, it will default to create an image of that " "derivative. If #{lb config}# is run in e.g. #{ubuntu}# mode, the " "distribution names and archive areas for the specified derivative are " "supported instead of the ones for Debian. The mode also modifies live-build " "behaviour to suit the derivatives." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:30 #, no-wrap msgid "*{Note:}* The projects for whom these modes were added are primarily responsible for supporting users of these options. The ${project}, in turn, provides development support on a best-effort basis only, based on feedback from the derivative projects as we do not develop or support these derivatives ourselves.\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:32 msgid "3~ Distribution mirrors" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:34 msgid "" "The Debian archive is replicated across a large network of mirrors around " "the world so that people in each region can choose a nearby mirror for best " "download speed. Each of the #{--mirror-*}# options governs which " "distribution mirror is used at various stages of the build. Recall from " "{Stages of the build}#stages-of-the-build that the *{bootstrap}* stage is " "when the chroot is initially populated by /{debootstrap}/ with a minimal " "system, and the *{chroot}* stage is when the chroot used to construct the " "live system's filesystem is built. Thus, the corresponding mirror switches " "are used for those stages, and later, in the *{binary}* stage, the #{--" "mirror-binary}# and #{--mirror-binary-security}# values are used, " "superseding any mirrors used in an earlier stage." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:36 msgid "" "3~distribution-mirrors-build-time Distribution mirrors used at build time" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:38 msgid "" "To set the distribution mirrors used at build time to point at a local " "mirror, it is sufficient to set #{--mirror-bootstrap}# and #{--mirror-chroot-" "security}# as follows." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:43 #, no-wrap msgid "" " $ lb config --mirror-bootstrap http://localhost/debian/ \\\n" " --mirror-chroot-security http://localhost/debian-security/\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:47 msgid "" "The chroot mirror, specified by #{--mirror-chroot}#, defaults to the #{--" "mirror-bootstrap}# value." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:49 msgid "3~ Distribution mirrors used at run time" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:51 msgid "" "The #{--mirror-binary*}# options govern the distribution mirrors placed in " "the binary image. These may be used to install additional packages while " "running the live system. The defaults employ #{httpredir.debian.org}#, a " "service that chooses a geographically close mirror based, among other " "things, on the user's IP family and the availability of the mirrors. This is " "a suitable choice when you cannot predict which mirror will be best for all " "of your users. Or you may specify your own values as shown in the example " "below. An image built from this configuration would only be suitable for " "users on a network where \"#{mirror}#\" is reachable." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:57 #, no-wrap msgid "" " $ lb config --mirror-binary http://mirror/debian/ \\\n" " --mirror-binary-security http://mirror/debian-security/ \\\n" " --mirror-binary-backports http://mirror/debian-backports/\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:61 msgid "3~additional-repositories Additional repositories" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:63 msgid "" "You may add more repositories, broadening your package choices beyond what " "is available in your target distribution. These may be, for example, for " "backports, experimental or custom packages. To configure additional " "repositories, create #{config/archives/your-repository.list.chroot}#, and/or " "#{config/archives/your-repository.list.binary}# files. As with the #{--" "mirror-*}# options, these govern the repositories used in the *{chroot}* " "stage when building the image, and in the *{binary}* stage, i.e. for use " "when running the live system." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:65 msgid "" "For example, #{config/archives/live.list.chroot}# allows you to install " "packages from the debian-live snapshot repository at live system build time." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:69 #, no-wrap msgid " deb http://live-systems.org/ sid-snapshots main contrib non-free\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:73 msgid "" "If you add the same line to #{config/archives/live.list.binary}#, the " "repository will be added to your live system's #{/etc/apt/sources.list.d/}# " "directory." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:75 msgid "If such files exist, they will be picked up automatically." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:77 msgid "" "You should also put the GPG key used to sign the repository into #{config/" "archives/your-repository.key.{binary,chroot}}# files." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:79 msgid "" "Should you need custom APT pinning, such APT preferences snippets can be " "placed in #{config/archives/your-repository.pref.{binary,chroot}}# files and " "will be automatically added to your live system's #{/etc/apt/preferences.d/}" "# directory." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:81 msgid "2~choosing-packages-to-install Choosing packages to install" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:83 msgid "" "There are a number of ways to choose which packages live-build will install " "in your image, covering a variety of different needs. You can simply name " "individual packages to install in a package list. You can also use " "metapackages in those lists, or select them using package control file " "fields. And finally, you may place package files in your #{config/}# tree, " "which is well suited to testing of new or experimental packages before they " "are available from a repository." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:85 msgid "3~package-lists Package lists" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:87 msgid "" "Package lists are a powerful way of expressing which packages should be " "installed. The list syntax supports conditional sections which makes it easy " "to build lists and adapt them for use in multiple configurations. Package " "names may also be injected into the list using shell helpers at build time." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:89 #, no-wrap msgid "*{Note:}* The behaviour of live-build when specifying a package that does not exist is determined by your choice of APT utility. See {Choosing apt or aptitude}#choosing-apt-or-aptitude for more details.\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:91 msgid "3~using-metapackages Using metapackages" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:93 msgid "" "The simplest way to populate your package list is to use a task metapackage " "maintained by your distribution. For example:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:98 #, no-wrap msgid "" " $ lb config\n" " $ echo task-gnome-desktop > config/package-lists/desktop.list.chroot\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:102 msgid "" "This supercedes the older predefined list method supported in #{live-build}# " "2.x. Unlike predefined lists, task metapackages are not specific to the Live " "System project. Instead, they are maintained by specialist working groups " "within the distribution and therefore reflect the consensus of each group " "about which packages best serve the needs of the intended users. They also " "cover a much broader range of use cases than the predefined lists they " "replace." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:104 msgid "" "All task metapackages are prefixed #{task-}#, so a quick way to determine " "which are available (though it may contain a handful of false hits that " "match the name but aren't metapackages) is to match on the package name with:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:108 #, no-wrap msgid " $ apt-cache search --names-only ^task-\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:112 msgid "" "In addition to these, you will find other metapackages with various " "purposes. Some are subsets of broader task packages, like #{gnome-core}#, " "while others are individual specialized parts of a Debian Pure Blend, such " "as the #{education-*}# metapackages. To list all metapackages in the " "archive, install the #{debtags}# package and list all packages with the " "#{role::metapackage}# tag as follows:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:116 #, no-wrap msgid " $ debtags search role::metapackage\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:120 msgid "3~ Local package lists" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:122 msgid "" "Whether you list metapackages, individual packages, or a combination of " "both, all local package lists are stored in #{config/package-lists/}#. Since " "more than one list can be used, this lends itself well to modular designs. " "For example, you may decide to devote one list to a particular choice of " "desktop, another to a collection of related packages that might as easily be " "used on top of a different desktop. This allows you to experiment with " "different combinations of sets of packages with a minimum of fuss, sharing " "common lists between different live image projects." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:124 msgid "" "Package lists that exist in this directory need to have a #{.list}# suffix " "in order to be processed, and then an additional stage suffix, #{.chroot}# " "or #{.binary}# to indicate which stage the list is for." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:126 #, no-wrap msgid "*{Note:}* If you don't specify the stage suffix, the list will be used for both stages. Normally, you want to specify #{.list.chroot}# so that the packages will only be installed in the live filesystem and not have an extra copy of the #{.deb}# placed on the medium.\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:128 msgid "3~ Local binary package lists" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:130 msgid "" "To make a binary stage list, place a file suffixed with #{.list.binary}# in " "#{config/package-lists/}#. These packages are not installed in the live " "filesystem, but are included on the live medium under #{pool/}#. You would " "typically use such a list with one of the non-live installer variants. As " "mentioned above, if you want this list to be the same as your chroot stage " "list, simply use the #{.list}# suffix by itself." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:132 msgid "3~generated-package-lists Generated package lists" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:134 msgid "" "It sometimes happens that the best way to compose a list is to generate it " "with a script. Any line starting with an exclamation point indicates a " "command to be executed within the chroot when the image is built. For " "example, one might include the line #{! grep-aptavail -n -sPackage -" "FPriority standard | sort}# in a package list to produce a sorted list of " "available packages with #{Priority: standard}#." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:136 msgid "" "In fact, selecting packages with the #{grep-aptavail}# command (from the " "#{dctrl-tools}# package) is so useful that #{live-build}# provides a " "#{Packages}# helper script as a convenience. This script takes two " "arguments: #{field}# and #{pattern}#. Thus, you can create a list with the " "following contents:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:141 #, no-wrap msgid "" " $ lb config\n" " $ echo '! Packages Priority standard' > config/package-lists/standard.list.chroot\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:145 msgid "3~ Using conditionals inside package lists" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:147 msgid "" "Any of the live-build configuration variables stored in #{config/*}# (minus " "the #{LB_}# prefix) may be used in conditional statements in package lists. " "Generally, this means any #{lb config}# option uppercased and with dashes " "changed to underscores. But in practice, it is only the ones that influence " "package selection that make sense, such as #{DISTRIBUTION}#, #{ARCHITECTURES}" "# or #{ARCHIVE_AREAS}#." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:149 msgid "" "For example, to install #{ia32-libs}# if the #{--architectures amd64}# is " "specified:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:155 #, no-wrap msgid "" " #if ARCHITECTURES amd64\n" " ia32-libs\n" " #endif\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:159 msgid "" "You may test for any one of a number of values, e.g. to install /" "{memtest86+}/ if either #{--architectures i386}# or #{--architectures amd64}" "# is specified:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:165 #, no-wrap msgid "" " #if ARCHITECTURES i386 amd64\n" " memtest86+\n" " #endif\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:169 msgid "" "You may also test against variables that may contain more than one value, e." "g. to install /{vrms}/ if either #{contrib}# or #{non-free}# is specified " "via #{--archive-areas}#:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:175 #, no-wrap msgid "" " #if ARCHIVE_AREAS contrib non-free\n" " vrms\n" " #endif\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:179 msgid "The nesting of conditionals is not supported." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:183 msgid "3~ Removing packages at install time" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:185 msgid "" "You can list packages in files with #{.list.chroot_live}# and #{.list." "chroot_install}# suffixes inside the #{config/package-lists}# directory. If " "both a live and an install list exist, the packages in the #{.list." "chroot_live}# list are removed with a hook after the installation (if the " "user uses the installer). The packages in the #{.list.chroot_install}# list " "are present both in the live system and in the installed system. This is a " "special tweak for the installer and may be useful if you have #{--debian-" "installer live}# set in your config, and wish to remove live system-specific " "packages at install time." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:187 msgid "3~desktop-and-language-tasks Desktop and language tasks" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:189 msgid "" "Desktop and language tasks are special cases that need some extra planning " "and configuration. Live images are different from Debian Installer images in " "this respect. In the Debian Installer, if the medium was prepared for a " "particular desktop environment flavour, the corresponding task will be " "automatically installed. Thus, there are internal #{gnome-desktop}#, #{kde-" "desktop}#, #{lxde-desktop}# and #{xfce-desktop}# tasks, none of which are " "offered in #{tasksel}#'s menu. Likewise, there are no menu entries for tasks " "for languages, but the user's language choice during the install influences " "the selection of corresponding language tasks." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:191 msgid "" "When developing a desktop live image, the image typically boots directly to " "a working desktop, the choices of both desktop and default language having " "been made at build time, not at run time as in the case of the Debian " "Installer. That's not to say that a live image couldn't be built to support " "multiple desktops or multiple languages and offer the user a choice, but " "that is not live-build's default behaviour." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:193 msgid "" "Because there is no provision made automatically for language tasks, which " "include such things as language-specific fonts and input-method packages, if " "you want them, you need to specify them in your configuration. For example, " "a GNOME desktop image containing support for German might include these task " "metapackages:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:199 #, no-wrap msgid "" " $ lb config\n" " $ echo \"task-gnome-desktop task-laptop\" >> config/package-lists/my.list.chroot\n" " $ echo \"task-german task-german-desktop task-german-gnome-desktop\" >> config/package-lists/my.list.chroot\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:203 msgid "3~kernel-flavour-and-version Kernel flavour and version" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:205 msgid "" "One or more kernel flavours will be included in your image by default, " "depending on the architecture. You can choose different flavours via the #{--" "linux-flavours}# option. Each flavour is suffixed to the default stub " "#{linux-image}# to form each metapackage name which in turn depends on an " "exact kernel package to be included in your image." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:207 msgid "" "Thus by default, an #{amd64}# architecture image will include the #{linux-" "image-amd64}# flavour metapackage, and an #{i386}# architecture image will " "include the #{linux-image-586}# metapackage." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:209 msgid "" "When more than one kernel package version is available in your configured " "archives, you can specify a different kernel package name stub with the #{--" "linux-packages}# option. For example, supposing you are building an #{amd64}" "# architecture image and add the experimental archive for testing purposes " "so you can install the #{linux-image-3.18.0-trunk-amd64}# kernel. You would " "configure that image as follows:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:214 #, no-wrap msgid "" " $ lb config --linux-packages linux-image-3.18.0-trunk\n" " $ echo \"deb http://ftp.debian.org/debian/ experimental main\" > config/archives/experimental.list.chroot\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:218 msgid "3~custom-kernels Custom kernels" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:220 msgid "" "You can build and include your own custom kernels, so long as they are " "integrated within the Debian package management system. The live-build " "system does not support kernels not built as #{.deb}# packages." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:222 msgid "" "The proper and recommended way to deploy your own kernel packages is to " "follow the instructions in the #{kernel-handbook}#. Remember to modify the " "ABI and flavour suffixes appropriately, then include a complete build of the " "#{linux}# and matching #{linux-latest}# packages in your repository." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:224 msgid "" "If you opt to build the kernel packages without the matching metapackages, " "you need to specify an appropriate #{--linux-packages}# stub as discussed in " "{Kernel flavour and version}#kernel-flavour-and-version. As we explain in " "{Installing modified or third-party packages}#installing-modified-or-third-" "party-packages, it is best if you include your custom kernel packages in " "your own repository, though the alternatives discussed in that section work " "as well." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:226 msgid "" "It is beyond the scope of this document to give advice on how to customize " "your kernel. However, you must at least ensure your configuration satisfies " "these minimum requirements:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:228 msgid "_* Use an initial ramdisk." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:230 msgid "_* Include the union filesystem module (i.e. usually #{aufs}#)." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:232 msgid "" "_* Include any other filesystem modules required by your configuration (i.e. " "usually #{squashfs}#)." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:234 msgid "" "2~installing-modified-or-third-party-packages Installing modified or third-" "party packages" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:236 msgid "" "While it is against the philosophy of a live system, it may sometimes be " "necessary to build a live system with modified versions of packages that are " "in the Debian repository. This may be to modify or support additional " "features, languages and branding, or even to remove elements of existing " "packages that are undesirable. Similarly, \"third-party\" packages may be " "used to add bespoke and/or proprietary functionality." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:238 msgid "" "This section does not cover advice regarding building or maintaining " "modified packages. Joachim Breitner's 'How to fork privately' method from " "http://www.joachim-breitner.de/blog/archives/282-How-to-fork-privately.html " "may be of interest, however. The creation of bespoke packages is covered in " "the Debian New Maintainers' Guide at https://www.debian.org/doc/maint-guide/ " "and elsewhere." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:240 msgid "There are two ways of installing modified custom packages:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:242 msgid "_* #{packages.chroot}#" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:244 msgid "_* Using a custom APT repository" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:246 msgid "" "Using #{packages.chroot}# is simpler to achieve and useful for \"one-off\" " "customizations but has a number of drawbacks, while using a custom APT " "repository is more time-consuming to set up." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:248 msgid "3~ Using #{packages.chroot}# to install custom packages" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:250 msgid "" "To install a custom package, simply copy it to the #{config/packages.chroot/}" "# directory. Packages that are inside this directory will be automatically " "installed into the live system during build - you do not need to specify " "them elsewhere." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:252 msgid "" "Packages *{must}* be named in the prescribed way. One simple way to do this " "is to use #{dpkg-name}#." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:254 msgid "" "Using #{packages.chroot}# for installation of custom packages has " "disadvantages:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:256 msgid "_* It is not possible to use secure APT." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:258 msgid "" "_* You must install all appropriate packages in the #{config/packages." "chroot/}# directory." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:260 msgid "" "_* It does not lend itself to storing live system configurations in revision " "control." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:262 msgid "3~ Using an APT repository to install custom packages" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:264 msgid "" "Unlike using #{packages.chroot}#, when using a custom APT repository you " "must ensure that you specify the packages elsewhere. See {Choosing packages " "to install}#choosing-packages-to-install for details." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:266 msgid "" "While it may seem unnecessary effort to create an APT repository to install " "custom packages, the infrastructure can be easily re-used at a later date to " "offer updates of the modified packages." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:268 msgid "3~ Custom packages and APT" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:270 msgid "" "live-build uses APT to install all packages into the live system so will " "therefore inherit behaviours from this program. One relevant example is that " "(assuming a default configuration) given a package available in two " "different repositories with different version numbers, APT will elect to " "install the package with the higher version number." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:272 msgid "" "Because of this, you may wish to increment the version number in your custom " "packages' #{debian/changelog}# files to ensure that your modified version is " "installed over one in the official Debian repositories. This may also be " "achieved by altering the live system's APT pinning preferences - see {APT " "pinning}#apt-pinning for more information." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:274 msgid "2~ Configuring APT at build time" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:276 msgid "" "You can configure APT through a number of options applied only at build " "time. (APT configuration used in the running live system may be configured " "in the normal way for live system contents, that is, by including the " "appropriate configurations through #{config/includes.chroot/}#.) For a " "complete list, look for options starting with #{apt}# in the #{lb_config}# " "man page." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:278 msgid "3~choosing-apt-or-aptitude Choosing apt or aptitude" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:280 msgid "" "You can elect to use either /{apt}/ or /{aptitude}/ when installing packages " "at build time. Which utility is used is governed by the #{--apt}# argument " "to #{lb config}#. Choose the method implementing the preferred behaviour for " "package installation, the notable difference being how missing packages are " "handled." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:282 msgid "" "_* #{apt}#: With this method, if a missing package is specified, the package " "installation will fail. This is the default setting." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:284 msgid "" "_* #{aptitude}#: With this method, if a missing package is specified, the " "package installation will succeed." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:286 msgid "3~ Using a proxy with APT" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:288 msgid "" "One commonly required APT configuration is to deal with building an image " "behind a proxy. You may specify your APT proxy with the #{--apt-ftp-proxy}# " "or #{--apt-http-proxy}# options as needed, e.g." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:292 #, no-wrap msgid " $ lb config --apt-http-proxy http://proxy/\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:296 msgid "3~tweaking-apt-to-save-space Tweaking APT to save space" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:298 msgid "" "You may find yourself needing to save some space on the image medium, in " "which case one or the other or both of the following options may be of " "interest." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:300 msgid "" "If you don't want to include APT indices in the image, you can omit those " "with:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:304 #, no-wrap msgid " $ lb config --apt-indices false\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:308 msgid "" "This will not influence the entries in #{/etc/apt/sources.list}#, but merely " "whether #{/var/lib/apt}# contains the indices files or not. The tradeoff is " "that APT needs those indices in order to operate in the live system, so " "before performing #{apt-cache search}# or #{apt-get install}#, for instance, " "the user must #{apt-get update}# first to create those indices." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:310 msgid "" "If you find the installation of recommended packages bloats your image too " "much, provided you are prepared to deal with the consequences discussed " "below, you may disable that default option of APT with:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:314 #, no-wrap msgid " $ lb config --apt-recommends false\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:318 msgid "" "The most important consequence of turning off recommends is that #{live-boot}" "# and #{live-config}# themselves recommend some packages that provide " "important functionality used by most Live configurations, such as #{user-" "setup}# which #{live-config}# recommends and is used to create the live " "user. In all but the most exceptional circumstances you need to add back at " "least some of these recommends to your package lists or else your image will " "not work as expected, if at all. Look at the recommended packages for each " "of the #{live-*}# packages included in your build and if you are not certain " "you can omit them, add them back into your package lists." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:320 msgid "" "The more general consequence is that if you don't install recommended " "packages for any given package, that is, \"packages that would be found " "together with this one in all but unusual installations\" (Debian Policy " "Manual, section 7.2), some packages that users of your Live system actually " "need may be omitted. Therefore, we suggest you review the difference turning " "off recommends makes to your packages list (see the #{binary.packages}# file " "generated by #{lb build}#) and re-include in your list any missing packages " "that you still want installed. Alternatively, if you find you only want a " "small number of recommended packages left out, leave recommends enabled and " "set a negative APT pin priority on selected packages to prevent them from " "being installed, as explained in {APT pinning}#apt-pinning." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:322 msgid "3~ Passing options to apt or aptitude" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:324 msgid "" "If there is not a #{lb config}# option to alter APT's behaviour in the way " "you need, use #{--apt-options}# or #{--aptitude-options}# to pass any " "options through to your configured APT tool. See the man pages for #{apt}# " "and #{aptitude}# for details. Note that both options have default values " "that you will need to retain in addition to any overrides you may provide. " "So, for example, suppose you have included something from #{snapshot.debian." "org}# for testing purposes and want to specify #{Acquire::Check-Valid-" "Until=false}# to make APT happy with the stale #{Release}# file, you would " "do so as per the following example, appending the new option after the " "default value #{--yes}#:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:328 #, no-wrap msgid " $ lb config --apt-options \"--yes -oAcquire::Check-Valid-Until=false\"\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:332 msgid "" "Please check the man pages to fully understand these options and when to use " "them. This is an example only and should not be construed as advice to " "configure your image this way. This option would not be appropriate for, " "say, a final release of a live image." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:334 msgid "" "For more complicated APT configurations involving #{apt.conf}# options you " "might want to create a #{config/apt/apt.conf}# file instead. See also the " "other #{apt-*}# options for a few convenient shortcuts for frequently needed " "options." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:336 msgid "3~apt-pinning APT pinning" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:338 msgid "" "For background, please first read the #{apt_preferences(5)}# man page. APT " "pinning can be configured either for build time, or else for run time. For " "the former, create #{config/archives/*.pref}#, #{config/archives/*.pref." "chroot}#, and #{config/apt/preferences}#. For the latter, create #{config/" "includes.chroot/etc/apt/preferences}#." msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:340 msgid "" "Let's say you are building a ${testing} live system but need all the live " "packages that end up in the binary image to be installed from sid at build " "time. You need to add sid to your APT sources and pin the live packages from " "it higher, but all other packages from it lower, than the default priority. " "Thus, only the packages you want are installed from sid at build time and " "all others are taken from the target system distribution, ${testing}. The " "following will accomplish this:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:348 #, no-wrap msgid "" " $ echo \"deb http://mirror/debian/ sid main\" > config/archives/sid.list.chroot\n" " $ cat >> config/archives/sid.pref.chroot << EOF\n" " Package: live-*\n" " Pin: release n=sid\n" " Pin-Priority: 600\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:353 #, no-wrap msgid "" " Package: *\n" " Pin: release n=sid\n" " Pin-Priority: 1\n" " EOF\n" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:357 msgid "" "Negative pin priorities will prevent a package from being installed, as in " "the case where you do not want a package that is recommended by another " "package. Suppose you are building an LXDE image using #{task-lxde-desktop}# " "in #{config/package-lists/desktop.list.chroot}#, but don't want the user " "prompted to store wifi passwords in the keyring. This metapackage depends " "on /{lxde-core}/, which recommends /{gksu}/, which in turn recommends /" "{gnome-keyring}/. So you want to omit the recommended /{gnome-keyring}/ " "package. This can be done by adding the following stanza to #{config/apt/" "preferences}#:" msgstr "" #. type: Plain text #: en/user_customization-packages.ssi:363 #, no-wrap msgid "" " Package: gnome-keyring\n" " Pin: version *\n" " Pin-Priority: -1\n" msgstr ""